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 供应商都可用于启用团队同步,但设置可能会因您的供应商而异。
流程
使用以下信息更新
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-configuration
的GET
请求返回供应商的配置信息。此配置信息对于依赖方(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
- 可选。如果启用,非超级用户就可以设置团队同步。
- 重启 Red Hat Quay registry。
11.3.2. 为团队同步设置 Red Hat Quay 部署
- 使用您的 OIDC 供应商登录到 Red Hat Quay registry。
- 在 Red Hat Quay v2 UI 仪表板上,单击 Create Organization。
-
输入 和 Organization 名称,如
test-org
。 - 点机构的名称。
- 在导航窗格中,单击 Teams 和 membership。
-
点 Create new team 并输入名称,如
testteam
。 在 Create team 弹出窗口中:
- 可选。将此团队添加到存储库中。
-
通过在用户帐户名称中键入,添加团队成员(如
user1
)。 - 向这个团队添加一个机器人帐户。此页面提供创建机器人帐户的选项。
- 点击 Next。
- 在 Review and Finish 页面中,查看您提供的信息,然后点 Review 和 Finish。
- 要为 Red Hat Quay OIDC 部署启用团队同步,请点击 团队和成员资格 页面上的 Enable Directory Sync。
如果您的 OIDC 验证器是 Azure Entra ID,或者使用其他供应商,则会提示您输入组对象 ID。请注意弹出窗口中的信息:
警告请注意,当启用团队同步后,已经成为该团队一部分的用户成员资格将被撤销。OIDC 组将是单一数据源。这是一个不可逆的操作。Quay 中的团队用户成员资格将是只读的。
- 单击 Enable Sync。
返回 团队和成员资格 页面。请注意,这个团队的用户已被删除,并在重新登录后重新添加。在这个阶段,只有机器人帐户仍然是团队的一部分。
页面顶部的横幅确认同步了团队:
This team is synchronized with a group in OIDC and its user membership is therefore read-only.
点 Directory Synchronization Config Provider,显示您的部署与同步的 OIDC 组。
- 从 Red Hat Quay registry 注销,并继续验证步骤。
验证
使用以下验证过程,确保 user1
显示为团队成员。
- 重新登录您的 Red Hat Quay registry。
-
点 Organizations
test-org test-team Teams 和 memberships。 user1
现在显示为这个团队的团队成员。
验证
使用以下步骤通过 OIDC 供应商从组中删除 user1
,然后将其从 Red Hat Quay 上的团队中删除。
- 进入您的 OIDC 供应商管理控制台。
- 进入 OIDC 供应商的 Users 页面。此页面的名称因您的供应商而异。
-
单击与 Red Hat Quay 关联的用户的名称,如
user1
。 - 在配置的身份提供程序中,从组中删除该用户。
- 从用户中删除或取消分配的访问权限。
- 登录到您的 Red Hat Quay registry。
-
点 Organizations
test-org test-team Teams 和 memberships。 user1
已从此团队中删除。