在.NET Core MVC应用程序中使用Azure B2C和Open Id Connect进行无提示SSO登录

问题描述 投票:1回答:1

我们希望实现一些功能,用户应通过单点登录静默登录。用户转到应用程序A并登录。现在他转到应用程序B,它使用与应用程序A相同的租户。此时要登录应用程序B,用户必须单击“登录”按钮启动处理整个OpenID Connect协议交换的Challenge

[HttpGet]
public IActionResult SignIn()
{
  var redirectUrl = Url.Action(nameof(HomeContrsioller.Index), "Home");
  return Challenge(new AuthenticationProperties { RedirectUri = redirectUrl },
                OpenIdConnectDefaults.AuthenticationScheme);
}

这里的想法是利用Authorize属性。

[Authorize]
public IActionResult Index()
{

    return View();
}

此属性的问题在于,默认情况下,当用户未登录时,属性会重定向到登录UI。此处所需的行为是尝试静默验证用户,当无法进行身份验证时,忽略它。

我试图禁用自动挑战,如描述here但没有成功。

c# asp.net-core azure-ad-b2c
1个回答
0
投票

您可以尝试在将src设置为signin路由的匿名页面上嵌入iframe。确保你的挑战发生时你设置了prompt = none

您可以压缩来自登录请求的任何错误,例如interaction_required,并在其工作时实现静默单点登录

© www.soinside.com 2019 - 2024. All rights reserved.