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

Azure B2C自定义策略登录:ID令牌换访问令牌及端点安全咨询

解决方案:Azure B2C自定义策略下的API授权适配逻辑应用

一、直接获取访问令牌(无需事后兑换ID令牌)

你不需要额外兑换ID令牌,在自定义策略的登录流程中就能直接获取访问令牌:

  • 在B2C自定义策略的Relying Party配置段,添加你的API的OAuth2Permissions,确保该API已注册为B2C的受保护资源。
  • 调整前端登录请求参数:将response_type设为code id_token(推荐生产环境用的授权码流)或token id_token(隐式流,仅限测试场景),同时指定resource参数为你的API的应用ID URI。
  • 完成登录回调后,就能同时拿到ID令牌和访问令牌,直接用访问令牌调用API即可。

二、适配逻辑应用的颁发者要求

由于逻辑应用要求颁发者为login.microsoftonline.com,而B2C令牌的颁发者是{tenant}.b2clogin.com,可以用以下两种方案解决:

方案1:以API管理作为中间层

既然你已经确认ID令牌在API管理中能正常工作,可让逻辑应用通过API管理调用后端API:

  • API管理侧保留B2C ID令牌的验证逻辑,确保仅已登录的B2C用户能通过校验。
  • 逻辑应用与API管理之间用订阅密钥、Azure AD身份验证等方式授权(逻辑原生支持这些方式),这样逻辑应用无需直接处理B2C令牌,绕开发布者限制。

方案2:自定义逻辑应用的令牌验证规则

如果逻辑应用是用Azure AD身份验证保护的,可修改验证规则,将B2C的颁发者{tenant}.b2clogin.com加入允许列表:

  • 在逻辑应用的身份验证配置中,找到「高级验证规则」,添加自定义规则校验iss声明,兼容B2C的颁发者格式。

三、生产环境注意事项

  • 优先使用授权码流获取访问令牌,避免隐式流带来的令牌泄露风险。
  • 确保API的访问令牌受众(aud声明)准确指向API的应用ID URI,逻辑应用或API管理验证时会校验该字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 03:01:06