第 2 章 使用 Red Hat OpenStack Platform 和 Red Hat Single Sign-On 进行联邦
红帽支持使用 Red Hat Single Sign-On 作为 Red Hat OpenStack Platform (RHOSP)的身份供应商,以便您可以在更广泛的机构中使用相同的联邦解决方案进行 RHOSP 中的单点登录。
2.1. 使用红帽单点登录部署 Red Hat OpenStack Platform
使用 enable-federation-openidc.yaml
环境文件来部署 Red Hat OpenStack Platform (RHOSP),以便它可以集成到您的联邦身份验证解决方案中。联邦允许用户使用单点登录(SSO)登录 OpenStack 控制面板。您必须使用 OpenStack Dashboard for SSO。
先决条件
- 已安装 Red Hat OpenStack Platform director。
- 您的环境中已有 Red Hat Single Sign-On (RH-SSO)联邦身份验证。
流程
记录您的 Identity 服务端点。keystone 端点是您在
custom-domain.yaml
heat 模板中分配CloudName
参数的 FQDN 值,其中包含的传输和端口号。keystone 端点有以下构造:https://<FQDN>:13000
注意如果没有部署 TLS,您的 Identity 服务 API 端点为 http://<FQDN>:5000。红帽建议使用 RHOSP 的每个生产环境部署 TLS。
为 SSO 管理员提供以下重定向 URI:
https://<FQDN>:13000/v3/auth/OS-FEDERATION/identity_providers/kcipaIDP/protocols/openid/websso https://<FQDN>:13000/v3/auth/OS-FEDERATION/websso/openid
作为响应,您的 SSO 管理员为您提供了
ClientID
和ClientSecret
。将
enable-federation-openidc.yaml
heat 模板复制到堆栈主目录中:$ cp /usr/share/openstack-tripleo-heat-templates/environments/enable-federation-openidc.yaml \ /home/stack/
编辑
enable-federation-openidc.yaml
环境文件的副本。以下是配置示例:parameter_defaults: KeystoneAuthMethods: password,token,oauth1,mapped,application_credential,openid 1 KeystoneOpenIdcClientId: <ClientID> 2 KeystoneOpenIdcClientSecret: <ClientSecret> 3 KeystoneOpenIdcCryptoPassphrase: openstack 4 KeystoneOpenIdcIdpName: kcipaIDP 5 KeystoneOpenIdcIntrospectionEndpoint: https://rh-sso.local.com/realms/master/protocol/openid-connect/token/introspect 6 KeystoneOpenIdcProviderMetadataUrl: https://rh-sso.local.com/realms/master/.well-known/openid-configuration 7 KeystoneOpenIdcRemoteIdAttribute: HTTP_OIDC_ISS 8 KeystoneOpenIdcResponseType: id_token 9 KeystoneTrustedDashboards: https://overcloud.redhat.local/dashboard/auth/websso/ 10 WebSSOChoices: [['OIDC', 'OpenID Connect']] 11 WebSSOIDPMapping: {'OIDC': ['kcipaIDP', 'openid']} 12 WebSSOInitialChoice: OIDC KeystoneFederationEnable: True KeystoneOpenIdcEnable: True KeystoneOpenIdcEnableOAuth: True WebSSOEnable: True
- 1
- 以逗号分隔的用于身份验证的可接受的方法列表。
- 2
- 用于 OpenID Connect 供应商握手的客户端 ID。您必须从 SSO 管理员获取此功能
- 3
- 用于 OpenID Connect 供应商握手的客户端 secret。在提供重定向 URL 后,您必须从 SSO 管理员获取此结果。
- 4
- 选择在为 OpenID Connect 握手加密数据时使用的密码短语。
- 5
- 在 Identity 服务(keystone)中与 IdP 关联的名称。对于 RH-SSO,此参数的值始终为 kcipaIDP。
- 6
- 7
- 指向 OpenID Connect 供应商元数据的 URL
- 8
- 要从环境中获取身份提供程序的实体 ID 属性。
- 9
- 预期来自 OpenID Connect 供应商的响应类型。
- 10
- 用于单点登录的仪表板 URL,也可以是以逗号分隔的列表。
- 11
- 指定要安装的 SSO 身份验证选择列表。每个项目都是 SSO 选择标识符和显示消息的列表。
- 12
- 指定从 SSO 身份验证选择到身份提供程序和协议的映射。身份提供程序和协议名称必须与 keystone 中定义的资源匹配。
将
enable-federation-openidc.yaml
添加到堆栈中,以及其他环境文件并部署 overcloud:(undercloud)$ openstack overcloud deploy --templates \ -e [your environment files] \ -e /home/stack/templates/enable-federation-openidc.yaml