Azure B2C 部署后以服务器地址为redirect URI时无法跳转登录页
部署后跳转异常的常见遗漏配置
- 应用生产环境配置未同步更新
多数开发者会把认证相关的RedirectUri、B2C租户地址写在本地开发环境的配置文件里,部署到服务器时没有替换为生产环境对应的值。这种情况下应用发起B2C授权请求时,实际携带的重定向参数还是本地开发地址,和当前服务器域名不匹配时会直接被路由校验拦截,不会生成跳转到B2C的302响应,表现为点登录按钮只刷新当前页。 - 子路径部署的基础路径配置缺失
你的应用挂载在/v1/myapp子路径下,如果没有给应用设置对应的PathBase值,应用生成的内部路由(包括登录入口、授权回调路径)会默认基于网站根路径计算。此时点击登录按钮的请求会命中错误的路由规则,被服务器直接重定向回当前页,根本走不到生成B2C跳转链接的逻辑,自然也触发不了OnAuthorizationCodeReceived事件。 - 反向代理规则拦截出站跳转
如果服务器是通过Nginx、IIS这类反向代理对外提供服务,且配置了强制同源的URL重写规则,会把应用生成的指向Azure B2C域名的302跳转响应强制改写为当前域名下的路径,导致没法正常跳转到外部B2C登录页。需要检查代理配置,确保指向B2C域名的出站跳转不被强制改写。 - Azure侧重定向URI的精确匹配不通过
Azure B2C对重定向URI是严格字符串匹配,不是模糊匹配,以下配置偏差都会导致校验失败、直接拒绝跳转:- 配置的URI和应用实际携带的URI有细节差异,比如末尾多/少斜杠、大小写不一致、路径段不匹配
- 添加重定向URI时选错了应用类型,把Web应用的回调地址配置到了公开客户端/移动应用的分类下,授权码流程的请求无法匹配
- HTTPS强制校验触发内部重定向
如果服务器上的应用开启了HTTPS强制跳转,但用户实际通过HTTP协议访问站点,应用会直接发起跳转到HTTPS地址的302响应,根本不会走到B2C授权逻辑,视觉上和“点登录只刷新页面”的表现完全一致。
内容的提问来源于stack exchange,提问作者Vikas
相关产品推荐
相关产品推荐

