4.21. マッピングファイルの作成および Keystone にアップロード
Keystone は、IdP の SAML アサーションを keystone が理解できる形式に一致させるマッピングを実行します。このマッピングは keystone のマッピングエンジンによって実行され、IdP にバインドされる一連のマッピングに基づいています。
以下の例で使用しているマッピングは、以下で説明します(導入部分で説明)。
[ { "local": [ { "user": { "name": "{0}" }, "group": { "domain": { "name": "federated_domain" }, "name": "federated_users" } } ], "remote": [ { "type": "MELLON_NAME_ID" }, { "type": "MELLON_groups", "any_one_of": ["openstack-users"] } ] } ]
このマッピングファイルには、1 つのルールのみが含まれます。ルールは、local
と remote
の 2 つの部分に分類されます。マッピングエンジンは、1 つが一致するまでルールの一覧を反復処理し、実行します。ルールは、ルールの remote
部分の すべての 条件が一致する場合にのみ一致とみなされます。この例では、remote
条件は以下を指定します。
-
アサーションには
MELLON_NAME_ID
という値が含まれている必要があります。 -
アサーションには
MELLON_groups
という名前の値が含まれ、グループ一覧の 1 つ以上のグループはopenstack-users
である必要があります。
ルールが一致する場合は、以下を実行します。
-
keystone
user
ユーザー名には、MELLON_NAME_ID
からの値が割り当てられます。 -
ユーザーは
Default
ドメインの keystone グループfederated_users
に割り当てられます。
要約すると、IdP がユーザーの認証に成功し、IdP がそのユーザーが openstack-users
グループに所属していることをアサートすると、keystone は keystone の federated_users
グループにバインドされている権限で OpenStack にアクセスできます。
4.21.1. マッピングを作成する
keystone でマッピングを作成するには、マッピングルールが含まれるファイルを作成してから keystone にアップロードし、参照名を提供します。
fed_deployment
ディレクトリー(例:fed_deployment/mapping_${FED_OPENSTACK_IDP_NAME}_saml2.json
)にマッピングファイルを作成し、名前$FED_OPENSTACK_MAPPING_NAME
をマッピングルールに割り当てます。以下に例を示します。$ openstack mapping create --rules fed_deployment/mapping_rhsso_saml2.json $FED_OPENSTACK_MAPPING_NAME
configure-federation
スクリプトを使用して、上記の手順を 2 つの手順として実行することができます。
$ ./configure-federation create-mapping $ ./configure-federation openstack-create-mapping
-
create-mapping
- マッピングファイルを作成します。 -
openstack-create-mapping
- ファイルのアップロードを実行します。