Asp.net NET SSO和构建自定义STS

Asp.net NET SSO和构建自定义STS,asp.net,adfs,Asp.net,Adfs,这是我的问题的后续行动。我得到的答案告诉我要调查基于声明的身份验证协议,我一直在阅读,试图更好地了解Microsoft技术,这将使我能够做到这一点 根据链接的书,您可以使用Active Directory联合身份验证服务(ADFS)2.0发布声明。不清楚的是用户是否需要存储在Active Directory中。假设我有一个处理身份验证的现有遗留应用程序,其中用户信息(用户名、密码、电子邮件等)存储在Oracle数据库中(根据我前面的问题),我是否仍然可以使用ADF发布索赔,或者我是否需要将我自己

这是我的问题的后续行动。我得到的答案告诉我要调查基于声明的身份验证协议,我一直在阅读,试图更好地了解Microsoft技术,这将使我能够做到这一点

根据链接的书,您可以使用Active Directory联合身份验证服务(ADFS)2.0发布声明。不清楚的是用户是否需要存储在Active Directory中。假设我有一个处理身份验证的现有遗留应用程序,其中用户信息(用户名、密码、电子邮件等)存储在Oracle数据库中(根据我前面的问题),我是否仍然可以使用ADF发布索赔,或者我是否需要将我自己的索赔颁发者(STS)构建到此现有应用程序中

鉴于Active Directory联合会服务中的Active Directory,将用户存储在AD中似乎是一项要求,但本书还具有以下图像

还有这个

ADFS要求用户在Active Directory或ADFS信任的某个存储中拥有帐户


这让我更加困惑。有人能帮您解释一下吗?

您可以使用ADFS属性存储,然后创建一个索赔提供者信任,该信任具有查询属性存储的索赔规则。这篇文章有人使用SQL属性存储到SQL,然后使用链接到Oracle的服务器。还建议使用自定义属性存储并从中查询Oracle。我已经使用了这两种类型的存储,随着时间的推移,您希望管理和维护什么,代码还是SQL,这可能有点问题。我可能倾向于自定义属性存储


在ADFS 2.0、2.1和3.0中,必须让用户在Active Directory中进行身份验证

一旦执行了身份验证,ADFS可以从任何来源检索用户信息以创建令牌;这些源称为“属性存储”。如图所示,ADFS为AD、ADLDS和SQLServer提供属性存储。如果您需要访问其他系统,如Oracle,则必须构建自定义属性存储(technet上有关于如何实现此目的的示例)

注意:在即将发布的Windows Server 2016 ADFS版本中,您将能够对任何LDAP存储中的用户进行身份验证