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

使用 Azure 门户为 Azure Red Hat OpenShift 群集配置Microsoft Entra 身份验证

本文使用 Azure 门户为 Azure Red Hat OpenShift 群集设置Microsoft Entra 身份验证。 创建用于创建 OAuth 回调 URL、创建应用程序注册和客户端机密的命令中使用的变量,并使用 Microsoft Entra 身份验证登录到群集的 Web 控制台。

先决条件

  • 现有的 Azure Red Hat OpenShift 群集。 如果没有群集,请参阅 创建新群集
  • 计算机上安装了 Azure CLI 2.30.0 或更高版本。 使用 az --version 查找已安装的 Azure CLI 版本。 如果需要进行安装或升级,请参阅安装 Azure CLI。 还可以将 Azure Cloud Shell 与 Bash 配合使用来运行命令。

创建变量

设置资源组和群集名称的变量。 替换为 <resourceGroupName> 资源组的名称和 <aroClusterName> 群集的名称。

resourceGroup=<resourceGroupName>
aroCluster=<aroClusterName>

创建群集的 OAuth 回调 URL 并记下它,因为稍后会使用它。 entraID回调 URL 中的OAuth节必须与稍后设置的OAuth标识提供者名称匹配。

domain=$(az aro show --resource-group $resourceGroup --name $aroCluster --query clusterProfile.domain --output tsv)
location=$(az aro show --resource-group $resourceGroup --name $aroCluster --query location --output tsv)
echo "OAuth callback URL: https://oauth-openshift.apps.$domain.$location.aroapp.io/oauth2callback/entraID"

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

  1. 登录到 Azure 门户

  2. 使用搜索字段查找 Microsoft Entra ID 并从列表中选择它。

  3. 选择“应用注册”“新建注册”。

  4. 完成 注册应用程序 表单。

    • 名称:输入应用程序名称,例如 aro-entraid-auth
    • 支持的帐户类型:选择“仅限此组织目录中的帐户”。
    • 重定向 URI:选择 Web 并输入 OAuth 回调 URL。
  5. 选择“注册”。

    创建应用程序后,你将被带到其显示 aro-entraid-auth的应用注册页。

  6. 选择“证书和机密”,然后选择“新建客户端机密”。

    • 说明:输入客户端机密的说明,如 aro-client-secret
    • 过期:接受默认的 180 天或选择其他过期值。
  7. 选择 并添加

  8. 复制 并将其存储在安全位置。 稍后需要它,不能再次检索该值。

  9. 选择 “概述 ”并复制 应用程序(客户端)ID目录(租户)ID, 因为稍后会使用它。

配置可选声明

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

您可以使用可选声明来:

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

可以将 OpenShift 配置为使用 email 声明并回退以 upn 设置首选用户名,方法是添加 upn Microsoft Entra ID 返回的 ID 令牌的一部分。

转到 令牌配置 ,然后选择 “添加可选声明”。 选择 ID ,然后检查 电子邮件upn 声明。

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

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

有关详细信息,请参阅 向应用分配用户和组

配置 OpenShift OpenID 身份验证

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

az aro list-credentials \
  --name $aroCluster \
  --resource-group $resourceGroup

输出显示群集的用户名和密码。

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

可以通过运行以下命令找到群集控制台 URL。

 az aro show \
  --name $aroCluster \
  --resource-group $resourceGroup \
  --query "consoleProfile.url" --output tsv

输出如以下示例所示。

https://console-openshift-console.apps.<domain>.<region>.aroapp.io/
  1. 在浏览器中启动控制台 URL,然后使用 kubeadmin 凭据登录。

  2. 转到 “管理>群集设置” ,然后选择“ 配置 ”选项卡。

  3. 向下滚动并选择 OAuth

  4. 向下滚动到 “标识提供者>添加 ”并选择 “OpenID Connect”。

    • 名称:输入 entraID
    • 客户端 ID:输入应用注册应用程序(客户端)ID。
    • 客户端密码:输入应用的客户端密码。
    • 颁发者 URL:输入 https://login.microsoftonline.com/<tenantId> 并替换为 <tenantId> 租户 ID。
  5. 向下滚动到 “声明 ”部分,更新 首选用户名 以使用 值上升

  6. 选择 并添加

使用 Microsoft Entra ID 验证登录

注销 OpenShift Web 控制台并再次登录,并看到使用 entraID 登录的新选项。 可能需要等待几分钟,选项才可用。

显示用于登录到 Azure Red Hat OpenShift 群集的Microsoft Entra ID 选项的屏幕截图。

如果收到错误 AADSTS50011: The redirect URI https://oauth-openshift.apps.<domain>.<regions>.aroapp.io/oauth2callback/<identity> specified in the request doesn't match the redirect URIs configured,可以按照 重定向 URIOpenID 身份验证AADSTS50011的故障排除指南进行作。