尝试检索 Oauth access_token 时出现 AADSTS50146 错误

use*_*500 7 client credentials oauth-2.0 azure-active-directory

正在寻找有关此错误的 AzureAD 帮助 -

"error": "invalid_request", "error_description": "AADSTS50146: 该应用程序需要配置应用程序特定的签名密钥。\r\n跟踪 ID: 6fb978c1-0d74-478c-991c-3ad48ca65f00\r\n相关 ID : 81c05804-175c-456b-8d45-d5365818b599\r\n时间戳: 2019-12-17 19:28:29Z",

我在一个 AzureAD 环境中收到上述错误。当尝试执行 OAuth2.0 令牌请求时。我有另一个测试 AzureAD,其中相同的请求工作正常。

使用 clientId、clientSecret 和 grant_type=client_credentials对https://login.microsoftonline.com/ {tenantId}/oauth2/v2.0/token进行 POST 。

通过谷歌找到了这个 - https://github.com/MicrosoftDocs/azure-docs/issues/5394,但想了解如何在 AzureAD 中配置“范围”参数。

Mar*_*olt 11

您可能有其他/映射的索赔。

如果您不想创建特定于应用程序的签名密钥,则需要"acceptMappedClaims": true在清单中进行设置。设置"accessTokenAcceptedVersion": 2也有帮助。

确保检查客户端和目标 API(资源服务器/受众)的清单。

  • 当请求具有映射声明的访问令牌时,acceptMappedClaims目标 API 的 需要为true
  • 当请求具有映射声明的 id 令牌时,acceptMappedClaims客户端的 需要是true

当请求 id 令牌和访问令牌(这是常见的)并且两个令牌都包含附加声明时,两个应用程序注册都需要进行acceptMappedClaims设置。

注意:根据文档acceptMappedClaims,仅在单租户应用程序上使用。对于多租户应用程序,您需要使用特定于应用程序的签名密钥。


Ton*_* Ju -1

Azure AD 门户中的 api 权限是范围的值。

在此输入图像描述

您还可以公开 API,然后添加自己的范围。

在此输入图像描述