graph.microsoft.com突发报错及refresh_token获取access_token异常的技术支持咨询
问题2:解决使用refresh_token获取access_token时的AADSTS70002/AADSTS50012错误
你遇到的错误提示AADSTS50012: No client secret is provisioned in the store,核心原因是你的Azure AD应用注册没有配置有效的客户端密钥(或者密钥已过期、被删除),导致身份验证失败。以下是具体的排查和修复步骤:
检查Azure AD应用的客户端密钥状态
- 登录Azure门户,找到你的应用注册,进入「证书和机密」页面。
- 查看是否存在有效的客户端密钥:如果密钥已过期、被删除,或者从未创建过,就会触发这个错误。
- 若没有可用密钥,点击「新建客户端机密」,设置合适的过期时间,保存后立即复制生成的密钥值(注意:这个值只会显示一次,一定要妥善保存)。
确认请求中的客户端密钥正确无误
- 检查你的代码里,调用token端点时传入的
client_secret参数,是否和Azure门户中生成的密钥值完全一致,注意不要有多余空格或拼写错误。 - 如果你的应用使用证书认证,确认证书已正确上传到应用注册,且代码中加载证书的逻辑没有问题。
- 检查你的代码里,调用token端点时传入的
验证应用注册的基础配置
- 确保应用注册的「身份验证」设置中,允许使用refresh_token的授权流程(比如授权码流),重定向URI等配置也符合要求。
- 如果是多租户应用,确认租户配置和权限范围没有冲突。
附你提供的错误响应供参考:
refreshAccessToken error response: { "error": "invalid_client", "error_description": "AADSTS70002: Error validating credentials. AADSTS50012: No client secret is provisioned in the store.", "error_codes": [70002, 50012], "timestamp": "2018-04-06 08:39:48Z", "trace_id": "40f2883e-68c2-4a15-87e9-8544c3430c00", "correlation_id": "a3536a53-b5ad-4494-ba43-a039c6..."
内容的提问来源于stack exchange,提问作者Bruce Greer
相关产品推荐
相关产品推荐

