第 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 或更高版本的版本

流程

  1. 为您的 SSO 管理员提供适当的重定向 URI。作为响应,您的 SSO 管理员为您提供了 ClientID 和客户端 secret
  2. enable-federation-openidc.yaml 环境文件 heat 模板复制到 /home/stack/templates/ 目录中。

    $ cp /usr/share/openstack-tripleo-heat-templates/environments/enable-federation-openidc.yaml \
    /home/stack/templates
  3. 修改 enable-federation-openidc.yaml 环境文件,以满足您的联邦解决方案的要求。

    1. 以下是 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 中定义的资源匹配。
    2. 您可以使用以下三个参数来自定义 RHOSP 和联邦解决方案之间的交互。

      parameter_defaults:
        KeystoneOpenIdcClaimDelimiter: ';'1
        KeystoneOpenIdcPassUserInfoAs: 'claims'2
        KeystoneOpenIdcPassClaimsAs: 'both'3
        ...
      1
      在设置多值声明时,使用 KeystoneOpenIdcClaimDelimiter 参数设置分隔符。默认分隔符为分号。
      2
      使用 KeystoneOpenIdcPassUserInfoAs 参数定义在解析后声明传递到联邦应用的方式。允许的值是 声明jsonjwt
      3
      使用 KeystoneOpenIdcPassClaimsAs 参数定义声明和令牌传递给应用环境的方式。这些选项是:
      • none :声明和令牌不会传递给应用程序。
      • 环境 :声明和令牌作为环境变量传递。
      • 标头 :声明和令牌在标头中传递。
      • : Claims 和 headers 都作为标头和变量传递。这是默认值。

        注意

        有关支持的联邦配置示例,请参阅使用 Red Hat Single Sign-on 部署 Red Hat OpenStack Platform

  4. enable-federation-openidc.yaml 添加到堆栈中,以及其他环境文件并部署 overcloud:

    (undercloud)$ openstack overcloud deploy --templates \
    -e [your environment files] \
    -e /home/stack/templates/enable-federation-openidc.yaml
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.