你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

为 Azure Red Hat OpenShift 4 群集配置 Microsoft Entra 身份验证(门户)

如果选择在本地安装并使用 CLI,本教程要求运行 Azure CLI 2.6.0 或更高版本。 运行 az --version 即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI

开始之前

构造群集的 OAuth 回叫 URL 并记下它。 请确保将 aro-rg 替换为资源组的名称,并将 aro-cluste 替换为群集的名称

注意

OAuth 回叫 URL 中的 AAD 部分应与稍后设置的 OAuth 标识提供程序名称匹配。

domain=$(az aro show -g aro-rg -n aro-cluster --query clusterProfile.domain -o tsv)
location=$(az aro show -g aro-rg -n aro-cluster --query location -o tsv)
echo "OAuth callback URL: https://oauth-openshift.apps.$domain.$location.aroapp.io/oauth2callback/AAD"

创建用于身份验证的 Microsoft Entra 应用程序

登录到 Azure 门户,导航到“应用注册”边栏选项卡,然后单击“新建注册”以创建新的应用程序

提供应用程序的名称(例如 aro-azuread-auth),并使用之前检索到的 OAUTH 回叫 URL 的值填充 重定向 URI

New application registration

导航到“证书和机密”,单击“新建客户端密码”,并填写详细信息。 记下密钥值,因为你将在后面的阶段中使用它。 你将无法再次检索它。

Create a secret

导航到“概述”,记下应用程序(客户端)ID 和目录(租户)ID。 你将在以后的阶段中需要它们。

Retrieve Application (client) and Directory (tenant) IDs

配置可选声明

应用程序开发人员可以在其 Microsoft Entra 应用程序中使用 可选声明 来指定要在发送到其应用程序的令牌中的声明。

使用可选声明可以:

  • 选择要包含在应用程序令牌中的附加声明。
  • 更改 Microsoft Entra ID 在令牌中返回的某些声明的行为。
  • 添加和访问应用程序的自定义声明。

我们将 OpenShift 配置为使用 email 声明并回退以 upn 通过添加 upn Microsoft Entra ID 返回的 ID 令牌的一部分来设置首选用户名。

导航到“令牌配置”,单击“添加可选声明”。 选择“ID”,然后查看电子邮件和 upn 声明

Screenshot that shows the email and upn claims that were added.

将用户和组分配到群集(可选)

默认情况下,在 Microsoft Entra 租户中注册的应用程序可供该租户中成功完成身份验证的所有用户使用。 Microsoft Entra ID 允许租户管理员和开发人员将应用限制为租户中的一组特定用户或安全组。

按照 Microsoft Entra 文档中的说明将 用户和组分配到应用

配置 OpenShift OpenID 身份验证

检索 kubeadmin 凭据。 请运行以下命令,找到 kubeadmin 用户的密码。

az aro list-credentials \
  --name aro-cluster \
  --resource-group aro-rg

以下示例输出表明密码将位于 kubeadminPassword 中。

{
  "kubeadminPassword": "<generated password>",
  "kubeadminUsername": "kubeadmin"
}

可以通过运行以下命令查找群集控制台 URL,它类似于 https://console-openshift-console.apps.<random>.<region>.aroapp.io/

 az aro show \
    --name aro-cluster \
    --resource-group aro-rg \
    --query "consoleProfile.url" -o tsv

在浏览器中启动控制台 URL,使用 kubeadmin 凭据登录。

导航到管理员管理,单击“群集设置”,然后选择“配置”选项卡。滚动以选择 OAuth

向下滚动以在“标识提供者”下选择“添加”,然后选择“OpenID Connect”Select OpenID Connect from the Identity Providers dropdown

填写名称作为 Microsoft Entra ID客户端 ID 作为应用程序 ID客户端密码颁发者 URL 的格式设置为:https://login.microsoftonline.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0。 将占位符替换为之前检索到的租户 ID。

Fill in OAuth details

向下滚动到“声明”部分,更新“首选用户名”以使用 upn 声明的值

Fill in claims details

通过 Microsoft Entra ID 验证登录

如果现在注销 OpenShift Web 控制台并尝试再次登录,你将看到一个新选项,用于使用 Microsoft Entra ID 登录。 你可能需要等待几分钟。

Login screen with Microsoft Entra option

注意

如果遇到“AADSTS50011:请求中指定的重定向 URI 与配置的重定向 URI https://oauth-openshift.apps.xxxxxxxxxx.xxxxxxx.aroapp.io/oauth2callback/xxxx 不匹配”之类的错误,可以在重定向 URI 未正确设置时遵循故障排除指南 Azure AD (OIDC) 登录失败,以解决该问题。