针对 ADFS 的身份验证,针对 sql 服务器的授权

authentication against ADFS, authorization against sql server

经过几天的搜索、阅读和反复试验,我确实需要一些帮助。

情况: 我需要使用 MVC 创建一个 Web 应用程序,其中用户使用 ADFS 针对 AD 进行身份验证。但他们不想将角色和更多信息存储到 AD 中。所以我需要阅读这些信息并将其存储在其他地方。我的第一个想法是使用 VS 在创建新 Web 应用程序时设置的相同基础结构并选择 "Individual User Accounts".

到目前为止我做了什么:

我的Question/s: 是否可以通过使用/扩展 ASP.NET 身份框架来使用 ADFS 对用户进行身份验证并检索有关登录用户的更多信息(如角色、其他属性(例如部门))?有人有好的link吗?

我很乐意提供任何帮助。

无需在您的网络应用程序中完成这些工作...

您可以简单地让 ADFS 从 SQL 数据库获取索赔信息。

执行添加属性存储..
属性存储类型 设置为 SQL
输入 显示名称 和您的 连接字符串

然后在向依赖方添加声明时选择声明类型 的“...自定义规则”并让您输入的查询从您的数据库中获取属性。

TechNet

中有一个非常好的演练,其中包含更多详细信息

您遇到的问题是您必须通过某种主键将 AD 声明映射到 ASP.NET 身份。

好link 这里:Code! MVC 5 App with Facebook, Twitter, LinkedIn and Google OAuth2 Sign-on (C#).

(使用 ADFS 4.0 (Server 2016),您将能够使用 SQL 数据库进行身份验证和授权。