搜索

第 2 章 使用 Red Hat OpenStack Platform 和 Red Hat Single Sign-On 进行联邦

download PDF

红帽支持使用 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),以便它可以集成到您的联邦身份验证解决方案中。

先决条件

  • 已安装 Red Hat OpenStack Platform director。
  • 您的环境中已有 Red Hat Single Sign-On (RH-SSO)联邦身份验证。

流程

  1. 记录您的 Identity 服务端点。keystone 端点是您在 custom-domain.yaml heat 模板中分配 CloudName 参数的 FQDN 值,其中包含的传输和端口号。keystone 端点有以下构造:

    https://<FQDN>:13000
    注意

    如果没有部署 TLS,您的 Identity 服务 API 端点为 http://<FQDN>:5000。红帽建议使用 RHOSP 的每个生产环境部署 TLS。

  2. 为 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 管理员为您提供了 ClientIDClientSecret

  3. enable-federation-openidc.yaml heat 模板复制到堆栈主目录中:

    $ cp /usr/share/openstack-tripleo-heat-templates/environments/enable-federation-openidc.yaml \
    /home/stack/
  4. 编辑 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 中定义的资源匹配。
  5. enable-federation-openidc.yaml 添加到堆栈中,以及其他环境文件并部署 overcloud:

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

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.