11.3. Red Hat Quay OIDC 部署的团队同步

管理员可以利用支持组或团队同步的 OpenID Connect (OIDC)身份提供程序,将存储库权限应用到 Red Hat Quay 中的一组用户。这允许管理员避免在 Red Hat Quay 和 OIDC 组间手动创建和同步组定义。

11.3.1. 为 Red Hat Quay OIDC 部署启用同步

当 Red Hat Quay 部署使用 OIDC 身份验证程序时,请使用以下步骤启用团队同步。

重要

以下流程不使用特定的 OIDC 供应商。相反,它概述了如何在 OIDC 供应商和 Red Hat Quay 之间处理团队同步的最佳方法。任何 OIDC 供应商都可以用来启用团队同步,但设置可能会因您的供应商而异。

流程

  1. 使用以下信息更新 config.yaml 文件:

    AUTHENTICATION_TYPE: OIDC
    # ...
    OIDC_LOGIN_CONFIG:
      CLIENT_ID: 1
      CLIENT_SECRET: 2
      OIDC_SERVER: 3
      SERVICE_NAME: 4
      PREFERRED_GROUP_CLAIM_NAME: 5
      LOGIN_SCOPES: [ 'openid', '<example_scope>' ] 6
      OIDC_DISABLE_USER_ENDPOINT: false 7
    # ...
    FEATURE_TEAM_SYNCING: true 8
    FEATURE_NONSUPERUSER_TEAM_SYNCING_SETUP: true 9
    FEATURE_UI_V2: true
    # ...
    1
    必需。此 Red Hat Quay 实例注册的 OIDC 客户端 ID。
    2
    必需。此 Red Hat Quay 实例注册的 OIDC 客户端 secret。
    3
    必需。用于身份验证的 OIDC 服务器地址。这个 URL 应该是,对 < OIDC_SERVER>/.well-known/openid-configurationGET 请求会返回供应商的配置信息。此配置信息对于依赖方(RP)与 OpenID Connect 供应商安全交互非常重要,并获取身份验证和授权流程的必要详情。
    4
    必需。正在验证的服务的名称。
    5
    必需。OIDC 令牌有效负载中的密钥名称,其中包含有关用户组成员资格的信息。此字段允许身份验证系统从 OIDC 令牌中提取组成员资格信息,以便它可用于 Red Hat Quay。
    6
    必需。添加 Red Hat Quay 用来与 OIDC 供应商通信的其他范围。必须包括 'openid'。其他范围是可选的。
    7
    是否允许或禁用 /userinfo 端点。如果使用 Azure Entra ID,请将此字段设置为 true。默认值为 false
    8
    必需。是否允许团队成员资格从身份验证引擎中的后备组中同步。
    9
    可选。如果启用,非超级用户可以设置团队同步。
  2. 重启 Red Hat Quay registry。

11.3.2. 为团队同步设置 Red Hat Quay 部署

  1. 通过 OIDC 供应商登录到您的 Red Hat Quay registry。
  2. 在 Red Hat Quay v2 UI 仪表板中,单击 Create Organization
  3. 输入 和 Organization 名称,如 test-org
  4. 点机构的名称。
  5. 在导航窗格中,点 Teams 和 membership
  6. Create new team 并输入名称,例如 testteam
  7. Create team 弹出窗口中:

    1. 可选。将此团队添加到存储库。
    2. 通过在用户帐户名称中输入,添加团队成员,如 user1
    3. 将机器人帐户添加到此团队。此页面提供了创建机器人帐户的选项。
  8. 点击 Next
  9. Review and Finish 页面中,查看您提供的信息,并点击 Review and Finish
  10. 要为 Red Hat Quay OIDC 部署启用团队同步,请点击 Teams 和 membership 页面上的 Enable Directory Sync
  11. 如果您的 OIDC 验证器是 Azure Entra ID,或者使用不同的供应商,则会提示您输入组对象 ID。请注意弹出窗口中的消息:

    警告

    请注意,在启用团队同步后,已经属于团队的用户成员资格将被撤销。OIDC 组将是单个数据源。这是一个不可逆的操作。Quay 中团队的用户成员资格将为只读。

  12. 单击 Enable Sync
  13. 您将返回到 Teams 和 membership 页面。请注意,这个团队的用户已被删除,并在重新登录后重新添加。在这个阶段,只有机器人帐户仍然是团队的一部分。

    页面顶部的横幅确认团队已同步:

    This team is synchronized with a group in OIDC and its user membership is therefore read-only.

    单击 Directory Synchronization Config scala,会显示您的部署与之同步的 OIDC 组。

  14. 从 Red Hat Quay registry 注销,再继续验证步骤。

验证

使用以下验证过程来确保 user1 显示为团队成员。

  1. 重新登录您的 Red Hat Quay registry。
  2. Organizationstest-orgtest-team Teams 和 membershipsuser1 现在作为这个团队的团队成员显示。

验证

使用以下步骤通过 OIDC 供应商从组中删除 user1,然后将其从 Red Hat Quay 上的团队中删除。

  1. 进入您的 OIDC 供应商管理控制台。
  2. 进入 OIDC 供应商的 Users 页面。本页的名称因您的供应商而异。
  3. 单击与 Red Hat Quay 关联的用户名,如 user1
  4. 从配置的身份提供程序中的组中删除该用户。
  5. 从用户删除或取消分配访问权限。
  6. 登录到您的 Red Hat Quay registry。
  7. Organizationstest-orgtest-team Teams 和 membershipsuser1 已从这个团队中删除。