首页 > 解决方案 > 登录回调失败 w/500,如何调试原因

问题描述

我们有一个应用程序在四个环境中运行,其中 4 个环境中的 3 个按预期工作。我们认为不需要更改代码,而是 Azure 环境、B2C 设置或应用程序中的某种类型的配置导致了问题。仔细查看后,我们看到 /signon-oidc 的回调收到 302 Not found 但位置设置为应用程序错误处理程序。提琴手对 signin-oidc 的响应片段如下所示。其他环境中的位置是应用程序的完全限定应用程序 url。这个位置是如何从 B2C 确定的?

找到 HTTP/1.1 302

位置:/首页/错误

有哪些选项可用于增加此类故障的日志信息?重定向回调错误地设置了重定向的位置。但这是如何以及在哪里确定的?

startup.cs - 配置服务

       services.AddAuthentication(sharedOptions =>
        {
            sharedOptions.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
            sharedOptions.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
        })
       .AddAzureAd(options =>
       {
           Configuration.Bind("AzureAd", options);
           options.ContentEditorClientKey = Configuration["AzureAd:WebPortalAzureAdKey"];
           ....
           AzureAdOptions.Settings = options;
       })
       .AddAzureAdB2C(options => Configuration.Bind($"ContentEditor{nameof(AzureAdB2COptions)}", options))
       .AddCookie(options =>
       {
           if (!string.IsNullOrEmpty(cookiedomain))
               options.Cookie.Domain = cookiedomain;
       }); 

startup.cs - 配置

        ....
        app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseSpaStaticFiles();
        app.UseSession();
        app.UseAuthentication();
        app.UseMvc(routes =>
        ....

提琴手

在此处输入图像描述

Fiddler - 从 B2C 登录到 /signin-oidc 的 xml 响应片段 在此处输入图像描述

Fiddler - signin-oidc 响应的位置错误

在此处输入图像描述

显示应用错误

在此处输入图像描述

我们已经非常仔细地查看了重定向 URL、cookie、WAF 环境等,但无法确定为什么将 signin-oidc 中的位置设置为错误的值。我可以在 B2C 和/或 Web 应用程序 (.Net core 2.2) 中放置哪些额外的日志记录?或者,位置值是如何设置的?

标签: azure-ad-b2c.net-core-2.2

解决方案


推荐阅读