11.2. 为 Red Hat Quay 配置 Azure AD OIDC

通过将 Azure AD 身份验证与 Red Hat Quay 集成,您的组织可以利用 Azure AD 提供的集中用户管理和安全功能。有些功能包括根据 Azure AD 角色和权限管理用户对 Red Hat Quay 存储库的访问权限,以及启用 Azure AD 提供的多因素身份验证和其他安全功能的功能。

Red Hat Quay 的 Azure Active Directory (Azure AD)身份验证允许用户使用其 Azure AD 凭证进行身份验证并访问 Red Hat Quay。

11.2.1. 使用 Red Hat Quay 配置工具配置 Azure AD

以下流程使用配置工具为 Red Hat Quay 配置 Azure AD。

流程

  1. 输入 Red Hat Quay config editor 工具。

    1. 如果您正在运行独立的 Red Hat Quay 部署,您可以输入以下命令:

      $ sudo podman run --rm -it --name quay_config -p 80:8080 -p 443:8443 registry.redhat.io/quay/quay-rhel8:v3.10.3 config secret

      使用您的浏览器导航到配置工具的用户界面并登录。

    2. 如果您在 Red Hat Quay Operator 中,进入 OperatorsInstalled Operators。点 Red Hat QuayQuay Registry。然后,单击 Red Hat Quay registry 的名称,以及通过 Config Editor Endpoint 列出的 URL。
  2. 向下滚动到 External Authorization (OAuth) 部分。
  3. Add OIDC Provider
  4. 出现提示时,输入 ODIC 供应商的 ID。

    注意

    您的 OIDC 服务器必须以 / 结尾。

  5. 添加 ODIC 供应商后,Red Hat Quay 会列出必须在 Azure 上注册的三个回调 URL。这些地址允许 Azure 在验证后直接回退到 Red Hat Quay。例如:

    • 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
  6. 设置完所有必填字段后,单击 Validate Configuration Changes 来验证您的设置。如果报告任何错误,请继续编辑您的配置,直到设置有效,Red Hat Quay 可以连接到您的数据库和 Redis 服务器。

11.2.2. 通过更新 Red Hat Quay config.yaml 文件配置 Azure AD

使用以下步骤通过直接更新 Red Hat Quay config.yaml 文件来配置 Azure AD。

流程
  • 使用以下步骤,您可以在 Red Hat Quay 中添加任何 ODIC 供应商,而不考虑正在添加哪些身份提供程序。
  • 如果您的系统启用了防火墙,或者启用了代理,则必须将创建的每个 Oauth 应用程序的所有 Azure API 端点列入白名单。否则,会返回以下错误: x509: certificate signed by unknown authority
  1. 在 Red Hat Quay config.yaml 文件中添加以下信息:

    AZURE_LOGIN_CONFIG: 1
        CLIENT_ID: <client_id> 2
        CLIENT_SECRET: <client_secret> 3
        OIDC_SERVER: <oidc_server_address_> 4
        SERVICE_NAME: Azure AD 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
    用于验证用户电子邮件地址的声明名称。
  2. 正确配置 Azure AD 结果使用以下格式三个重定向:

    • 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
  3. 重启 Red Hat Quay 部署。