第 11 章 为 Red Hat Quay 配置 OIDC
为 Red Hat Quay 配置 OpenID Connect (OIDC)可为您的部署提供一些好处。例如,OIDC 允许用户使用 OIDC 供应商中的现有凭证(如 Red Hat Single Sign-On、Google、Github、Microsoft 等)向 Red Hat Quay 进行身份验证。OIDC 的其他优点包括集中式用户管理、增强安全性和单点登录(SSO)。总体而言,OIDC 配置可以简化用户身份验证和管理,增强安全性,并为 Red Hat Quay 用户提供无缝的用户体验。
以下流程演示了如何在 Red Hat Quay 的独立部署中配置 Microsoft Entra ID,以及如何在基于 Red Hat Quay 的 Operator 部署中配置 Red Hat Single Sign-On。这些流程可根据您的部署类型进行交换。
按照这些步骤,无论您选择使用哪个身份提供程序,您都可以在 Red Hat Quay 中添加任何 OIDC 供应商。
11.1. 在 Red Hat Quay 的独立部署中配置 Microsoft Entra ID OIDC
通过将 Microsoft Entra ID 身份验证与 Red Hat Quay 集成,您的组织可以利用 Microsoft Entra ID 提供的集中式用户管理和安全功能。有些功能包括根据 Microsoft Entra ID 角色和权限管理用户对 Red Hat Quay 存储库的访问权限,以及启用多因素身份验证和其他 Microsoft Entra ID 提供的安全功能的功能。
Azure Active Directory (Microsoft Entra ID)身份验证的 Red Hat Quay 允许用户使用其 Microsoft Entra ID 凭证进行身份验证并访问 Red Hat Quay。
使用以下步骤通过直接更新 Red Hat Quay config.yaml
文件来配置 Microsoft Entra ID。
- 使用以下步骤,您可以在 Red Hat Quay 中添加任何 ODIC 供应商,无论要添加哪个身份提供程序。
-
如果您的系统有一个使用防火墙,或启用了代理,则必须将每个创建的 Oauth 应用程序的所有 Azure API 端点列入白名单。否则,会返回以下错误:
x509: certificate signed by unknown authority
。
使用以下引用并更新带有所需 OIDC 供应商凭证的
config.yaml
文件:AUTHENTICATION_TYPE: OIDC # ... AZURE_LOGIN_CONFIG: 1 CLIENT_ID: <client_id> 2 CLIENT_SECRET: <client_secret> 3 OIDC_SERVER: <oidc_server_address_> 4 SERVICE_NAME: Microsoft Entra ID 5 VERIFIED_EMAIL_CLAIM_NAME: <verified_email> 6 # ...
- 1
- 包含 OIDC 配置设置的父密钥。在本例中,使用的父键是
AZURE_LOGIN_CONFIG
,但字符串AZURE
可根据您的具体需求替换任意字符串,如ABC123
.However,以下字符串不接受:GOOGLE
,GITHUB
。这些字符串为相应的身份平台保留,需要在您使用的平台时遵循特定的config.yaml
条目。 - 2
- 在身份提供程序中注册的应用程序的客户端 ID。
- 3
- 在身份提供程序中注册的应用程序的客户端 secret。
- 4
- 用于身份验证的 OIDC 服务器的地址。在本例中,您必须使用
sts.windows.net
作为签发者标识符。使用https://login.microsoftonline.com
会导致以下错误:Could 没有为 AzureAD 创建供应商。error: oidc: issuer 与供应商返回的签发者不匹配,预期 "https://login.microsoftonline.com/73f2e714-xxxx-xxxx-xxxx-dffe1df8a5d5" got "https://sts.windows.net/73f2e714-xxxx-xxxx-xxxx-dffe1df8a5d5/"
。 - 5
- 被身份验证的服务的名称。
- 6
- 用于验证用户电子邮件地址的声明名称。
正确配置 Microsoft Entra ID 结果三次,使用以下格式重定向:
-
https://QUAY_HOSTNAME/oauth2/<name_of_service>/callback
-
https://QUAY_HOSTNAME/oauth2/<name_of_service>/callback/attach
-
https://QUAY_HOSTNAME/oauth2/<name_of_service>/callback/cli
-
- 重启 Red Hat Quay 部署。