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

如何将数据库自定义声明纳入ADB2C签发的JWT?求解两大问题

针对ADB2C动态ACL声明问题的解决方案

问题1:必须预先定义自定义声明的处理

ADB2C的自定义声明机制确实要求所有要注入JWT的声明必须先在租户中注册,这是平台硬性规则,但可以通过以下方式优化:

  • 批量管理声明:使用Microsoft Graph API批量创建/更新自定义声明,避免手动逐个配置,自动化维护所需的声明字段。
  • 打包动态ACL为单一声明:如果ACL的资源条目是动态变化的,无需为每个资源单独定义声明,预先定义一个user_access_control_list这类复合声明,将所有可访问资源以JSON数组或对象形式打包后注入JWT。这种方式只需维护一个声明,就能容纳所有动态ACL信息。

问题2:刷新令牌时不触发API扩展的处理

默认情况下,ADB2C的刷新令牌流程不会执行用户旅程中的API调用步骤,可通过以下方案解决:

  • 后端实时校验ACL:放弃在JWT中携带动态ACL,改为API网关或后端服务接收到请求时,直接从数据库查询当前用户的最新ACL。这种方式能保证权限实时性,不受JWT有效期限制,也无需依赖ADB2C的扩展流程。
  • 自定义策略强制刷新时调用API:修改ADB2C的自定义策略,在RelyingParty节点下的RefreshTokenIssuanceTechnicalProfile中添加API调用步骤,让刷新令牌流程也触发ACL查询API,更新JWT中的声明。需注意这种方式需要具备自定义策略配置经验,且要保证API调用性能不影响刷新流程速度。
  • 缩短JWT有效期:如果仍希望在JWT中携带ACL,可将JWT有效期设置得较短(比如15分钟),让用户更频繁地重新获取JWT,从而触发API调用更新ACL信息,在实时性和用户体验间做折中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 19:57:44