这是关于ASP.NET MVC / Web API Custom Authentication的问题的跟进。我给出的答案告诉我调查基于声明的身份验证协议,我一直在阅读following book,试图更好地理解允许我这样做的Microsoft技术。
根据链接的书籍,您可以使用Active Directory联合身份验证服务(ADFS)2.0来发布声明。目前尚不清楚的是,用户是否需要存储在Active Directory中。假设我有一个现有的遗留应用程序来处理身份验证,并且用户信息(用户名,密码,电子邮件等)存储在Oracle数据库中(根据我之前的问题),我是否仍然可以使用ADFS来发布声明或意愿我需要在现有的应用程序中构建自己的理赔发行者(STS)吗?
鉴于 Active Directory联合身份验证服务中的 Active Directory ,似乎将用户存储在AD中是必需的,但该书还具有以下图像
还有这个
ADFS要求用户在Active Directory或ADFS信任的其中一个商店中拥有帐户。
这增加了我的困惑。有人可以帮忙解释一下吗?
答案 0 :(得分:0)
您可以使用ADFS属性存储,然后创建具有查询属性存储的声明规则的声明提供程序信任。这篇文章有人使用SQL属性存储到SQL,然后是链接服务器到Oracle。还建议使用自定义属性存储并从中查询Oracle。我使用过两种类型的商店,这可能是一个问题,你想要管理和维护一段时间,代码或SQL。我可能倾向于自定义属性存储。
答案 1 :(得分:0)
在ADFS 2.0,2.1和3.0中,必须让Active Directory中的用户进行身份验证。
执行身份验证后,ADFS可以从任何源检索用户信息以创建令牌;这些来源被称为"属性商店"。如图所示,ADFS为AD,ADLDS和SQLServer提供了属性存储。如果您需要访问其他系统(如Oracle),则必须构建自定义属性存储(technet上有关于如何执行此操作的示例)。
注意:在Windows Server 2016上即将推出的ADFS版本中,您将能够在任何LDAP存储中对用户进行身份验证。