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

请求openid scope时Azure应用注册的Access Token为何被加密?

问题分析:请求openid scope时Azure AD返回加密AccessToken的原因

核心原因解析

以PAQABAAIAAAA开头的Token是Azure AD返回的JWE(JSON Web Encryption)格式加密令牌,而ey开头的是常规JWT(JSON Web Signature)明文令牌,两者的差异主要由以下因素导致:

1. Azure AD应用注册的Token加密配置

如果你的应用注册中启用了令牌加密功能,Azure AD会对返回的AccessToken进行加密。当请求openid scope时,触发了完整的OpenID Connect流程,Azure AD会按照加密配置返回JWE格式令牌;而不请求openid时,仅走OAuth2授权码流程获取API访问令牌,未触发加密规则,因此返回明文JWT。

检查路径:Azure Portal → 应用注册 → 目标应用 → 左侧菜单「令牌加密」,查看是否启用加密并配置了加密证书。

2. OpenID Connect流程的安全特性

对于SPA/移动应用这类公共客户端,Azure AD在OpenID Connect流程(携带openid scope)中,默认可能会对AccessToken进行加密以提升安全性。而仅请求API scope时,返回的是针对特定API的访问令牌,采用明文JWT格式便于API直接解析验证。

3. 依赖库的潜在影响

目前来看,ionic-appauth库本身不会主动触发Token加密,但需要确认两点:

  • 库在请求openid scope时是否默认添加了requested_token_type等特殊参数,引导Azure AD返回加密令牌;
  • 库是否对请求参数做了额外处理,比如强制要求加密Token。

可以通过抓包对比两种请求的参数差异,或者查看库的源码确认请求逻辑。

排查建议

  1. 关闭Token加密测试:暂时禁用应用注册中的令牌加密功能,重新发起请求,观察是否返回ey开头的JWT;
  2. 对比请求参数:分别抓取请求openid和不请求时的授权请求,检查scope、response_mode、token_type等参数的差异;
  3. 验证Token格式:使用Azure AD官方的令牌解析工具测试,JWE格式的Token无法直接解析,需用加密证书解密后才能查看内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 04:42:46