ASP Net Core - 将外部身份提供商与个人用户帐户混合以进行审计跟踪

时间:2017-07-19 09:13:39

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

我创建了一个带有个人用户帐户的默认ASP Net Core MVC Web应用程序。我在AspNetUsers表中添加了一个自定义UserID INT字段,并将其作为外键链接到我的所有其他自定义表,以便我可以跟踪用户在我的数据库中插入/更新记录的内容。我这样做是因为我更喜欢使用INT字段作为主键。在这种情况下,一切正常。

我现在正在考虑使用外部身份提供程序,例如Azure Active Directory,但我无法弄清楚如何将Azure AD(或任何其他身份提供程序)中的用户链接到我的本地数据库表以维护用户ID外部关键约束。从我的所有研究中,我找不到适合这种情况的任何文章。

如何将外部身份提供商的用户信息链接到本地​​数据库表?我担心我可能需要在外部身份提供程序和我的本地AspNet用户表中双重处理用户帐户管理,以保持外键与我的其他自定义表格看起来很疯狂。

也许我错过了一些明显的东西,或者我的方法都是错的,所以如果有一个更好的选择来跟踪谁在我的数据库表中使用外部身份提供商为ASP Net Core Web应用程序做了什么我会很乐意采用它

1 个答案:

答案 0 :(得分:2)

无需为外部身份提供商链接用户的用户信息的其他步骤。对于Web应用程序看起来应该是相同的。

当用户从外部身份提供商登录时,仍需要注册用户以将用户与个人帐户绑定。唯一的区别是这种个人帐户没有密码,它可以匹配AspNetUserLogins中的记录。这是两个帐户,一个绑定到外部身份提供程序,另一个不绑定:

enter image description here