【问题标题】:integrate azure AD authentication with asp.net core identity individual accounts将 azure AD 身份验证与 asp.net 核心身份个人帐户集成
【发布时间】:2018-06-17 04:23:00
【问题描述】:

我要解决的场景如下。

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

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

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

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

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

【问题讨论】:

  • 也许我不了解整个用例,但通常如果用户分布在多个 Azure AD 中,那么多租户方法是可行的方法。如果用户只在一个租户中,那么单租户方法应该可以正常工作。另一方面,依靠 Azure AD 进行用户身份验证的整个想法是避免在应用程序中进行用户管理。如果您希望所有用户也在应用程序的数据库中,那么您可以以编程方式实现一项服务,该服务可以根据您从 Azure AD 收到的 Id-token 创建一个服务。
  • 如果您更详细地描述您的用例,我可以尝试阐明更广泛的答案。干杯。
  • 我的用户可以是个人,也可以是从使用 AD 的公司中选择的 ppl。因此,他们希望他们的员工能够通过他们的 AD 进行身份验证。但其他一些只是普通用户。这就是为什么我需要一种方法来存储个人 AD 信息并根据用户让他们使用他们的 AD 进行身份验证或使用本地数据库进行身份验证。我知道这是可以做到的。但把它接线是我卡住的地方!

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


【解决方案1】:

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

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

【讨论】:

  • ASP.NET Core 代码示例为 404。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-31
  • 2020-08-26
  • 2017-01-04
  • 2020-08-17
  • 2016-12-24
相关资源
最近更新 更多