将azure AD身份验证与asp.net核心身份个人帐户集成

时间:2018-01-08 07:43:12

标签: authentication asp.net-identity azure-active-directory asp.net-core-2.0

我想解决的场景如下:

1)用户可以使用标准方法对我的本地数据库进行身份验证 - 正常工作

2)用户可以针对社交媒体平台进行身份验证 - 工作正常

3)现在,我希望拥有Azure AD帐户的某些用户能够拥有本地帐户但是可以通过其Azure AD进行身份验证。有解决方案(1)& (2)。但我找不到支持这三种解决方案的解决方案。最接近的是multi-tenant SaaS auth

对于那些应该通过AD进行身份验证的用户,将在系统中进行预配置。 (我将在我的本地数据库中拥有他们的TenantID,ClientID等)。所以,基于他们的用户名如果​​我可以重定向到相关的登录页面,我应该能够支持不同的AD。

我不确定如何正确连接(或者这种方法是否错误/可行)。

1 个答案:

答案 0 :(得分:2)

当用户在Azure AD中进行身份验证时,您的应用程序会收到代表该用户的声明列表。您可以使用这些声明来识别用户,并将这些属性' 链接到数据库中的用户 - 例如,您可以使用名称声明获取用户ID(通常是用户的电子邮件),以及用户唯一标识符的 NameIdentifier 声明(更推荐作为唯一标识符),以及 tenantId 代表用户的租户/公司 - 而不是您可以在数据库中连接这些用户的属性,这样就可以将用户表示为一个用户,无论他们在哪里进行过身份验证。

  • This Guided Setup基于ASP.NET 4.x,但可以帮助您了解整体概念 - 包括多租户
  • This Code Sample包含一个ASP.NET Core,显示如何与Azure AD与ASP.NET Core集成。