4.20. マッピングファイルの作成および 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からの値が割り当てられます。 -
ユーザーは、
federated_domainドメインの keystone グループfederated_usersに割り当てられます。
要約すると、IdP がユーザーの認証に成功し、IdP がそのユーザーが openstack-users グループに所属していることをアサートすると、keystone は keystone の federated_users グループにバインドされている権限で OpenStack にアクセスできます。
4.20.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- ファイルのアップロードを実行します。