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

登录后重定向URI未保留:Azure B2C部署至App Service后异常

Azure B2C 迁移至App Service后重定向异常解决方案
  • 先检查App Service的转发头配置
    因为App Service在App Gateway反向代理后面,得让应用能识别真实的客户端请求地址,而不是App Service内部的地址。直接在App Service的「应用程序设置」里加这两个配置:

    • WEBSITE_ENABLE_FORWARDED_HEADERS 设为 1
    • 如果开了WEBSITE_USE_HTTP2,部分场景下可能和转发头冲突,可先关闭试试
  • 修正ASP.NET里的重定向URI生成逻辑
    对于Web Forms的Login.aspx,处理B2C认证回调时,别用服务器内部地址生成重定向URI,要从转发头里拿真实的客户端地址。比如:

    // 别这么写:拿的是App Service内部地址
    // var redirectUri = Request.Url.AbsoluteUri;
    // 改成从转发头取真实地址
    var forwardHost = Request.Headers["X-Forwarded-Host"];
    var forwardProto = Request.Headers["X-Forwarded-Proto"];
    var redirectUri = $"{forwardProto}://{forwardHost}{Request.Url.PathAndQuery}";
    

    也可以直接在web.config里加反向代理支持的配置:

    <system.webServer>
      <rewrite>
        <rules>
          <rule name="Forwarded Headers" stopProcessing="true">
            <match url=".*" />
            <conditions>
              <add input="{HTTP_X_FORWARDED_PROTO}" pattern="https" />
            </conditions>
            <serverVariables>
              <set name="HTTP_X_FORWARDED_HOST" value="{HTTP_HOST}" />
              <set name="HTTP_X_FORWARDED_SCHEME" value="https" />
            </serverVariables>
          </rule>
        </rules>
      </rewrite>
    </system.webServer>
    
  • 确认App Gateway的后端转发设置
    检查App Gateway的后端HTTP配置,确保它给App Service转发请求时,带上了X-Forwarded-Host和X-Forwarded-Proto头,而且没乱改请求的路径或主机信息。

  • 核对B2C应用注册的重定向URI
    虽然首次传入的redirect_uri是对的,但再确认下B2C应用注册里的回复URL,只保留App Gateway的内网URI,别混着加App Service的地址,而且要完全匹配(包括HTTP/HTTPS、完整路径)。

  • 排查会话初始化的重定向代码
    看看Login.aspx里处理完id_token后的跳转逻辑,是不是硬编码了App Service的.azurewebsites.net地址?要是有,改成动态从请求头里拿App Gateway的地址。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 16:37:54