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 控制台。
-
在 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 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
-
- 点 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
。但是,以下字符串不被接受: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
。
- 在启用了 Red Hat Single Sign-On 的 OpenShift Container Platform 部署中重启 Red Hat Quay。