8.2. 将 Identity 服务与单点登录联邦 IdP 集成
在 OpenShift (RHOSO)上部署 Red Hat OpenStack Services 后,红帽的单点登录(SSO)技术用于联邦,您必须将 SSO 与 RHOSO 集成。
流程
创建一个联邦域:
$ openstack domain create <federated_domain_name>将 <
federated_domain_name> 替换为您要使用身份提供程序管理的域的名称,如my_domain。输出示例:
+-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | | | enabled | True | | id | b493634c9dbf4546a2d1988af181d7c9 | | name | my_domain | | options | {} | | tags | [] | +-------------+----------------------------------+
设置联邦身份提供程序:
$ openstack identity provider create --remote-id https://<sso_fqdn>:9443/realms/<realm> --domain <federated_domain_name> <idp_name>-
将
<sso_fqdn> 替换为 SSO 身份提供程序的完全限定域名。 -
将 &
lt;realm> 替换为 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 | +-------------------+-----------------------------------------------------+
-
将
创建与您的云身份需求独有的映射文件:
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使用映射文件为 RHOSO 创建联邦映射规则:
$ openstack mapping create --rules <mapping_file> <mapping_rules>-
将 <
;mapping_file> 替换为您在上一步中创建的映射文件的名称,例如mapping.json。 -
将
<mapping_rules> 替换为从此文件创建的映射规则的名称,例如IPAmap。
-
将 <
创建一个联邦组:
$ openstack group create --domain <federated_domain_name> <federated_group_name>-
将
<federated_domain_name> 替换为在第 1 步中创建的域名,如my_domain。 -
将 <
federated_group_name> 替换为在映射文件中指定的联邦组的名称,如my_fed_group。
-
将
创建 Identity 服务(keystone)项目:
$ openstack project create --domain <federated_domain_name> <federated_project_name>-
将
<federation_project_name> 替换为 Identity 服务项目的名称。
-
将
将 Identity 服务联邦组添加到角色中:
$ openstack role add --group <federated_group_name> --group-domain <federated_domain_name> --project <federated_project_name> --project-domain <federated_domain_name> member创建 OpenID 联邦协议:
$ openstack federation protocol create openid --mapping <mapping_rules> --identity-provider <idp_name>-
将
<mapping_rules> 替换为您从映射文件创建的映射规则的名称,例如IPAmap。 -
将
<idp_name> 替换为您创建的唯一重定向 URL 的字符串,例如kcipaIDP。
-
将