如何为Azure AD v1.0端点生成的令牌设置正确的aud字段
解决Azure AD令牌aud字段异常的思路
修正请求中的资源参数
你拿到的00000002-0000-0010-e000-000000000233是Azure AD Graph的内置ID,说明你的令牌请求里resource参数指向了这个内置资源。直接把resource的值替换成你的客户端ID,再重新请求即可。切换到新版认证端点
https://sts.windows.net/是旧版ADAL框架用的端点,推荐改用MSAL的https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token端点。新版端点用scope参数替代resource,设置scope为{你的客户端ID}/.default,返回的令牌aud就会自动匹配你的客户端ID。检查应用注册配置
登录Azure门户的应用注册页面,确认你的应用没有默认绑定Azure AD Graph的权限。如果之前添加过相关API权限,确保已经移除,并且确保权限配置指向你自己的应用资源。核对请求参数的准确性
不管用哪种认证流(授权码流、客户端凭证流等),都要检查所有请求参数:- 客户端凭证流:确认
client_id、client_secret、grant_type=client_credentials和resource/scope参数值完全正确,没有拼写错误。 - 授权码流:除了上述参数,还要确保
code和redirect_uri与授权请求时的配置一致。
- 客户端凭证流:确认
内容的提问来源于stack exchange,提问作者Mahesh
相关产品推荐
相关产品推荐

