基于声明的身份验证 - SharePoint和一般

Mic*_*lor 9 claims-based-identity claims wif adfs2.0 acs

所有,

我一直在阅读基于声明的身份验证,但我仍然有点困惑.我正在努力巩固我的理解,特别是与SharePoint 2010/2013有关,但也通常(即ASP.NET).

我对各种技术术语的理解如下:

  • WIF(Windows Identity Foundation) - 用于消费身份声明和构建自定义STS等的.NET库(API集).

  • 依赖方 - 索赔的"消费者"(即SharePoint,ASP.NET网站等).索赔是通过STS(仅限IP-STS?)提供的.

  • STS(安全令牌服务) - 一种发布安全令牌的专用Web服务.有两种口味,有些STS可能同时都有两种口味?

    • RP-STS(依赖方安全令牌服务)
    • IP-STS(身份提供商安全令牌服务)
  • 可信身份提供程序(SharePoint术语) - AKA.IP-STS.

  • SharePoint 2010/2013 STS - 使用WIF开发的SharePoint Service应用程序,仅用作RP-STS.充当许多用户可配置的可信身份提供商(IP-STS)的可插入聚合点.如果需要,可以使用WIF手工构建.

  • ADFS 2.0 - 专门用于仅针对Active Directory实例联合组织的Windows角色.公开使用WIF构建的IP-STS端点.我对ADFS 2.0的理解是它不允许您"聚合"其他身份提供者 - 它只允许您针对可能不是本地的特定AD实例进行身份验证,因此需要联合以支持SSO .

  • Windows Azure ACS 2.0 - 专门用于联合任何已配置的第三方身份提供商(即Microsoft帐户,Google,Facebook,ADFS 2.0)的服务.充当其他身份提供商的可插入聚合点,其作用有点像依赖方.公开使用WIF构建的IP-STS端点.它聚合的身份提供商不一定是IP-STS,但ACS 2.0使用其内置的IP-STS通过声明公开所有内容.

SharePoint 2010/2013问题:

我的主要问题是我看过几篇关于ADFS 2.0和SharePoint的文章,几乎就像你用ADFS 2.0 取代内置的SharePoint 2010/2013 STS一样!希望这只是我的阅读,但它让我理解困惑.

  1. 你真的可以这样做吗?如果你真的想要,我认为没有理由你不能,但我认为你需要禁用SharePoint STS并进行大量的手动配置?
  2. 你为什么想做这个?

2.1.SharePoint STS已经支持AD身份验证作为OOTB可信身份提供程序选项,如果您想使用ADFS 2.0,则可以将其添加为我见过博客帖子的可信身份提供程序(IP-STS).

2.2.根据我对ADFS 2.0的描述,为SharePoint STS更改它实际上会给你一个不太灵活的解决方案吗?

声明:

  • 您可以将SharePoint STS配置为使用ADFS 2.0 aa Trusted Identity Provider(IP-STS),以及代替本地AD.
  • 您可以将SharePoint STS配置为使用Windows Azure ACS 2.0 aa Trusted Identity Provider(IP-STS).这样可以很容易地支持第三方身份验证提供程序,而无需使用WIF开发自己的IP-STS.

ASP.NET WIF问题:

  1. 我的理解是,为了执行信任协商和索赔交换,RP-STS必须与IP-STS通信.它是否正确?
  2. 因此,在使用WIF构建基于声明的ASP.NET Web应用程序(依赖方)时,您可以开发/重用并在应用程序中包含RP-STS,并将其设置为与IP具有信任关系. STS?如果没有,您可以使用WIF直接从IP-STS获取身份吗?

写这篇文章帮助我解决了这个问题,但是对于不准确/过于简单/完全不真实的任何帮助都将不胜感激!

问候,

迈克尔泰勒

nzp*_*mad 6

SP STS是RP-STS,即它没有凭证存储来进行身份验证.这就是为什么你必须将它与ADFS联合起来,这是一个IP-STS,即它在其域中对AD进行身份验证.

ADFS可以是RP-STS或IP-STS,例如,您可以使用路径 - SP应用程序. - > SP STS - > ADFS(RP) - > ADFS(IP) - > AD.

与SP联合的IP-STS不必是ADFS - 它可以是支持WS-Federation协议的任何东西,例如OpenAM,PingIdentity,Azure ACS.重点是在链的末尾必须有一个凭证存储来进行身份验证.

此凭证存储不必是AD,例如ADFS - > IdentityServer - > SQL Server.

ADFS可以与许多不同的IP-STS联合.用户可以选择使用哪一个进行身份验证.

ADFS支持SAML2和WS-Fed作为联合协议.SP RP-STS仅支持WS-Fed.

以前版本的ADFS(即1.0)是Windows Server 2008上安装的版本.您必须下载ADFS 2.0.不幸的是,有许多博客文章使用术语ADFS但引用ADFS 1.0.当心 - ADFS 1.0是一个完全不同的野兽.

WIF只是一组.NET类.它不是STS.你可以去WIF - > IP-STS或WIF - > RP-STS - > IP-STS等.

希望这回答了你的一些问题,但如果还有什么不清楚的话就会消失.

更新:

我所知道的唯一包含WIF的STS是ADFS和IdentityServer.上面提到的大多数都是基于Java的.

您选择ADFS而不是IWA的原因是,它们都针对AD进行身份验证,但只有ADFS添加了SSO和联合功能.此外,ADFS还提供所有基于声明的管道 - SAML令牌等.

联合ADFS时,您可以对多个凭据存储进行身份验证.但是,如果您选择对ADFS实例进行身份验证,则它会使用AD存储库.安装ADFS时,它会在其域中查找AD实例.这是它使用的那个.