4.3. 配置 OpenShift 3.11 以使用 Red Hat Single Sign-On 进行身份验证


配置 OpenShift 3.11,以使用红帽单点登录部署作为 OpenShift 的授权网关。

本例添加了 Red Hat Single Sign-On 作为验证方法,以及安装 OpenShift Container Platform 集群期间配置的身份提供程序。配置后,红帽单点登录方法也将可用(与配置的身份提供程序)用于用户登录 OpenShift Web 控制台。

4.3.1. 配置红帽单点登录凭证

先决条件

流程

https://secure-sso-sso-app-demo 登录加密的红帽单点登录 Web 服务器。openshift32.example.com/auth/admin 使用 Red Hat Single Sign-On 部署期间创建的 xref:sso-administrator-setup[administrator 帐户。

创建一个 Realm

  1. 将光标悬停在域命名空间(默认为 栏的顶部),然后单击 Add Realm
  2. 输入 realm 名称(本示例使用 OpenShift)并点 Create

创建用户

创建一个测试用户,用于演示启用了 Red Hat Single Sign-On 的 OpenShift 登录:

  1. 单击 Manage sidebar 中的 Users,以查看域的用户信息。
  2. 单击 添加用户
  3. 输入一个有效的 Username (本示例使用 testuser)和任何其他可选信息,然后单击保存
  4. 编辑用户配置:

    1. 单击用户空间中的 Credentials 选项卡,然后输入用户的密码。
    2. 确保将 Temporary Password 选项设为 Off,以便它不会稍后提示输入密码,然后单击 Reset Password 来设置用户密码。弹出窗口提示进行额外的确认。

创建并配置 OpenID-Connect Client

  1. 单击 Manage 栏中的 Clients,再单击 Create
  2. 输入 客户端 ID。这个示例使用 openshift-demo
  3. 从下拉菜单中选择 Client Protocol (本例使用 openid-connect)并点 Save。您将进入 openshift-demo 客户端的配置设置页面。
  4. Access Type 下拉菜单中选择 confidential。这是服务器端应用程序的访问类型。
  5. Valid Redirect URIs 对话框中,输入 OpenShift Web 控制台的 URI,本例中为 https://openshift.example.com:8443/*

在下一节中,需要客户端 Secret 在 OpenShift 主控机上配置 OpenID-Connect。现在,您可以在 Credentials 标签页下复制它。secret 是 <7b0384a2-b832-16c5-9d73-2957842e89h7>。

登录 OpenShift 主控机 CLI。

先决条件

您必须具有编辑 /etc/origin/master/master-config.yaml 文件的权限。

流程

  1. 编辑 /etc/origin/master/master-config.yaml 文件并找到 identityProviders 部分。例如,如果 OpenShift 主控机配置了 HTPassword 身份提供程序,则 identityProviders 部分将类似如下:

    identityProviders:
    - challenge: true
      login: true
      name: htpasswd_auth
      provider:
        apiVersion: v1
        file: /etc/origin/openshift-passwd
        kind: HTPasswdPasswordIdentityProvider
    Copy to Clipboard Toggle word wrap

    将 Red Hat Single Sign-On 作为二级身份提供程序添加类似以下代码片段的内容:

    - name: rh_sso
      challenge: false
      login: true
      mappingMethod: add
      provider:
        apiVersion: v1
        kind: OpenIDIdentityProvider
        clientID: openshift-demo
        clientSecret: 7b0384a2-b832-16c5-9d73-2957842e89h7
        ca: xpaas.crt
        urls:
          authorize: https://secure-sso-sso-app-demo.openshift32.example.com/auth/realms/OpenShift/protocol/openid-connect/auth
          token: https://secure-sso-sso-app-demo.openshift32.example.com/auth/realms/OpenShift/protocol/openid-connect/token
          userInfo: https://secure-sso-sso-app-demo.openshift32.example.com/auth/realms/OpenShift/protocol/openid-connect/userinfo
        claims:
          id:
          - sub
          preferredUsername:
          - preferred_username
          name:
          - name
          email:
          - email
    Copy to Clipboard Toggle word wrap
    1. clientSecret 的 Red Hat Single Sign-On Secret hash 可在 Red Hat Single Sign-On Web 控制台中找到: Clients openshift-demo Credentials
    2. 可以通过使用红帽单点登录应用程序发出请求来查找 urls 的端点。例如:

      <curl -k https://secure-sso-sso-app-demo.openshift32.example.com/auth/realms/OpenShift/.well-known/openid-configuration | python -m json.tool>
      Copy to Clipboard Toggle word wrap

      响应包括 authorization_endpointtoken_endpointuserinfo_endpoint

    3. 这个示例工作流使用自生成的 CA 为演示提供一个端到端工作流。因此,ca 作为 <ca: xpaas.crt> 提供。此 CA 证书还必须复制到 /etc/origin/master 文件夹中。如果使用从验证的证书颁发机构购买的证书,则不需要这样做。
  2. 保存配置并重启 OpenShift master:

    $ systemctl restart atomic-openshift-master
    Copy to Clipboard Toggle word wrap

4.3.3. 登录 OpenShift

流程

  1. 导航到 OpenShift Web 控制台,在这个示例中为 https://openshift.example.com:8443/console

    OpenShift 登录页面现在提供使用 htpasswd_authrh-sso 身份提供程序登录的选项?前者仍然可用,因为它存在于 /etc/origin/master/master-config.yaml 中。

  2. 选择 rh-sso,再使用之前在红帽单点登录中创建的 testuser 用户登录 OpenShift。

    在 OpenShift CLI 中添加项目之前,项目对 testuser 可见。这是在 OpenShift 中提供用户特权的唯一方法,因为它目前不接受外部角色映射。

  3. 要为 sso-app-demo 提供 testuser 视图 特权,请使用 OpenShift CLI:

    $ oc adm policy add-role-to-user view testuser -n sso-app-demo
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat