Microsoft 身份平台和 OAuth 2.0 授权代码流程 (PKCE) - 错误“AADSTS700025”

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

尝试按照微软的说明获取访问令牌。但是我收到错误,因为没有解决方案的答案。 我做错了什么,这对我的情况意味着什么? enter image description here 要求: https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize *auth_code:client_id&response_type&redirect_uri&response_mode&范围&code_challenge&code_challenge_method。

https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token *获取访问令牌:client_id&范围&代码&redirect_uri&grant_type&code_verifier&client_secret。(内容类型:application / x-www-form-urlencoded) 在这两种情况下,redirect_uri == 是相同的。

在第一个请求中,可以获取 auth_code,但是当我尝试使用此 auth_code 获取访问令牌时,我得到:错误“AADSTS700025”客户端是公共的,因此不应显示“client_assertion”和“client_secret”。 但我使用 client_secret 而不是 client_assertion_type 和 client_assertion。 按照微软的说明进行操作...

oauth-2.0 azure-active-directory authorization
2个回答
1
投票

重现您所面临的相同类型的问题(因为我使用AuthCode来生成访问令牌)

解决方案--

Aussming 您正在使用

grant_type
client_credentials
来使用以下 API 获取访问令牌:

https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/token

要获得

access token
,您不需要
AuthCode
,您只需通过客户凭据即可获得它。请按照我在 Body 中的操作进行配置。


0
投票

我猜测这是一个“SPA”类型“平台”(在您的 AAD/Azure AD 应用程序注册中添加),或者其他“公共客户端”之一?

它可能告诉您服务器不想处理/信任正在处理/了解(潜在/更可能受影响)秘密(例如“client_secret”和“client_assertion”值)的“public”客户端。 例如如果这是“私人/机密客户端”,您可以添加(并配置)“Web”类型“平台” - 因为它被信任可以处理机密,并且理论上该错误将不再发生。

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