8.2. 将 Identity 服务与单点登录联邦 IdP 集成


在 OpenShift (RHOSO)上部署 Red Hat OpenStack Services 后,红帽的单点登录(SSO)技术用于联邦,您必须将 SSO 与 RHOSO 集成。

流程

  1. 创建一个联邦域:

    $ openstack domain create <federated_domain_name>
    • 将 < federated_domain_name > 替换为您要使用身份提供程序管理的域的名称,如 my_domain

      输出示例:

      +-------------+----------------------------------+
      | Field       | Value                            |
      +-------------+----------------------------------+
      | description |                                  |
      | enabled     | True                             |
      | id          | b493634c9dbf4546a2d1988af181d7c9 |
      | name        | my_domain                        |
      | options     | {}                               |
      | tags        | []                               |
      +-------------+----------------------------------+
  2. 设置联邦身份提供程序:

    $ openstack identity provider create --remote-id https://<sso_fqdn>:9443/realms/<realm> --domain <federated_domain_name> <idp_name>
    • <sso_fqdn > 替换为 SSO 身份提供程序的完全限定域名。
    • 将 & lt;realm& gt; 替换为 SSO 域。默认域是 master
    • <federated_domain_name > 替换为在第 1 步中创建的联邦域的名称,如 my_domain
    • <idp_name > 替换为您在部署 SSO 时选择的字符串,以创建唯一的重定向 URL,如 kcipaIDP

      输出示例:

      +-------------------+-----------------------------------------------------+
      | Field             | Value                                               |
      +-------------------+-----------------------------------------------------+
      | authorization_ttl | None                                                |
      | description       | None                                                |
      | domain_id         | b493634c9dbf4546a2d1988af181d7c9                    |
      | enabled           | True                                                |
      | id                | kcipaIDP                                            |
      | remote_ids        | https://sso.fqdn.local:9443/realms/master           |
      +-------------------+-----------------------------------------------------+
  3. 创建与您的云身份需求独有的映射文件:

     cat > mapping.json << EOF
    [
    	{
        	"local": [
            	{
                	"user": {
                 	"name": "{0}"
                	},
                	"group": {
                    	"domain": {
                     	"name": "<federated_domain_name>" 
    1
    
                    	},
                    	"name": "<federated_group_name>" 
    2
    
                	}
            	}
        	],
        	"remote": [
            	{
                	"type": "OIDC-preferred_username"
            	}
        	]
    	}
    ]
    EOF
    1
    <federated_domain_name > 替换为在第 1 步中创建的域,如 my_domain
    2
    将 < federated_group_name > 替换为您在稍后步骤中创建的联邦组的名称,如 my_fed_group
  4. 使用映射文件为 RHOSO 创建联邦映射规则:

    $ openstack mapping create --rules <mapping_file> <mapping_rules>
    • 将 &lt ;mapping_file > 替换为您在上一步中创建的映射文件的名称,例如 mapping.json
    • <mapping_rules > 替换为从此文件创建的映射规则的名称,例如 IPAmap
  5. 创建一个联邦组:

    $ openstack group create --domain <federated_domain_name> <federated_group_name>
    • <federated_domain_name > 替换为在第 1 步中创建的域名,如 my_domain
    • 将 < federated_group_name > 替换为在映射文件中指定的联邦组的名称,如 my_fed_group
  6. 创建 Identity 服务(keystone)项目:

    $ openstack project create --domain <federated_domain_name> <federated_project_name>
    • <federation_project_name > 替换为 Identity 服务项目的名称。
  7. 将 Identity 服务联邦组添加到角色中:

    $ openstack role add --group <federated_group_name> --group-domain <federated_domain_name> --project <federated_project_name> --project-domain <federated_domain_name> member
  8. 创建 OpenID 联邦协议:

    $ openstack federation protocol create openid --mapping <mapping_rules> --identity-provider <idp_name>
    • <mapping_rules > 替换为您从映射文件创建的映射规则的名称,例如 IPAmap
    • <idp_name > 替换为您创建的唯一重定向 URL 的字符串,例如 kcipaIDP
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部