如何配置Azure Front Door托管B2C登录子域的404自定义重定向
核心结论
这个404重定向配置不需要修改任何自有应用服务的web.config文件——不管是主域contoso.com对应的应用服务,还是my.contoso.com对应的业务应用服务,修改这两个服务的配置都不会生效。原因是login.contoso.com的流量由Azure Front Door直接转发到Azure B2C服务端点,非鉴权路径的请求根本不会流转到你自有部署的两个应用服务上,后端web.config的规则碰不到这部分请求。
具体配置操作
所有配置直接在Azure Front Door控制台完成即可,步骤如下:
- 进入Azure门户中你的Front Door实例配置页,找到「路由规则」模块,先确认现有
login.contoso.com的路由配置:当前生效的规则应该是匹配B2C鉴权路径前缀(即包含/<token>azureb2c的路径),转发到B2C对应的源站组,这部分规则保持不动。 - 新增一条兜底路由规则,专门处理
login.contoso.com下未匹配鉴权规则的请求:- 匹配条件:绑定域名为
login.contoso.com,匹配路径设置为/*(覆盖所有路径) - 路由动作选择「重定向」
- 重定向状态码优先选
302(临时重定向),避免配置调试阶段浏览器缓存规则导致正常鉴权流程异常,验证功能正常后可根据需要切换为301永久重定向 - 重定向目标地址填写你需要跳转的地址,比如主站
https://contoso.com或自定义的提示页面 - 规则优先级调整:将这条兜底规则的优先级数值设置为大于现有B2C鉴权路由的优先级数值(Front Door规则优先级数值越小,匹配顺序越靠前,数值更大的兜底规则只会在前面的鉴权路径规则未匹配时触发,不会影响正常登录流程)
- 匹配条件:绑定域名为
- 保存配置后等待3-5分钟,等待Front Door全球边缘节点的配置同步完成,直接访问
login.contoso.com根路径即可验证跳转效果,原有携带正确B2C鉴权参数的路径访问不会受任何影响。
常见配置误区
- 不要尝试在Azure B2C侧配置根路径跳转:B2C自带的自定义错误页仅对鉴权流程内触发的错误生效,根路径这类不属于B2C鉴权流程范畴的请求,B2C会直接返回默认404响应,不会加载自定义错误页配置。
- 不要调整兜底规则的匹配顺序:如果把兜底规则的优先级设得比B2C鉴权路由高,所有
login.contoso.com的请求都会被直接重定向,会直接导致正常登录鉴权流程失效。
内容的提问来源于stack exchange,提问作者Christian Matthew
相关产品推荐
相关产品推荐

