有没有办法使用Identity 2.0 AspNetUsers身份验证(Azure SQL)和OpenIdConnect(使用Azure Active Directory)?

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

最重要的想法......用户输入他们的电子邮件进行登录。我们会查看他们的公司是否使用Azure Active Directory(Azure AD)。如果是,请转至Microsoft进行登录。如果不是,请使用Identity 2.0和Azure SQL数据库中的AspNetUsers表登录。

似乎可行...您可以根据公司资料将用户发送到不同的登录页面,如果他们使用Azure AD,则调用此用户...

 HttpContext.GetOwinContext().Authentication.Challenge(
      new AuthenticationProperties { RedirectUri = "/" },
      OpenIdConnectAuthenticationDefaults.AuthenticationType);

如果他们不这样做,或者打电话给他

    var result = await SignInManager.PasswordSignInAsync(model.Email, 
         model.Password, model.RememberMe, shouldLockout: ShouldLockout);

问题?在连接身份验证时,您只能在cookiesAuthenticationOptions中使用单个app.UseCookieAuthentication(cookieAuthenticationOptions)

看来这两种登录方式有很多不同的选择。

有没有办法让这两种身份验证技术和平共存?或者必须选择一个或另一个?

asp.net-mvc asp.net-identity azure-active-directory claims-based-identity
1个回答
0
投票

在我看来,您应该在启动文件中配置两种身份验证方案。理想情况下,它应该有一个单独的身份验证模块,一个用于Azure AD进行身份验证,另一个用于Identity 2.0。

你不应该混合这个。同样在您的Web应用程序中,提供两个单独的登录选项,一个用于Azure AD,另一个用于Identity。此外,如果您只想保留一个选项,最好使用Azure AD进行身份验证。

您可以在AD中同步所有用户,稍后您只能通过AD进行身份验证。

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