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。
先决条件
- 您已设置了 Red Hat Single Sign-On Operator。如需更多信息,请参阅 Red Hat Single Sign-On Operator。
- 您已在 OpenShift Container Platform 部署和 Red Hat Single Sign-On 上为 Red Hat Quay 配置 SSL/TLS。
- 您已生成了一个证书颁发机构(CA),并将其上传到 Red Hat Single Sign-On Operator 和 Red Hat Quay 配置。
流程
导航到 Red Hat Single Sign-On Admin Console。
-
在 OpenShift Container Platform Web 控制台中,导航到 Network
Route。 - 从下拉列表中选择 Red Hat Single Sign-On 项目。
- 在 Routes 表中查找 Red Hat Single Sign-On Admin Console。
-
在 OpenShift Container Platform Web 控制台中,导航到 Network
- 选择用于配置 Red Hat Quay 的 Realm。
- 点导航面板的 Configure 部分下的 Clients,然后点 Create 按钮为 Red Hat Quay 添加新的 OIDC。
输入以下信息。
-
客户端 ID:
quay-enterprise
-
客户端协议:
openid-connect
-
根 URL:
https://<quay_endpoint>/
-
客户端 ID:
- 点击 Save。这会导致重定向到 Clients 设置面板。
- 导航到 Access Type,再选择 Confidential。
导航到 Valid Redirect URIs。您必须提供三个重定向 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
-
- 单击 Save,再导航到新的 Credentials 设置。
- 复制 Secret 的值。
11.2.1.1. 将 Red Hat Quay Operator 配置为使用 Red Hat Single Sign-On
使用以下步骤使用 Red Hat Quay Operator 配置 Red Hat Single Sign-On。
先决条件
- 您已设置了 Red Hat Single Sign-On Operator。如需更多信息,请参阅 Red Hat Single Sign-On Operator。
- 您已在 OpenShift Container Platform 部署和 Red Hat Single Sign-On 上为 Red Hat Quay 配置 SSL/TLS。
- 您已生成了一个证书颁发机构(CA),并将其上传到 Red Hat Single Sign-On Operator 和 Red Hat Quay 配置。
流程
-
进入 Operators
Installed Operators Red Hat Quay Quay Registry Config Bundle Secret 来编辑 Red Hat Quay config.yaml
文件。然后,点击 ActionsEdit Secret。另外,您可以在本地更新 config.yaml
文件。 在 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
.However,以下字符串不接受:GOOGLE
,GITHUB
。这些字符串为相应的身份平台保留,需要在您使用的平台时遵循特定的config.yaml
条目。 - 2
- 要注册到身份提供程序的应用程序的客户端 ID,如
quay-enterprise
。 - 3
quay-enterprise
OIDC 客户端设置的 Credentials 选项卡中的客户端 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
。
- 在启用了 Red Hat Single Sign-On 后重启 Red Hat Quay on OpenShift Container Platform 部署。