0

我部署了启用 MSI 的应用服务(具有系统分配的标识)。此应用服务将使用 MSI 检索对 AAD 保护的 Web API 的访问令牌。Web API 将从令牌中检索 appid 并根据预先配置的白名单检查 appid,如果 appid 不在白名单中,则拒绝访问。

因此,要允许启用 MSI 的应用服务访问 Web API,我需要知道 MSI 应用服务的应用程序 ID 并将其添加到白名单中。

我知道我可以在我的应用服务调试控制台中运行以下 powershell 脚本来检索令牌并通过解码令牌来获取 appid。

$apiVersion = "2017-09-01"
$resourceURI = "<resource uri of AAD protected Web API>"
$tokenAuthURI = $env:MSI_ENDPOINT + "?resource=$resourceURI&api-version=$apiVersion"
$tokenResponse = Invoke-RestMethod -Method Get -Headers @{"Secret"="$env:MSI_SECRET"} -Uri $tokenAuthURI
$accessToken = $tokenResponse.access_token 

但我想知道是否有更简单的方法可以在不检索令牌的情况下获取 MSI 应用服务的 appid。

4

1 回答 1

0

您可以使用(Get-AzADServicePrincipal -ObjectId xxxx).ApplicationId,当您在 Web 应用程序门户上查看对象 ID 时,很容易找到它。

在此处输入图像描述

在此处输入图像描述

您还可以通过应用程序 ID 在企业应用程序中搜索应用程序。在此处输入图像描述

于 2019-07-10T10:30:08.233 回答