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

时间:2013-01-10 10:31:42

标签: wif claims-based-identity acs adfs2.0 claims

所有

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

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

  • WIF(Windows Identity Foundation) - 一个.NET库(一组API),用于使用身份声明和构建自定义STS等。

  • 依赖方 - 索赔的“消费者”(即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. 为什么你想这样做?
  3. 2.1。 SharePoint STS已经支持AD身份验证作为OOTB可信身份提供程序选项,如果您想使用ADFS 2.0,则可以将其添加为我见过博客帖子的可信身份提供程序(IP-STS)。 / p>

    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问题:

    1. 我的理解是,为了执行信任协商和索赔交换,RP-STS必须与IP-STS通信。它是否正确?
    2. 因此,在使用WIF构建基于声明的ASP.NET Web应用程序(依赖方)的上下文中,您将开发/重用并在应用程序中包含RP-STS并将其设置为与之建立信任关系一个IP-STS?如果没有,你可以使用WIF从IP-STS直接获得身份吗?
    3. 写这篇文章帮助我解决了这个问题,但是对于不准确/过于简单/完全不真实的任何帮助都将不胜感激!

      此致

      迈克尔泰勒

1 个答案:

答案 0 :(得分: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实例。这是它使用的那个。

相关问题