第 3 章 使用 Red Hat OpenStack Platform 和 Active Directory Federation Services 进行联邦
红帽支持使用 Microsoft Active Directory Federation Services (AD FS)作为 Red Hat OpenStack Platform (RHOSP)的身份供应商,以便您可以在 RHOSP 中使用相同的联邦解决方案进行 RHOSP 中的单点登录。
使用 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.yamlheat 模板中分配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.yamlyaml 文件复制到堆栈主目录中: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,openid1 KeystoneOpenIdcClientId: <ClientID>2 KeystoneOpenIdcClientSecret: <ClientSecret>3 KeystoneOpenIdcCryptoPassphrase: openstack4 KeystoneOpenIdcIdpName: adfsIdP5 KeystoneOpenIdcIntrospectionEndpoint: https://adfs.local.com/adfs/openid-connect/token/introspect6 KeystoneOpenIdcProviderMetadataUrl: https://adfs.local.com/adfs/.well-known/openid-configuration7 KeystoneOpenIdcRemoteIdAttribute: HTTP_OIDC_ISS8 KeystoneOpenIdcResponseType: code9 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