获取启用了MSI的应用程序服务的AAD应用程序ID的最简单方法是什么

时间:2019-07-10 10:21:49

标签: azure azure-web-app-service azure-managed-identity

我部署了启用了MSI(具有系统分配的身份)的App服务。此应用程序服务将使用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。

1 个答案:

答案 0 :(得分:0)

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

enter image description here

enter image description here

您还可以通过应用程序ID在企业应用程序中搜索应用程序。 enter image description here