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

Xamarin Forms应用连接b2clogin进行B2C账户登录注册时出现404错误

排查Azure B2C迁移至b2clogin.com及MSAL 3.0时的404错误

我帮你梳理几个最可能导致这个404错误的原因,都是迁移到b2clogin.com和MSAL 3.0时容易踩的坑:

  • 权威端点(Authority)格式错误
    你当前把B2C策略名作为查询参数?p={SignUpAndInPolicy}拼接在发现文档URL末尾,这是不正确的。Azure B2C的OpenID发现文档要求策略名放在URL路径中,而非查询参数。错误的端点格式会让B2C服务找不到对应的配置,直接返回404。

    你的当前代码:

    static readonly string AuthorityBase = $"https://{AppName}.b2clogin.com/{Tenant}/v2.0/.well-known/openid-configuration";
    static readonly string Authority = $"{AuthorityBase}?p={SignUpAndInPolicy}";
    

    修正后的正确构造方式(直接把策略名放入路径):

    static readonly string Authority = $"https://{AppName}.b2clogin.com/{Tenant}/{SignUpAndInPolicy}/v2.0/.well-known/openid-configuration";
    

    更省心的方式是让MSAL自动处理权威URI的拼接,直接传递租户和策略名给WithB2CAuthority:

    .WithB2CAuthority($"https://{AppName}.b2clogin.com/{Tenant}/{SignUpAndInPolicy}")
    

    MSAL会自动生成正确的发现文档路径,避免手动拼接出错。

  • 重定向URI与Info.plist配置不匹配
    你提到Info.plist中配置的是msauth.com.[MYAPPID]://auth,但代码里的RedirectUrl是msauth.********://auth,这里的占位符部分必须和你的应用Bundle ID完全一致。比如如果你的Bundle ID是com.mycompany.myapp,重定向URI就应该是msauth.com.mycompany.myapp://auth。不一致的重定向URI不仅会导致回调失败,也可能在端点验证阶段触发异常。

  • 租户域名或策略名拼写错误
    仔细检查这两处细节:

    • {AppName}.b2clogin.com中的AppName必须和你的Azure B2C租户短名称一致(比如租户是myappname.onmicrosoft.com,短名称就是myappname);
    • 策略名B2C_1_SignUp_SignIn必须和Azure B2C门户中创建的策略名称完全匹配,大小写、下划线都不能出错。任何拼写错误都会导致B2C找不到对应的策略配置,返回404。
  • MSAL 3.0的B2C初始化方式问题
    迁移到MSAL 3.0后,确保你使用的是适配B2C的初始化方法。WithB2CAuthority需要符合格式的权威URI,如果你手动构造的URI不符合MSAL 3.0的预期,也会触发请求错误。建议使用更简洁的初始化代码,比如:

    msaClient = PublicClientApplicationBuilder.Create(ClientID)
        .WithIosKeychainSecurityGroup("com.microsoft.adalcache") // 推荐使用默认组保证兼容性,如需自定义要确保配置一致
        .WithB2CAuthority($"https://{AppName}.b2clogin.com/{Tenant}/{SignUpAndInPolicy}")
        .WithRedirectUri(RedirectUrl)
        .Build();
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 11:07:42