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"]
                }
            ]
        }
    ]
    Copy to Clipboard Toggle word wrap

此映射文件仅包含一条规则。规则被分为两个部分:localremote。映射引擎的工作原理是迭代规则列表,直到匹配为止,然后执行它。只有在规则 的远程 部分的 所有条件都匹配时才会考虑规则。在本例中,远程 条件指定:

  1. 断言必须包含名为 MELLON_NAME_ID 的值。
  2. 断言必须包含名为 MELLON_groups 的值,组列表中至少有一个组必须是 openstack-users

如果规则匹配,则:

  1. keystone 用户名 将被分配来自 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_IDP_IDP_NAME}_saml2.json)中,并将名称 $FED_114_MAPPING_NAME 分配给映射规则。例如:

    $ openstack mapping create --rules fed_deployment/mapping_rhsso_saml2.json $FED_OPENSTACK_MAPPING_NAME
    Copy to Clipboard Toggle word wrap
注意

您可以使用 configure-federation 脚本作为两个步骤执行上述步骤:

$ ./configure-federation create-mapping
$ ./configure-federation openstack-create-mapping
Copy to Clipboard Toggle word wrap
  • create-mapping - 创建映射文件。
  • openstack-create-mapping - 执行文件的上传。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat