【发布时间】:2020-05-10 03:41:25
【问题描述】:
我正在尝试使用应用注册清单中的 acceptMappedClaims=true 调用受 Azure AD 保护的 Web Api。我正在使用 ConfidentialClientApplication 从控制台应用程序调用。以下是错误信息。
Microsoft.Identity.Client.MsalServiceException: 'AADSTS501461: AcceptMappedClaims 仅支持与应用程序 GUID 匹配的令牌受众或租户已验证域内的受众。要么更改资源标识符,要么使用特定于应用程序的签名密钥。
【问题讨论】:
-
我认为这个博客应该有助于解决这个问题securecloud.blog/category/aad/acceptmappedclaims
-
已通过在清单的 identifierUris 中使用经过验证的域(如 myapi.{yourverifieddomain})解决了该问题。我使用的是 api://0274....................... 这是公开 api 时的默认设置。
-
@Jelard ,您是否必须在某处注册 myapi.{yourverifieddomain} ?以及如何首先验证 {yourverifieddomain}?即使我更新了要验证的域,我也遇到了同样的问题。
-
@soler 在 Azure AD 的自定义域选项卡下,有一个状态是否已验证。
-
@JelardMacalino,感谢您的意见。我终于解决了。这对我有用。在“应用注册”>“品牌”下,您需要确保发布者域已“验证”。然后,在公开 API 下,确保应用程序 ID URI 设置为 https://{发布者域}。我注意到的一件事是,如果您的应用程序发布者域是 XXXXX.onmicrosoft.com,只需将应用程序 ID URI 设置为 XXXXX.onmicrosoft.com 似乎也可以。如果您已经设置了应用程序 ID URI,您只需将其删除然后重新设置即可。
标签: azure-active-directory msal