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

Azure AD B2C异常未渲染api.error自定义错误页如何解决

Azure AD B2C 第三方登录拒绝授权跳转自定义错误页方案

问题现象

  • 接入Google、Facebook等第三方登录自定义登录页流程时,用户在第三方授权同意页点击同意,可正常重定向到业务站点首页;用户点击拒绝授权时,系统默认跳转回登录页,需求为将该场景跳转目标改为自定义错误页
  • 尝试通过新增用户旅程编排步骤处理该逻辑未生效
  • 按照官方文档配置的api.error全局错误页未正常加载,异常触发时始终显示登录界面,自定义错误页地址无请求记录

已捕获的异常信息

Application Insights中记录的异常详情如下:

"Exception": {
        "Kind": "Handled",
        "HResult": "80131500",
        "Message": "An invalid response was received : 'Error: access_denied,Error Description: ConsentNotGiven'",
        "Data": {
          "IsPolicySpecificError": false
        }
}

当前api.error内容定义配置如下:

<ContentDefinition Id="api.error">
        <LoadUri>~/tenant/templates/AzureBlue/exception.cshtml</LoadUri>
        <RecoveryUri>~/common/default_page_error.html</RecoveryUri>
        <DataUri>urn:com:microsoft:aad:b2c:elements:contract:globalexception:1.2.1</DataUri>
        <Metadata>
          <Item Key="DisplayName">Error page</Item>
        </Metadata>
</ContentDefinition>

根因说明

  1. 第三方身份提供者返回的access_denied(用户拒绝授权)属于Azure AD B2C标记为Handled的内置业务异常,不会触发全局未捕获异常对应的api.error页面渲染逻辑,异常发生在联邦IdP回调的前置校验阶段,早于用户旅程编排步骤的执行链路,因此直接新增编排步骤无法捕获该异常。
  2. 当前使用的globalexception:1.2.1版本DataUri存在已知的自定义LoadUri加载失效bug,同时CDN缓存、策略继承覆盖也会导致全局错误页配置不生效。

实现步骤

  1. 拦截第三方授权拒绝的默认处理逻辑
    在Google、Facebook等对应OAuth2身份提供者的技术配置文件<Metadata>节点下新增如下配置,关闭B2C对access_denied响应的自动跳转逻辑:
    <Item Key="DefaultUserMessageIfAccessDenied">unused</Item>
    
    配置生效后,B2C不会自动将用户打回登录页,会将oauth2_error、oauth2_error_description两个错误声明写入声明集合,流转到后续编排步骤。
  2. 新增授权拒绝场景的判断逻辑
    在第三方登录授权步骤的下一个位置新增编排步骤,通过声明转换判断错误声明:
    • 当检测到oauth2_error值为access_denied,且oauth2_error_description包含ConsentNotGiven时,可选择两种处理方式:
      • 抛出自定义错误码,触发全局错误页渲染
      • 直接跳转至配置好的自定义错误页自断言步骤
  3. 修复全局错误页不生效问题
    • 将api.error配置中的DataUri升级到urn:com:microsoft:aad:b2c:elements:contract:globalexception:1.2.14及以上稳定版本
    • 确认api.error的ContentDefinition节点位于所有ContentDefinition配置的最靠前位置,未被子策略文件的同名配置覆盖LoadUri
    • 上传策略后清除浏览器缓存、B2C页面CDN缓存后再测试,旧版本页面资源缓存最长保留24小时

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 05:15:18