11.2. 为 Red Hat Quay 配置 Red Hat Single Sign-On

根据 Keycloak 项目,Red Hat Single Sign-On (RH-SSO)是一个红帽提供的开源身份和访问管理(IAM)解决方案。RH-SSO 允许组织在其系统和应用程序之间管理用户身份、安全应用程序和强制实施访问控制策略。它还提供了一个统一的身份验证和授权框架,允许用户一次登录并获得对多个应用和资源的访问权限,而无需重新验证。如需更多信息,请参阅 Red Hat Single Sign-On

通过在 Red Hat Quay 上配置 Red Hat Single Sign-On,您可以在 Red Hat Quay 和其他 OpenShift Container Platform 等应用平台之间创建无缝身份验证集成。

11.2.1. 配置 Red Hat Single Sign-On Operator,以用于 Red Hat Quay Operator

使用以下步骤为 OpenShift Container Platform 上的 Red Hat Quay Operator 配置 Red Hat Single Sign-On。

先决条件

流程

  1. 导航到 Red Hat Single Sign-On Admin Console

    1. 在 OpenShift Container Platform Web 控制台中 导航至 NetworkRoute
    2. 从下拉列表中选择 Red Hat Single Sign-On 项目。
    3. Routes 表中查找 Red Hat Single Sign-On Admin 控制台
  2. 选择您要用来配置 Red Hat Quay 的 Realm。
  3. 单击导航面板的 Configure 部分下的 Clients,然后单击 Create 按钮为 Red Hat Quay 添加新的 OIDC。
  4. 输入以下信息。

    • 客户端 ID: quay-enterprise
    • 客户端协议: openid-connect
    • 根 URL: https://<quay_endpoint>/
  5. 点击 Save。这会导致重定向到 Clients 设置面板。
  6. 导航到 Access Type 并选择 Confidential
  7. 导航到 Valid Redirect URI。您必须提供三个重定向 URI。该值应该是 Red Hat Quay registry 的完全限定域名,附加了 /oauth2/redhatsso/callback。例如:

    • https://<quay_endpoint>/oauth2/redhatsso/callback
    • https://<quay_endpoint>/oauth2/redhatsso/callback/attach
    • https://<quay_endpoint>/oauth2/redhatsso/callback/cli
  8. Save 并进入新的 Credentials 设置。
  9. 复制 Secret 的值。

11.2.1.1. 将 Red Hat Quay Operator 配置为使用 Red Hat Single Sign-On

使用以下步骤使用 Red Hat Quay Operator 配置 Red Hat Single Sign-On。

先决条件

流程

  1. 进入 Operators → Installed Operators → Red Hat Quay → Quay RegistryConfig Bundle Secret 来编辑 Red Hat Quay config.yaml 文件。然后,点击 ActionsEdit Secret。另外,您可以在本地更新 config.yaml 文件。
  2. 在 OpenShift Container Platform config.yaml 文件中的 Red Hat Quay 中添加以下信息:

    # ...
    RHSSO_LOGIN_CONFIG: 1
      CLIENT_ID: <client_id> 2
      CLIENT_SECRET: <client_secret> 3
      OIDC_SERVER: <oidc_server_url> 4
      SERVICE_NAME: <service_name> 5
      SERVICE_ICON: <service_icon> 6
      VERIFIED_EMAIL_CLAIM_NAME: <example_email_address> 7
      PREFERRED_USERNAME_CLAIM_NAME: <preferred_username> 8
      LOGIN_SCOPES: 9
        - 'openid'
    # ...
    1
    包含 OIDC 配置设置的父键。在本例中,所用的父密钥是 AZURE_LOGIN_CONFIG,但字符串 AZURE 可以根据您的特定需求替换任意任意字符串,如 ABC123。但是,以下字符串不被接受: GOOGLE,GITHUB。这些字符串为其对应的身份平台保留,且需要在您使用的平台时进行特定的 config.yaml 条目。
    2
    使用身份提供程序注册的应用程序的客户端 ID,如 quay-enterprise
    3
    quay-enterprise OIDC 客户端设置的 Credentials 选项卡中的 Client Secret。
    4
    Red Hat Single Sign-On 实例的完全限定域名(FQDN),附加 /auth/realms/ 和 Realm 名称。您必须在末尾包括正斜杠,例如 https://sso-redhat.example.com//auth/realms/<keycloak_realm_name>/
    5
    在 Red Hat Quay 登录页面中显示的名称,例如 Red Hat Single Sign On
    6
    更改登录屏幕上的图标。例如: /static/img/RedHat.svg
    7
    用于验证用户电子邮件地址的声明名称。
    8
    用于验证用户电子邮件地址的声明名称。
    9
    执行登录流时发送到 OIDC 供应商的范围,例如 openid
  3. 在启用了 Red Hat Single Sign-On 的 OpenShift Container Platform 部署中重启 Red Hat Quay。