我想知道 ADFS2.0 是否为用户提供了一种通过自定义存储进行身份验证的方法?1.0 版您只能使用 Forms/Windows Integrated/Cardspace 对 Windows 域中的用户进行身份验证。我有一个 ASP.NEt 网站,我希望用户通过 SQL 中的自定义存储进行身份验证,然后使用 ADFS2.0 处理向用户发出的声明......
3 回答
这并不完全正确。虽然 ADFS v2.0 在其默认形式下仅允许您针对 Active Directory 进行身份验证,但有一种混合方法。您可以将身份验证类型设置为表单(修改\inetpub\adfs\ls 目录下的ASDFS 服务器的Web.config 文件)。
设置为表单后,您实际上可以自定义 ADFS 登录页面 (FormsSigninPage.aspx) 以执行您想要的任何自定义身份验证。身份验证通过后,ADFS 的其余部分将从您离开的地方重新开始。
这是一篇文章,展示了如何做到这一点: 自定义 ADFS 登录页面
(信息来自我的另一个答案,因为相同的答案适用于此。)
在对同一问题的另一个答案中建议的解决方案有点误导。如果您阅读实际的博客文章,您会发现他们添加了额外的 STS。AD FS 2.0 对该其他 STS 具有“声明提供者信任”,并重定向到它(如果“主域发现”设置正确)。然后,其他 STS 以它喜欢的任何方式执行身份验证,将令牌发送回 AD FS,然后运行其声明规则。
因此,在该解决方案中,不是 AD FS 2.0针对替代存储进行身份验证,而是重定向到 STS,后者针对该存储进行身份验证。
AD FS 2.0 本身不允许针对自定义身份验证存储进行身份验证。(此时请参阅我的这个答案以获取官方文档。)
ADFS 2.0 只能对 Active Directory 中的用户进行身份验证。它可以从其他存储(SQL、LDAP、自定义)检索属性,但不能用于身份验证。
您可能希望查看 StarterSTS ( http://startersts.codeplex.com/ ) 作为替代方案。
欧金尼奥