azure-ad-b2c - 登录回调失败 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) 中放置哪些额外的日志记录?或者,位置值是如何设置的?
解决方案
推荐阅读
- python - collections.Counter().values() 视图似乎在某些条件下按键排序。为什么以及它们是什么?
- javascript - 使用 python 和 selenium 无法与 keybord 和 .getAttribute 交互,为 data-* 属性返回 null
- wordpress - 如何从 WordPress 中的下一个/上一个帖子中删除私人帖子?
- javascript - best_in_place 在 Heroku 上不起作用,并且没有出现错误
- ios - 使用 Firebase 密钥执行以下操作会产生过高的成本吗?
- facebook - Facebook 客户聊天插件未出现
- powershell - 如何在 Powershell 中更改扩展文件?
- python-3.x - 如何解决ubuntu中的时间模块
- angular - 在 Angular 7 中读取来自 POST 请求的响应
- c++ - 仅为某些模板特化定义转换运算符:预期类型/预期类型说明符