我想解决的场景如下.
1)用户可以使用标准方法对我的本地数据库进行身份验证 – 工作正常
2)用户可以对社交媒体平台进行身份验证 – 工作正常
3)现在,我希望拥有Azure AD帐户的某些用户能够拥有本地帐户,但必须通过其Azure AD进行身份验证.有解决方案(1)& (2).但我找不到支持这三种解决方案的解决方案.最接近的是multi-tenant SaaS auth
对于那些应该通过AD进行身份验证的用户,将在系统中进行预配置. (我将在我的本地数据库中拥有他们的TenantID,ClientID等).因此,根据他们的用户名如果我可以重定向到相关的登录页面,我应该能够支持不同的AD.
我不确定如何正确连接(或者这种方法是否错误/可行).
最佳答案 当用户在Azure AD中进行身份验证时,您的应用程序会收到代表该用户的声明列表.您可以使用这些声明标识用户并将这些属性“链接”到数据库中的用户 – 例如,您可以使用Name声明获取用户ID(通常是用户的电子邮件),以及NameIdentifier声明用户的唯一标识符(更推荐作为唯一标识符),以及表示用户租户/公司的tenantId,而不是您可以在数据库中连接这些用户的属性,以便用户可以表示为一个用户,无论他们在何处进行身份验证.
> This Guided Setup基于ASP.NET 4.x,但可以帮助您了解整体概念 – 包括多租户.
> This Code Sample包含一个ASP.NET Core,显示如何与Azure AD与ASP.NET Core集成.