微软OAuth:解决可信网络生成令牌在云服务中无效的问题
解决方案:绕过Azure AD可信网络令牌限制且不强制MFA
方案1:在认证请求中添加claims参数
构造用户登录的OIDC/OAuth2请求时,加入以下claims参数,强制Azure AD生成不受网络约束的令牌:
claims={"id_token":{"xms_tcdt": {"essential": true, "value": "0"}}}
xms_tcdt是Azure AD的扩展声明,值为0表示令牌可在任意网络环境使用,1则限制为可信网络。这个参数只会影响你的应用生成的令牌,不会强制用户启用MFA——用户仍遵循原有MFA规则(无需MFA的用户可正常跳过)。
方案2:配置应用专属令牌颁发策略
在Azure AD门户中为你的应用注册创建自定义令牌颁发策略,移除网络位置限制:
- 进入「Azure AD」→「应用注册」→ 目标应用 →「令牌颁发策略」
- 新建策略,在规则条件中排除基于网络位置的过滤逻辑
- 将该策略绑定到你的应用,此后通过该应用生成的所有令牌都不受可信网络约束,且不改变全局或用户级的MFA要求
方案3:调整全局条件访问策略的例外
如果租户已配置「可信网络跳过MFA」的全局条件访问策略,可给你的应用添加例外:
- 进入「Azure AD」→「条件访问」→ 找到对应全局策略
- 在「云应用或操作」的「例外」列表中添加你的应用注册
- 效果:用户通过你的应用登录时,不触发可信网络的令牌限制规则,令牌可在云端正常使用;用户是否需要MFA仍按原有规则执行
内容的提问来源于stack exchange,提问作者Robert P
相关产品推荐
相关产品推荐

