我部署了启用了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。