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> 替换为 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>"
},
"name": "<federated_group_name>"
}
}
],
"remote": [
{
"type": "OIDC-preferred_username"
}
]
}
]
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