You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman调用Azure AD Auth code flow未返回ID令牌与刷新令牌问题

Azure AD 令牌请求问题修复方案

你无法同步获取ID token、Refresh token是流程和请求参数存在错误,按以下步骤调整即可:

1. 修正请求方法与参数格式

  • token端点仅支持POST请求,不支持GET方法,所有参数需放在application/x-www-form-urlencoded格式的请求体中,不要拼接在URL后
  • 所有参数的取值不要包裹单引号,直接填写实际值即可,不要写成client_id='xxx'的格式

2. 补全scope必填值

当前配置的scope=https://graph.microsoft.com/.default仅会返回Microsoft Graph对应的access token,要获取另外两类令牌必须追加两个强制scope:

  • openid:OIDC协议要求的必填项,声明服务端需要返回ID token
  • offline_access:声明服务端需要返回Refresh token的必填项
    调整后完整scope值为:openid offline_access https://graph.microsoft.com/.default

3. 修正Authorization Code Flow的执行逻辑

你当前的token请求缺少核心的code参数,没有走完授权码流程的完整步骤,授权码流需要分两步执行:

  1. 获取授权码:通过浏览器访问授权端点,完成账号登录与授权
    GET https://login.microsoftonline.com/{替换为你的租户ID}/oauth2/v2.0/authorize?
    client_id={替换为你的客户端ID}
    &response_type=code
    &redirect_uri=https://jwt.ms
    &response_mode=query
    &scope=openid offline_access https://graph.microsoft.com/.default
    &state=test123
    
    授权完成后页面会跳转到jwt.ms,从跳转地址的code=字段中提取到的字符串就是授权码,该码有效期仅10分钟左右,需要及时使用。
  2. 换取令牌:携带上一步拿到的授权码调用token端点,完整请求示例如下:
    POST https://login.microsoftonline.com/{替换为你的租户ID}/oauth2/v2.0/token
    Content-Type: application/x-www-form-urlencoded
    
    client_id={替换为你的客户端ID}
    &client_secret={替换为你的客户端密钥}
    &grant_type=authorization_code
    &code={替换为上一步拿到的授权码}
    &redirect_uri=https://jwt.ms
    &scope=openid offline_access https://graph.microsoft.com/.default
    

配置校验说明

  • 你已经在Azure门户开启的ID token签发配置、已配置的API权限满足要求,不需要额外调整门户端的令牌签发开关
  • 确保已为配置的Microsoft Graph权限完成管理员同意,否则会出现权限不足报错
  • 授权请求和换token请求里的redirect_uri必须完全一致,且和Azure门户中配置的重定向URI完全匹配,否则会报错。

内容的提问来源于stack exchange,提问作者Saimk_556

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 02:51:22