【问题标题】:What is the easiest way to get the AAD application ID of MSI enabled app service获取启用 MSI 的应用程序服务的 AAD 应用程序 ID 的最简单方法是什么
【发布时间】:2019-07-10 10:21:49
【问题描述】:

我部署了启用 MSI 的应用服务(具有系统分配的身份)。此应用服务将使用 MSI 检索对 AAD 保护的 Web API 的访问令牌。 Web API 会从 token 中检索 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 而无需检索令牌。

【问题讨论】:

  • 为什么需要手动检查代码中的app_id?您应该将您的 MSI 分配给 WebApi,然后您确定只有受信任的消费者可以调用您的 webapi
  • 谢谢 Thomas,有什么文档可以参考吗?
  • 我的回复有用吗?
  • 谢谢南希,你的方法有效!

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


【解决方案1】:

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

您也可以通过应用 ID 在企业应用中搜索应用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    相关资源
    最近更新 更多