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

问题描述 投票:0回答:3

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

“错误”:“无效请求”,“错误描述”:“AADSTS50146:这个 应用程序需要配置特定于应用程序的 签名密钥。 跟踪 ID: 6fb978c1-0d74-478c-991c-3ad48ca65f00 关联 ID: 81c05804-175c-456b-8d45-d5365818b599 时间戳: 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中配置“范围”参数。

oauth-2.0 azure-active-directory client credentials
3个回答
9
投票

您可能有其他/映射的声明。

如果您不想创建特定于应用程序的签名密钥, 您需要在清单中设置

"acceptMappedClaims": true
。 设置
"accessTokenAcceptedVersion": 2
也有帮助。

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

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

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

acceptMappedClaims


0
投票

我认为你两者都需要

"acceptMappedClaims": true,

"allowPublicClient": true,

在您应用程序的清单中。


-1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.