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 and Finish。
- 要为 Red Hat Quay OIDC 部署启用团队同步,请点击 Teams 和 membership 页面上的 Enable Directory Sync。
如果您的 OIDC 验证器是 Azure Entra ID,或者使用不同的供应商,则会提示您输入组对象 ID。请注意弹出窗口中的消息:
警告请注意,在启用团队同步后,已经属于团队的用户成员资格将被撤销。OIDC 组将是单个数据源。这是一个不可逆的操作。Quay 中团队的用户成员资格将为只读。
- 单击 Enable Sync。
您将返回到 Teams 和 membership 页面。请注意,这个团队的用户已被删除,并在重新登录后重新添加。在这个阶段,只有机器人帐户仍然是团队的一部分。
页面顶部的横幅确认团队已同步:
This team is synchronized with a group in OIDC and its user membership is therefore read-only.
单击 Directory Synchronization Config scala,会显示您的部署与之同步的 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
已从这个团队中删除。