我想解决的场景如下:
1)用户可以使用标准方法对我的本地数据库进行身份验证 - 正常工作
2)用户可以针对社交媒体平台进行身份验证 - 工作正常
3)现在,我希望拥有Azure AD帐户的某些用户能够拥有本地帐户但是可以通过其Azure AD进行身份验证。有解决方案(1)& (2)。但我找不到支持这三种解决方案的解决方案。最接近的是multi-tenant SaaS auth
对于那些应该通过AD进行身份验证的用户,将在系统中进行预配置。 (我将在我的本地数据库中拥有他们的TenantID,ClientID等)。所以,基于他们的用户名如果我可以重定向到相关的登录页面,我应该能够支持不同的AD。
我不确定如何正确连接(或者这种方法是否错误/可行)。
答案 0 :(得分:2)
当用户在Azure AD中进行身份验证时,您的应用程序会收到代表该用户的声明列表。您可以使用这些声明来识别用户,并将这些属性' 链接到数据库中的用户 - 例如,您可以使用名称声明获取用户ID(通常是用户的电子邮件),以及用户唯一标识符的 NameIdentifier 声明(更推荐作为唯一标识符),以及 tenantId 代表用户的租户/公司 - 而不是您可以在数据库中连接这些用户的属性,这样就可以将用户表示为一个用户,无论他们在哪里进行过身份验证。