有没有人成功地将 ADFS2 配置为使用 Live Id(或 Google、Yahoo 等)作为声明提供程序,如果是的话,您从哪里获得配置说明(请分享它们)我以前曾设法在 Azure 中使用 ACS连接到 Live Id 和 ADFS,但想将 ADFS 用作“HUB”
2 回答
AD FS 2.0 本身不允许针对自定义身份验证存储进行身份验证:它只能对 Active Directory 帐户进行身份验证。(此时请参阅我的这个答案以获取官方文档。)
在对另一个 StackOverflow 问题的回答中提出了一个解决方案,尽管措辞有点误导。如果您阅读实际的博客文章,您会发现他们添加了额外的 STS。AD FS 2.0 对该其他 STS 具有“声明提供者信任”,并重定向到它(如果“主域发现”设置正确)。然后,其他 STS 以它喜欢的任何方式执行身份验证(例如,使用 Google 或 Live 帐户),将令牌发送回 AD FS,然后运行其声明规则。
因此,在该解决方案中,不是 AD FS 2.0针对替代存储进行身份验证,而是重定向到 STS,后者针对该存储进行身份验证。
这可以通过与 ADFS 联合的自定义 STS 实现。
这个想法是构建一个 STS,它本身使用 OAuth2 来验证用户,然后(可选)执行自己的 Active Directory 查询以找到具有相同电子邮件地址的用户并从 AD 读取角色。然后自定义 Sts 将所有声明返回给您的应用程序。
正如 Marnix 指出的那样,在 adfs 页面而不是身份提供者页面上提供凭证的混合方法是可能的。这相当困难,因为它涉及在您的 sts 上设置 wstrustfeb2005 端点。我有一个关于如何做到这一点的六部分教程:http: //netpl.blogspot.com/2011/08/adfs-20-quest-for-customizing-adfs-sign.html
尽管如此,后一种方法要困难得多,而暴露与 adfs 联合的被动 sts 不会花费您很长时间。