4.20. マッピングファイルの作成および Keystone にアップロード

Keystone は、IdP の SAML アサーションを keystone が理解できる形式に一致させるマッピングを実行します。このマッピングは keystone のマッピングエンジンによって実行され、IdP にバインドされる一連のマッピングに基づいています。

  1. 以下の例で使用しているマッピングは、以下で説明します (導入部分で説明)。

    [
        {
            "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 つのルールのみが含まれます。ルールは、localremote の 2 つの部分に分類されます。マッピングエンジンは、1 つが一致するまでルールのリストを反復処理し、実行します。ルールは、ルールの remote 部分の すべての 条件が一致する場合にのみ一致とみなされます。この例では、remote 条件は以下を指定します。

  1. アサーションには MELLON_NAME_ID という値が含まれている必要があります。
  2. アサーションには MELLON_groups という名前の値が含まれ、グループリストの 1 つ以上のグループは openstack-users である必要があります。

ルールが一致する場合は、以下を実行します。

  1. keystone user ユーザー名には、MELLON_NAME_ID からの値が割り当てられます。
  2. ユーザーは、federated_domain ドメインの keystone グループ federated_users に割り当てられます。

要約すると、IdP がユーザーの認証に成功し、IdP がそのユーザーが openstack-users グループに所属していることをアサートすると、keystone は keystone の federated_users グループにバインドされている権限で OpenStack にアクセスできます。

4.20.1. マッピングを作成する

  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 - ファイルのアップロードを実行します。