第 4 章 使用 Red Hat OpenStack Platform 和其他供应商进行联邦
当与红帽单点登录(RH-SSO)和 Active Directory Federation Services (ADFS)以外的供应商集成时,红帽不提供对联邦的直接支持。如果要使用其他供应商,请联系红帽以获得支持例外。
4.1. 为其他供应商自定义联邦
其他供应商可能有不同的方式来限制 OpenIDC 声明或格式化用户信息,例如:以下是可在 heat 中调整的功能。
先决条件
- 已安装 Red Hat OpenStack Platform (RHOSP) director
- 您在您的环境中提供了一个联合解决方案
- RHOSP 是 17.1.3 或更高版本的版本
流程
-
为您的 SSO 管理员提供适当的重定向 URI。作为响应,您的 SSO 管理员为您提供了
ClientID
和客户端secret
。 将
enable-federation-openidc.yaml
环境文件 heat 模板复制到/home/stack/templates/
目录中。$ cp /usr/share/openstack-tripleo-heat-templates/environments/enable-federation-openidc.yaml \ /home/stack/templates
修改
enable-federation-openidc.yaml
环境文件,以满足您的联邦解决方案的要求。以下是 Federation 配置通常需要的参数:
- KeystoneAuthMethods
- 以逗号分隔的用于身份验证的可接受的方法列表。
- KeystoneOpenIdcClientId
- 用于 OpenID Connect 供应商握手的客户端 ID。您必须从 SSO 管理员获取它。
- KeystoneOpenIdcClientSecret
- 用于 OpenID Connect 供应商握手的客户端 secret。在提供重定向 URL 后,您必须从 SSO 管理员获取此结果。
- KeystoneOpenIdcCryptoPassphrase
- 选择在为 OpenID Connect 握手加密数据时使用的密码短语。
- KeystoneOpenIdcIdpName
- 在 Identity 服务(keystone)中与 IdP 关联的名称。
- KeystoneOpenIdcIntrospectionEndpoint
- Identity 服务内省端点: https://<fqdn>/realms/<realm>/protocol/openid-connect/token/introspect
- KeystoneOpenIdcProviderMetadataUrl
- 指向 OpenID Connect 供应商元数据的 URL。
- KeystoneOpenIdcRemoteIdAttribute
- 要从环境中获取身份提供程序的实体 ID 属性。
- KeystoneOpenIdcResponseType
- 预期来自 OpenID Connect 供应商的响应类型。
- KeystoneTrustedDashboards
- 用于单点登录的仪表板 URL,也可以是以逗号分隔的列表。
- WebSSOChoices
- 指定要安装的 SSO 身份验证选择列表。每个项目都是 SSO 选择标识符和显示消息的列表。
- WebSSOIDPMapping
- 指定从 SSO 身份验证选择到身份提供程序和协议的映射。身份提供程序和协议名称必须与 keystone 中定义的资源匹配。
您可以使用以下三个参数来自定义 RHOSP 和联邦解决方案之间的交互。
parameter_defaults: KeystoneOpenIdcClaimDelimiter: ';'1 KeystoneOpenIdcPassUserInfoAs: 'claims'2 KeystoneOpenIdcPassClaimsAs: 'both'3 ...
- 1
- 在设置多值声明时,使用
KeystoneOpenIdcClaimDelimiter
参数设置分隔符。默认分隔符为分号。 - 2
- 使用
KeystoneOpenIdcPassUserInfoAs
参数定义在解析后声明传递到联邦应用的方式。允许的值是声明
、json
和jwt
。 - 3
- 使用
KeystoneOpenIdcPassClaimsAs
参数定义声明和令牌传递给应用环境的方式。这些选项是:-
none
:声明和令牌不会传递给应用程序。 -
环境
:声明和令牌作为环境变量传递。 -
标头
:声明和令牌在标头中传递。 :
Claims 和 headers 都作为标头和变量传递。这是默认值。注意有关支持的联邦配置示例,请参阅使用 Red Hat Single Sign-on 部署 Red Hat OpenStack Platform。
-
将
enable-federation-openidc.yaml
添加到堆栈中,以及其他环境文件并部署 overcloud:(undercloud)$ openstack overcloud deploy --templates \ -e [your environment files] \ -e /home/stack/templates/enable-federation-openidc.yaml