大家好,
我一直在阅读有关基于声明的身份验证(Claims Based Authentication)的内容,但仍有些困惑。 我正在尝试巩固我的理解,特别是与SharePoint 2010/2013相关的部分,但也包括一般情况下(即ASP.NET)。
我对各种技术术语的理解如下:
WIF(Windows Identity Foundation)- 用于消耗身份声明和构建自定义STS等的.NET库(API集)。
Relying Party - 声明的“使用方”(即SharePoint、ASP.NET网站等)。声明通过一个STS提供(仅限IP-STS?)。
STS(Security Token Service)- 发行安全令牌的专业Web服务。有两种类型,并且某些STS可能同时是两种类型?
- RP-STS(Relying Party Security Token Service)
- IP-STS(Identity Provider Security Token Service)
受信任的身份提供者(SharePoint术语)- 又称IP-STS。
SharePoint 2010/2013 STS - 使用WIF开发的SharePoint服务应用程序,只充当RP-STS。作为用户可配置的多个可信任身份提供者(IP-STS)的可插入聚合点。如果需要,这些可以使用WIF手动构建。
ADFS 2.0 - 专门设计用于对抗活动目录实例的组织联合的Windows角色。 使用WIF构建了一个IP-STS端点。 我对ADFS 2.0的理解是,它不允许您“聚合”其他身份提供者 - 它只允许您对可能不在本地的特定AD实例进行身份验证,并因此需要进行联合以支持SSO。
Windows Azure ACS 2.0是一项专门用于联合任何配置的第三方身份提供者(例如Microsoft账户,Google,Facebook,ADFS 2.0)的服务。它作为可插拔的聚合点,用于其他身份提供者,对于这些提供者,它有点像Relying Party。使用WIF构建了一个IP-STS端点进行公开。它汇聚的身份提供者不一定是IP-STS,但ACS 2.0通过使用其内置的IP-STS将所有内容都暴露出来。
SharePoint 2010/2013问题:
我的主要问题是我看到了一些关于ADFS 2.0和SharePoint的文章,几乎读起来就好像你正在用ADFS 2.0替换内置的SharePoint 2010/2013 STS!希望这只是我的阅读问题,但它让我困惑了。
- 您真的可以这样做吗?如果你真的想这样做,我认为你需要禁用SharePoint STS并进行大量的手动配置,但我没有看到相关信息。
- 为什么要这样做呢?
2.1. SharePoint STS已经支持作为OOTB可信身份提供者选项的AD身份验证,如果您想使用ADFS 2.0,只需将其添加为可信身份提供者(IP-STS),我看到过博客文章介绍。
2.2. 基于我对ADFS 2.0的描述,用它替换SharePoint STS实际上会给您带来一个不太灵活的解决方案?
表述:
- 您可以配置SharePoint STS以使用ADFS 2.0作为可信身份提供者(IP-STS),也可以使用本地AD。
- 您可以配置SharePoint STS以使用Windows Azure ACS 2.0作为可信身份提供者(IP-STS)。这将使支持第三方身份验证提供程序变得非常容易,而无需使用WIF开发自己的IP-STS。
ASP.NET WIF问题:
- 我的理解是,为了执行信任协商和声明交换,RP-STS必须与IP-STS通信。这正确吗?
因此,在构建基于声明的ASP.NET Web应用程序(Relying Party)时,当使用WIF时,您是否需要开发/重用并将RP-STS包含在应用程序中,并配置其与IP-STS具有信任关系?如果不是,是否可以直接从IP-STS使用WIF获取身份验证?
只写下这些已经帮助我清理思路,但如有不准确/过度简化/完全错误之处,欢迎指正!
关于此事,
Michael Taylor