2.2. 将 Red Hat OpenStack Platform 与红帽单点登录集成
使用 Red Hat Single Sign-On (RH-SSO)部署 Red Hat OpenStack Platform (RHOSP)后,您必须将 RH-SSO 与 RHOSP 集成。
流程
创建一个联邦域:
$ openstack domain create <federated_domain_name>
输出示例:
+-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | | | enabled | True | | id | b493634c9dbf4546a2d1988af181d7c9 | | name | my_domain | | options | {} | | tags | [] | +-------------+----------------------------------+
设置联邦身份提供程序:
$ openstack identity provider create --remote-id https://<rh-sso_fqdn>:9443/realms/<realm> --domain <domain_name> kcipaIDP
将
<rh-sso_fqdn
> 替换为 RH-SSO 的完全限定域名,将 <realm&
gt; 替换为 RH-SSO 域。默认域是master
。将<federated_domain_name
> 替换为在第 1 步中创建的联邦域的名称。输出示例:
+-------------------+-----------------------------------------------------+ | Field | Value | +-------------------+-----------------------------------------------------+ | authorization_ttl | None | | description | None | | domain_id | b493634c9dbf4546a2d1988af181d7c9 | | enabled | True | | id | kcipaIDP | | remote_ids | https://rh-sso.fqdn.local:9443/realms/master | +-------------------+-----------------------------------------------------+
创建一个映射文件,它对云的身份需求是唯一的。
Example:
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" 3 } ] } ] EOF
- 1
- <federated_domain_name> 是在第 x 步中创建的域。
- 2
- 为
federated_group_name
选择一个名称。您将在后续步骤中创建此功能 - 3
- 您必须使用
OIDC-preferred_username
作为 RH-SSO 的声明 ID使用映射文件为 RHOSP 创建联邦映射规则。在提供的示例中,从
mapping.json
文件创建的映射规则命名为IPAmap
:openstack mapping create --rules <file> <name>
例如:
$ openstack mapping create --rules mapping.json IPAmap
创建一个联邦组:
$ openstack group create --domain <federation_domain_name> <federation_group_name>
创建 Identity 服务(keystone)项目:
$ openstack project create --domain <federation_domain> <federation_project_name>
将 Identity 服务联邦组添加到角色中:
$ openstack role add --group <federation_group_name> --group-domain <federation_domain> --project <federation_project_name> --project-domain <federation_domain> member
创建 OpenID 联邦协议:
$ openstack federation protocol create openid --mapping IPAmap --identity-provider kcipaIDP