第 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,以及如何在基于 Operator 的 Red Hat Quay 部署上配置 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 提供的多因素身份验证和其他安全功能的功能。
Red Hat Quay 的 Azure Active Directory (Microsoft Entra ID)身份验证允许用户使用 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
。
使用以下引用并更新
config.yaml
文件,使用您需要的 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
。但是,以下字符串不被接受:GOOGLE
,GITHUB
。这些字符串为其对应的身份平台保留,且需要在您使用的平台时进行特定的config.yaml
条目。 - 2
- 与身份提供程序一起注册的应用程序的客户端 ID。
- 3
- 与身份提供程序一起注册的应用的客户端机密。
- 4
- 用于身份验证的 OIDC 服务器地址。在本例中,您必须使用
sts.windows.net
作为签发者标识符。使用https://login.microsoftonline.com
会导致以下错误:Could not create provider for 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 部署。