第 3 章 使用 Red Hat OpenStack Platform 和 Active Directory Federation Services 进行联邦
红帽支持使用 Microsoft Active Directory Federation Services (AD FS)作为 Red Hat OpenStack Platform (RHOSP)的身份供应商,以便您可以在 RHOSP 中使用相同的联邦解决方案进行 RHOSP 中的单点登录。
3.1. 使用 Active Directory Federation Services 部署 Red Hat OpenStack Platform
使用 enable-federation-openidc.yaml
环境文件来部署 Red Hat OpenStack Platform (RHOSP),以便它可以集成到您的联邦身份验证解决方案中。联邦允许用户使用单点登录(SSO)登录 OpenStack 控制面板。您必须使用 OpenStack Dashboard for SSO。
先决条件
- 已安装 Red Hat OpenStack Platform director。
- 您有 Active Directory (c)用于在您的环境中配置的联邦。
流程
记录您的 keystone 端点。keystone 端点是您在
custom-domain.yaml
heat 模板中分配CloudName
参数的 FQDN 值,其中包含的传输和端口号。keystone 端点有以下构造:https://<FQDN>:13000
注意如果没有部署 TLS,则 keystone 端点为
http://<FQDN>:5000
。红帽建议使用 RHOSP 的每个生产环境部署 TLS。为 SSO 管理员提供以下重定向 URI:
重定向 URI:
https://<FQDN>:13000/v3/auth/OS-FEDERATION/identity_providers/adfsIDP/protocols/openid/websso https://<FQDN>:13000/v3/auth/OS-FEDERATION/websso/openid
-
作为响应,您的 SSO 管理员为您提供了
ClientID
和ClientSecret
。 将
enable-federation-openidc.yaml
yaml 文件复制到堆栈主目录中: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: adfsIdP 5 KeystoneOpenIdcIntrospectionEndpoint: https://adfs.local.com/adfs/openid-connect/token/introspect 6 KeystoneOpenIdcProviderMetadataUrl: https://adfs.local.com/adfs/.well-known/openid-configuration 7 KeystoneOpenIdcRemoteIdAttribute: HTTP_OIDC_ISS 8 KeystoneOpenIdcResponseType: code 9 KeystoneTrustedDashboards: https://overcloud.redhat.local/dashboard/auth/websso/ 10 WebSSOChoices: [['OIDC', 'OpenID Connect']] 11 WebSSOIDPMapping: {'OIDC': ['adfsIdP', '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 关联的名称。此参数的值始终是 Active Directory Federation Services 的 adfsIDP。
- 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