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