Ocata バージョンのリリースノート¶
11.0.4¶
Bug Fixes¶
[bug 1704205] すべてのユーザーとグループには名前が必要です。この修正に先立って、 Keystone は LDAP ユーザーとグループに対してこれを適切に実施していませんでした。 Keystone は、そのエンティティの名前に使用するように設定されている LDAP 属性の値を持たないユーザーおよびグループを無視します。
[bug 1718747] ドメインを含まれるユーザーごと削除するときにサーバーエラーが発生するというリグレッションが修正されています。このバグ修正は、ドメインの名前空間内に置かれているユーザーを削除するという以前の動作を復元します。これは、SQL 認証バックエンドを使用する場合にのみ適用されます。
その他の注意点¶
[bug 1718747] ユーザーを含むドメインが削除されないようにする認証 SQL バックエンドのリグレッションを解決する一環として、認証バックエンドが SQL の場合にのみユーザーが削除されるように通知コールバックが変更されました。読み取り専用ではないカスタム認証バックエンドを使用している場合、そのドライバーで is_sql プロパティが true と評価されない限り、Keystone でドメインを削除してもバックエンドのユーザーは削除されません。
11.0.3¶
セキュリティー上の問題¶
[bug 1703369] 以前のリリースのデフォルトの
policy.jsonファイルには、identity:get_identity_provider ルールにタイプミスがありました。そのルールのデフォルト値はデフォルトルールのデフォルト値(adminに制限されています)と同じで、このタイプミスが容易には判明しませんでした。このルールをカスタマイズしたら、設定を確認して、そのタイプミスをコピーしていないことを確認する必要があります。このバックポートの目的に関する詳細は、バグレポートに記載されています。
Bug Fixes¶
[bug 1689616] 膨大なデータセットに対してトークンフラッシュを実行するときの、重要な改善が行われました。
[bug 1687593] OAUTH1 要求トークンを作成するときの要求を行うために使用される URL が、要求トークンを検証する URL でもあることを確実にしました。
11.0.1¶
Bug Fixes¶
[bug 1674415] ロケールが設定されている 認証 API から、どんなエラーメッセージも発生しないという、 Keystone エラーメッセージの翻訳に関する問題を修正しました。
11.0.0¶
紹介¶
現在、デフォルトのトークンプロバイダーは、 Fernet です。
PKI と PKIz トークン形式は削除されました。詳細は
その他の注意点を参照してください。LDAP への書き出しのサポートは削除されました。詳細は
その他の注意点を参照してください。
新機能¶
[blueprint allow-expired] 有効期限が切れたトークンを取得できるトークン検証コール (
GET /HEAD/v3 /auth/tokens) に allow_expired フラグが追加されました。 これにより、長時間実行されている操作のトークンの検証が可能になります。
[blueprint password-expires-validation] トークンレスポンスは
userオブジェクトにpassword_expires_atフィールドを持つようになりました。これはつまり、{"token": {"user": {"password_expires_at": null}}}
[security_compliance]設定オプションによってPCI サポートを有効にしている場合に、password_expires_at項目にタイムスタンプが入力されます。そうでなければ、デフォルトでnullになり、パスワードの有効期限が切れないことを意味します。
[blueprint pci-dss-notifications] CADF 通知は、 PCI-DSS イベントにも適用されます。
reasonオブジェクトが通知に追加されました。reasonオブジェクトにはreasonType(理由の簡単な説明)とreasonCode(HTTP レスポンスコード)があります。以下のイベントが影響を受けます:ユーザーが少なくとも X 日ごとにパスワードを変更しない場合、
[security_compliance] password_expires_daysを参照してください。認証に複数回失敗してユーザーがロックアウトされた場合、
[security_compliance] lockout_failure_attemptsを参照してください。ユーザーが新しいパスワードに最近使用されたものを送信した場合、
[security_compliance] unique_last_password_countを参照してください。パスワードが指定された基準を満たしていない場合、
[security_compliance] password_regexを参照してください。ユーザーが頻繁にパスワードを変更しようとする場合、
[security_compliance] minimum_password_ageを参照してください。
追加の詳細は、event notifications を参照してください。
[blueprint pci-dss-password-requirements-api] パスワードの正規表現要件を取得するための新しい API (
/v3/domains/{domain_id}/config/security_compliance)を追加しました。具体的には、[security_compliance] password_regexと[security_compliance] password_regex_descriptionが返されます。これらのオプションは、さまざまな[security_compliance]設定オプションを使って PCI サポートが有効になっている場合にのみ有効であることに注意してください。
- [blueprint pci-dss-query-password-expired-users]
/v3/usersと/v3/groups/{group_id}/usersにpassword_expires_atクエリーを追加しました。password_expires_atクエリーはoperator(下記の有効な選択肢)とYYYY-MM-DDTHH:mm:ssZ形式のtimestampの2つの部分で構成されています。 API は与えられたoperatorとtimestampに基づいてユーザーのリストをフィルタリングします。 lt - パスワードはそのタイムスタンプより前に有効期限が切れます
lte - パスワードはそのタイムスタンプ以降に有効期限が切れます
gt - パスワードはそのタイムスタンプより後に有効期限が切れます
gte - パスワードはそのタイムスタンプ以降に有効期限が切れます
eq - パスワードはそのタイムスタンプで有効期限が切れます
neq - パスワードはそのタイムスタンプではないときに有効期限が切れます
- [blueprint pci-dss-query-password-expired-users]
[blueprint per-user-auth-plugin-reqs] ユーザー単位の多要素認証ルール( MFA ルール)が実装されました。 これらのルールは、どの認証方法を使用できるか(たとえば、パスワードや TOTP)を定義し、トークンを正常に取得するために複数の認証フォームを要求する機能を提供します。
MFA ルールは、ユーザー作成および更新 API (
POST/PATCH /v3/users) の呼び出しによって設定されます。 このオプションを使用すると、管理者は、ユーザーによるトークン取得に、特定の形式の認証、または複数の形式の認証の組み合わせの使用を強制することができます。 ルールは次のように指定されます。user["options"]["multi_factor_auth_rules"] = [["password", "totp"], ["password", "custom-auth-method"]]
ルールはリストのリストとして指定されます。 サブリストの要素は文字列でなければならず、
[auth] methodsオプションのkeystone.confで定義されている必要な認証方法名(passwordやtotpなど)です。メソッドの各リストはルールを指定します。 ユーザーが提供する認証方法がリスト内の認証方法と一致(または複数が一致)した場合、そのルールが使用されます。 見つかった最初のルール(ルールは特定の順序で処理されません)が使用されます。 ユーザーがルールセットを
[["password","totp"]]として定義している場合、ユーザーはトークンを受け取るためには password と totp の両方の認証方法を提供しなければなりません。 しかし、ユーザーが[["password"],["password","totp"]]として定義されたルールセットを持っている場合、ユーザーは自身のpassword``メソッドを使うことができますが、 ``totpが指定されていればpassword``と ``totpの両方を使います。[auth] methodsオプションのkeystone.confで定義されていない認証方法は、ルールの処理時に無視されます。空のルールは設定できません。ルール内に無効な認証方法が存在するためにルールが空の場合、ルールは認証時に破棄されます。 ユーザーにルールがない場合、またはユーザーに対して有効なルールがない場合、認証はデフォルトの方法で行われます。一つの認証方法が設定されていいれば、トークンを受信するのに十分です。ユーザーが MFA ルールから免除されるべきである場合、設定されているかどうかにかかわらず、 ユーザーが作成と更新 API ( `` POST / PATCH / v3 / users``)を呼び出すことによって、そのユーザーの User-Option の
multi_factor_auth_enabledオプションがFalseに設定されます。このオプションがFalseに設定されている場合、 そのユーザに対して MFA ルールは無視されます。Falseを除く他の値の場合は、 MFA ルールが処理される結果となります。 オプションはブール値(TrueまたはFalse)、あるいは None (これはデフォルトの動作(Trueと同じ)になりますが、このオプションはuser ["options"]ディクショナリーからなくなります)です。ユーザーを MFA ルールから免除されるようにマークするには:
user["options"]["multi_factor_auth_enabled"] = False
token認証方法は、通常、どの MFA ルールでも指定すべきではありません。token認証方法は、元の認証リクエストに対するすべての以前の認証方法を含み、適切なルールセットと一致します。tokenメソッドは、アクティブなプロジェクトの再スコープ/変更に使用されるもので、これは意図的なものです。セキュリティ情報: MFA ルールは、認証が V3 認証 API を介して行われる場合にのみ処理されます。 V2 認証が有効な場合、ユーザーが V2 認証 APIを使用して認証できる場合は、MFA ルールを迂回することができます。 MFA ルールを完全に実施するには、V2 認証を無効にすることをお勧めします。
[blueprint shadow-mapping] The federated identity mapping engine now supports the ability to automatically provision
projectsforfederated users. A role assignment will automatically be created for the user on the specified project. If the project specified within the mapping does not exist, it will be automatically created in thedomainassociated with theidentity provider. This behavior can be triggered using a specific syntax within thelocalrules section of a mapping. For more information see: mapping combinations
[blueprint support-federated-attr] 統合認証の属性(
idp_id、protocol_id、unique_id)の問い合わせをサポートするために、 list user API (GET /v3/users) に新しいフィルターを追加しました。
[bug 1638603] Active Directory のネストされたグループのサポートを追加しました。新しいブール値のオプション
[ldap] group_ad_nestingを追加しました。デフォルトはFalseです。有効にすると、ネストされたグループを持つ Active Directory を使用できます。このオプションは、list_users_in_group、list_groups_for_user、およびcheck_user_in_group操作に影響します。
[bug 1641645] RBAC保護が Self-service change user password API (
/v3/user/$ user_id/password)から削除されました。つまり、ユーザーは ``X- Auth-Token` ヘッダーに指定されているトークンを使用せずにパスワードを変更できるようになりました。この変更により、期限切れのパスワードを持つユーザーは、管理者の介入なしにパスワードを更新できます。
[bug 1641654] oslo.middleware の
healthcheckミドルウェアは、デフォルトで Keystone のアプリケーションパイプラインに追加されています。 このミドルウェアは、Keystone の健全性をチェックする一般的な方法を提供します。keystone-paste.iniに用意されている例を参照して、healthcheckミドルウェアを含める方法を見てください。
[bug 1641816] デフォルトで
[token] cache_on_issueオプションが有効になりました。このオプションは、グローバルキャッシングとトークンキャッシングが有効になっていない限り無効です。
[bug 1642348] デプロイヤーが PCI ロックアウトルールから除外されているユーザーを指定できるようにする新しいオプション
[security_compliance] lockout_ignored_user_idsが追加されました。
[Bug 1645487] 新しいユーザーの最初の使用時、および管理者によるパスワードのリセット後に、ユーザーにすぐにパスワード変更を必要とさせるための新しい PCI-DSS 機能が追加されました。新しい機能を有効にするには、[security_compliance]
change_password_upon_first_useをTrueに設定します。
アップグレード時の注意¶
[blueprint allow-expired] サービスを完了するために長時間実行される操作を許可するには、
allow_expiredフラグを使って期限切れのトークンを取得できる必要があります。それまでの有効期限を超えてトークンを取得可能な時間は、[token] allow_expired_windowオプションで管理されるため、この時間の間、データを取得可能にする必要があります。 Fernet トークンを使用する場合、古いトークンがまだ解読可能であるためには、キーのローテート期間がこれ以上でなければならないことを意味します。[token] expiration+[token] allow_expired_window秒より早く Fernet キーをローテートさせないようにしてください。
[bug 1547684] サンプルファイルが正しく読み込まれるように、
policy.v3cloudsample.jsonサンプルファイルを少し変更しました。cloud_adminルール変更前:"role:admin and (token.is_admin_project:True or domain_id:admin_domain_id)"正しくは:
"role:admin and (is_admin_project:True or domain_id:admin_domain_id)"必要に応じて設定ツールを調整してください。この変更の詳細については、
バグ修正のセクションを参照してください。
[bug 1561054] デフォルトのトークンプロバイダーは、 UUID から Fernet に切り替えました。 Fernet は、Ocata を実行する前にキーリポジトリーが必要であることに注意してください。これは
keystone-manage fernet_setupを実行することで実現できます。さらに、マルチノード環境では、アップグレードする前にキー配布プロセスを使用することが不可欠です。キーリポジトリーを作成したら、そのリポジトリーをデプロイメントのすべての Keystone ノードに配布する必要があります。これにより、各 Keystone ノードはデプロイメント全体で発行されたトークンを検証できます。 トークン形式を切り替える必要がない場合は、keystone.confの[token] providerをuuidに設定して、各ノードのトークンプロバイダーを明示的に設定する必要があります。 ドキュメントは fernet-tokens <https://docs.openstack.org/developer/keystone/configuration.html#encryption-keys-for-fernet-tokens> _ にあります。
[bug 1641654] oslo.middleware の
healthcheckミドルウェアは、デフォルトで KeyStone のアプリケーションパイプラインに追加されています。 次のセクションがkeystone-paste.iniに追加されました。[filter:healthcheck] use = egg:oslo.middleware#healthcheck
パイプラインの最初に
healthcheckミドルウェアを使うことをお勧めします:pipeline = healthcheck cors sizelimit http_proxy_to_wsgi osprofiler ...
[bug 1641660]
[DEFAULT] notification_formatのデフォルト値はbasicからcadfに変更されました。 CADF 通知には、要求を開始したユーザーに関する詳細情報があります。
[bug 1641660]
[DEFAULT] notification_opt_outのデフォルト値は、identity.authenticate.success、identity.authenticate.pending、identity.authenticate.failedを含むように変更されました。 デプロイメントがこれらの通知に依存している場合は、デフォルト設定を書き換えてください。
[bug 1642687] アップグレードが成功すると、すべての既存の
identity providerが自動的に作成されたドメインに関連付けられます。 Ocata リリースより前に存在していた``identity provider`` にはdomain_idフィールドが追加されました。新しいドメインはid(ランダムな UUID) およびidentity providerID と一致するnameを持ち、デフォルトではenabledになります。
[Related to Bug 1649446]
identity:list_revoke_eventsルールは両方のサンプルポリシーファイルpolicy.json``と ``policy.v3cloudsample.jsonで変更されました。変更前::"identity:list_revoke_events": ""
変更後:
"identity:list_revoke_events": "rule:service_or_admin"
廃止予定の機能¶
[bug 1659995] 設定オプション
[security_compliance] password_expires_ignore_user_idsは非推奨となり、オプションの値セットの使用を推奨しています。これは、ユーザー作成および更新 API 呼び出しで利用できます。
[blueprint deprecated-as-of-ocata] カタログバックエンド
endpoint_filter.sqlは、 Ocata リリースで非推奨となり、sqlバックエンドと統合されました。endpoint_filter.sqlカタログバックエンドをsqlバックエンドに置き換えることをお勧めします。endpoint_filter.sqlバックエンドは Pike リリースで削除されます。
[blueprint deprecated-as-of-ocata] 様々な KVS バックエンドと設定オプションが非推奨となり、 Pike リリースで削除される予定です。 以下が含まれます。
keystone.common.kvs.backends.inmemdb.MemoryBackendkeystone.common.kvs.backends.memcached.MemcachedBackendkeystone.token.persistence.backends.kvs.Tokenkeystone.conf の
[kvs]にあるすべての設定オプションkeystone.conf の
[memcached] serversの設定オプション
致命的な問題¶
[bug 1561054] Fernet トークンにアップグレードする場合は、キーリポジトリーとキー配布メカニズムを適切に配置する必要があります。そうしないと、トークンの検証が機能しない可能性があります。詳細については、アップグレード時の注意のセクションを参照してください。
セキュリティー上の問題¶
[bug 1650676] 認証プラグインは、
AuthContextオブジェクトを使用する必要があります。これにより、サーバーが処理する認証方法の間でuser_idなどの情報が変更されないようにするためのセキュリティ機能が追加されました。keystone.controllers.Auth.authenticateメソッドは、引数auth_contextを実際のAuthContextオブジェクトにする必要があります。
Bug Fixes¶
[bug 1524030] トークンの検証中に返される取り消しイベントの数を減らし、トークンに関連するイベントのサブセットのみ返すようにしました。したがって、全体的なトークン検証のパフォーマンスが向上します。
[bug 1651989]
bug 1547684によって、policy.v3cloudsample.jsonサンプルファイルを使用した時に、ドメイン管理者トークンがクラウド管理者として扱われれていました。is_admin_project機能がプロジェクトにスコープされたトークンのみをサポートしているので、is_admin_projectプロパティを持つすべてのドメインにスコープされたトークンに ``False``に自動的に設定します。[bug 1547684]
policy.v3cloudsample.jsonサンプルファイルのタイプミスにより oslo.policy がファイルをロードしていませんでした。 詳細については、アップグレード時の注意の節を参照してください。
[bug 1571878] フェデレーションプロトコルを作成または更新するときは、有効な
mapping_idが必要になります。mapping_idが存在しない場合、400 - Bad Requestが返されます。
[bug 1616424]
/v3/OS-OAUTH1/request_tokenと/ v3/OS-OAUTH1/access_tokenAPI を使って、 OAuth リクエストトークンと OAuth アクセストークンを作成する際の例外メッセージが改善されました。
[bug 1622310] 信頼がスコープされているプロジェクト、または委任が割り当てられているユーザー(委託者または受託者)が削除された場合、信頼は無効になります。
[bug 1636950] 新しいオプション
[ldap] connection_timeoutは、デプロイヤーが LDAP サーバーで使用するためのOPT_NETWORK_TIMEOUT値を設定できるようにします。これにより、LDAP URLが正しくない場合や接続に失敗した場合、 LDAP サーバーはSERVER_DOWN例外を返すことができます。デフォルトでは、[ldap] connection_timeoutの値は -1 であり、無効になっています。オプションを有効にするには、正の値(秒単位)を設定します。
[bug 1642457] Fernet トークンのキーをローテーションするときの、ディスク書き込みと I/O 失敗を処理します。空のキーを作成するのではなく、ディスクに書き込めないときにエラーを適切にキャッチしてログに記録します。
[bug 1642687] OS-FEDERATION API を介して
identity providerを登録する際には、要求内のidentity providerに関連付けるためにdomain_idを含むことが推奨されています。identity providerで認証された統合されたユーザーは、指定されたdomain_idに関連付けられます。domain_idを指定しないと、自動的にドメインが作成されます。
[bug 1642687]
identity providerで認証するユーザーは、domain_id属性を持つようになりました。これは、identity providerと結びついています。
[bug 1642692] 1つの`federation protocol` が削除されると、federation protocol で認証されたすべてのユーザーも削除されます。
[bug 1649138] 認証バックエンドとして LDAP を使用する場合、初期のバインドは接続オブジェクトの作成時に発生します。つまり、LDAP クエリーの実行の早期の段階で、バインドが認証されているか匿名であるかにかかわらず、接続エラーを正しく、早期に処理できます。
[Bug 1649446] 取り消しイベントをリストするデフォルトのポリシーが変更されました。以前は、すべての認証されたユーザーが取り消しイベントをリストできました。デフォルトでは、管理者またはサービスユーザー専用の機能に変更されました。 これは、 Keystone によって使用されているポリシーファイルを変更することによって変更できます。
[bug 1656076]
keystone.controllers.Auth.authenticate配下の様々なプラグインは、AuthContextオブジェクトを返す必要があります。
[bug 1659995] 新しいオプションは、ユーザー作成更新 API (
POST/PATCH /v3/users)呼び出しを使用して、管理者がユーザーを特定の PCI 要件から免除されるようにマークすることを可能にします。ユーザーを PCI パスワードロックアウトポリシーから免除するように設定するには、API リクエストで以下のユーザー属性を
TrueあるいはFalseに設定してください。user['options']['ignore_lockout_failure_attempts']
ユーザーを PCI パスワード有効期限ポリシーから免除されるようにマークするには:
user['options']['ignore_password_expiry']
ユーザーを PCI リセットポリシーから免除されるようにマークするには:
user['options']['ignore_change_password_upon_first_use']
その他の注意点¶
[bug 1017606]
keystone.catalog.backends.base.CatalogDriverBaseのget_catalogメソッドとget_v3_catalogメソッドが変更されました。抽象クラス(CatalogDriverBase)を拡張するサードパーティー拡張は、新しいパラメータ名に従って変更する必要があります。変更前のメソッド:get_catalog(self, user_id, tenant_id) get_v3_catalog(self, user_id, tenant_id)
変更後:
get_catalog(self, user_id, project_id) get_v3_catalog(self, user_id, project_id)
[bug 1524030]
keystone.revoke.backends.base.RevokeDriverBaseのlist_eventsメソッドを変更しました。 抽象クラス(RevokeDriverBase)を拡張するサードパーティー拡張は、新しいパラメーターに従ってコードを変更する必要があります。 メソッドの変更前:list_events(self, last_fetch=None)
変更後:
list_events(self, last_fetch=None, token=None)
[bug 1563101] トークンプロバイダードライバーインタフェースを
keystone.token.provider.Providerからkeystone.token.providers.base.Providerに移動しました。カスタムトークンプロバイダーを実装する場合は、新しい場所からサブクラス化してください。
[bug 1582585] 新しいメソッド
get_domain_mapping_listがkeystone.identity.mapping_backends.base.MappingDriverBaseに追加されました。抽象クラス(MappingDriverBase)を拡張するサードパーティー拡張は、この新しいメソッドを実装する必要があります。このメソッドは次のように実装されています:get_domain_mapping_list(self, domain_id)
指定されたドメイン ID のマッピングの一覧が返されます。
[bug 1611102]
list_endpoints_for_policy()とget_policy_for_endpoint()メソッドは使用されていないため、keystone.endpoint_policy.backends.base.EndpointPolicyDriverBase抽象クラスから削除されました。
[bug 1622310] 新しいメソッド
delete_trusts_for_projectがkeystone.trust.backends.base.TrustDriverBaseに追加されました。抽象クラス(TrustDriverBase)を拡張するサードパーティー拡張は、新しいパラメータに従って変更する必要があります。 新しいメソッドは次のように実装されています:delete_trusts_for_project(self, project_id)
[bug 1642687]
keystone.identity.shadow_backends.base.ShadowUsersDriverBaseのcreate_federated_userメソッドにおける署名が変更されました。抽象クラス(
ShadowUsersDriverBase)を継承するサードパーティ拡張は、新しいパラメータ名に従って更新する必要があります。メソッドの署名が以下から変更されました。
create_federated_user(self, federated_dict)
変更後:
create_federated_user(self, domain_id, federated_dict)
[bug 1659730]
keystone.auth.plugins.base.AuthMethodHandlerのauthenticateメソッドにある署名が変更されました。抽象クラス(AuthMethodHandler)を継承したサードパーティー製の拡張は、新しいパラメーター名にしたがって、そのコードを変更する必要があります。メソッドの署名は以下から変更されました。authenticate(self, context, auth_payload, auth_context)
変更後:
authenticate(self, request, auth_payload, auth_context)
PKI および PKIz トークン形式が削除され、 Fernet トークンが採用されました。
LDAP への書き込みのサポートは、読み込みのみのサポートのため、削除されました。以下の LDAP の操作はサポートさなくなりました。
ユーザーの作成グループの作成ユーザーの削除グループの削除ユーザーの更新グループの更新ユーザーのグループへの追加ユーザーのグループからの削除
Route および contrib 拡張の SQL バックエンドが削除、 Keystone に組み込まれ、オプションではなくなりました。 これは次のような影響を与えます。
keystone/contrib/admin_crudkeystone/contrib/endpoint_filterkeystone/contrib/federationkeystone/contrib/oauth1keystone/contrib/revokekeystone/contrib/simple_certkeystone/contrib/user_crud
Keystone キャッシュバックエンドは、 oslo.cache と同等のため削除しました。 これは次のような影響を与えます。
keystone/common/cache/backends/mongokeystone/common/cache/backends/memcache_poolkeystone/common/cache/backends/noop
抽象クラス
keystone.token.providers.base.Providerからの幾つかのトークン検証メソッド(下記参照)が削除され、トークンを検証するための単一のメソッド(validate_token)になりました。これは署名を取りますvalidate_token(self, token_ref)。 カスタムトークンプロバイダを使用している場合は、それに応じてカスタムプロバイダを更新してください。validate_v2_tokenvalidate_v3_tokenvalidate_non_persistent_token
抽象クラス
keystone.token.providers.base.Providerからの幾つかのトークン発行メソッド(下記参照)が削除され、トークンを発行するための単一のメソッド(issue_token)になりました。 カスタムトークンプロバイダを使用している場合は、それに応じてカスタムプロバイダを更新してください。issue_v2_tokenissue_v3_token
[DEFAULT] domain_id_immutable設定オプションは、厳密で不変なドメイン ID のために削除されました。
[endpoint_policy] enabled設定オプションは、エンドポイントのポリシー拡張を常に有効にするために削除されました。
認証プラグイン
keystone.auth.plugins.saml2.Saml2は、認証プラグインkeystone.auth.plugins.mapped.Mappedのために削除されました。
memcacheとmemcache_poolのトークン永続性バックエンドは、永続性を必要としない Fernet トークンの使用のために削除されました。
httpd/keystone.pyファイルは、keystone-wsgi-adminおよびkeystone-wsgi-publicスクリプトのために削除されました。
keystone/service.pyファイルを削除し、そのロジックはkeystone/version/service.pyに移動しました。
build_auth_contextミドルウェアからの管理トークンのチェックが削除されました。デプロイメントで admin token`が必要な場合は、``keystone-paste.ini` を編集して、ペーストパイプラインでadmin_token_authがbuild_auth_contextの前にあるようにしてください。そうでなければadmin_token_authミドルウェアをkeystone-paste.iniから完全に削除してください。
[assignment] driverのデフォルトはsqlになりました。設定で1つが提供されなかった場合のデフォルト割り当てドライバーを決定するロジックが削除されました。 Keystone は1つの割り当てドライバーのみをサポートしており、カスタム割り当てドライバを配備していない限り、変更しないでください。
[resource] driverのデフォルトはsqlになりました。設定で1つが提供されなかった場合のデフォルトリソースドライバーを決定するロジックが削除されました。 Keystone は1つのリソースドライバーのみをサポートしており、カスタムリソースドライバを配備していない限り、変更しないでください。
[os_inherit] enabled設定オプションは削除され、 OS-INHERIT 拡張が常に有効になりました。
[DEFAULT] domain_id_immutableオプションは削除されました。これにより、ユーザー、グループ、およびプロジェクトのdomain_id属性を変更する機能が削除されます。 この振る舞いは、エンティティのdomain_id属性を更新することによって、デプロイヤーがエンティティをあるドメインから別のドメインに移行できるようにするために導入されました。 この機能は Mitaka リリースで非推奨になり、現在は廃止されました。