不使用JavaScript的ADB2C身份验证流有哪些可选方案?
Azure AD B2C 无JavaScript身份验证流可选方案
除了你正在调研的「应用内逻辑+自签发JWT+自定义策略/技术配置文件」方案之外,还有以下3种可落地的实现方式:
- 启用ADB2C原生无JS兼容的页面合约
ADB2C官方提供了不依赖前端JavaScript的页面合约版本,你可以直接修改自定义策略中内容定义节点的ContractVersion参数,选择适配无JS场景的版本。该版本的所有交互都基于原生HTML表单提交实现,不需要加载额外的前端脚本,默认支持注册登录、密码重置等基础流,不需要对现有策略做大量改造,适合快速上线需求。 - 服务端托管全纯HTML身份UI+授权码流服务端交互
所有身份相关的页面完全由你的Web应用服务端渲染为纯HTML,前端仅提供表单输入、原生提交能力,不需要任何JS逻辑。用户提交的身份信息直接发送到你的服务端,由服务端负责和ADB2C的授权端点、令牌端点完成OAuth 2.0授权码流的全链路交互,最终把获取到的令牌返回给前端会话。该方案完全控制身份交互体验,兼容性最好,也可以复用你现有站点的UI风格。 - 自建无JS身份服务+声明交换技术配置文件对接
你可以独立部署一套完全不依赖JS的身份验证服务,自行实现注册、登录、密码重置等所有交互逻辑,再通过ADB2C自定义策略中的声明提供者技术配置文件,和自建身份服务做JWT或SAML格式的声明交换。ADB2C仅负责校验自建服务返回的身份声明、签发面向下游应用的最终令牌,不需要向终端用户暴露ADB2C的托管页面,适合有复杂自定义身份逻辑的场景。
注意事项:所有无JS方案都需要自行做好表单提交的CSRF防护,同时兼容ADB2C的会话管理规则,避免出现会话不同步的问题。
内容的提问来源于stack exchange,提问作者btofg
相关产品推荐
相关产品推荐

