使用 SharePoint 2010 和 Azure Access Control Service 的联合 SAML 身份验证(第 2 部分)

原文发布于 2011 年 5 月 7 日(星期六)

在本系列的第一篇文章 (https://blogs.technet.com/b/speschka/archive/2011/05/05/federated-saml-authentication-with-sharepoint-2010-and-azure-access-control-service-part-1.aspx(该链接可能指向英文页面)) 中,我介绍了如何配置 SharePoint 直接与 Azure Access Control (ACS) 服务建立信任关系,以及如何使用该信任联合 ADFS、Yahoo、Google 和 Windows Live 之间的身份验证,然后通过联合身份验证进入 SharePoint。在第二部分中,我准备采用类似的应用场景,但真正实施的应用场景几乎退回到第 1 部分 - 我们准备在 SharePoint 和 ADFS 之间建立典型的信任关系,但是要在 ADFS 中配置 ACS 作为身份提供程序,然后用它来重定向到登录名,之后再次回到 SharePoint。我认为,这种类型的信任,至少是 SharePoint 和 ADFS 之间的这种信任是更多 SharePoint 用户都熟悉的,所以今天正好切合许多公司正在使用的一种较常见的应用场景。

就像在第 1 部分中那样,我不打算描述设置和配置 ACS 的具体细节 - 这部分内容留给负责它的团队来完成。所以,对于第 2 部分,下面是建立连接的步骤:

1.        设置您的 SharePoint Web 应用程序和网站集(使用 ADFS 配置)。

  1.  
    1. 首先,应创建您的 SPTrustedIdentityTokenIssuer(ADFS 中的信赖方)以及 SharePoint Web 应用程序和网站集。确保您可以使用 ADFS 凭据登录网站。在我前面的一篇文章 (https://blogs.msdn.com/b/sharepoint_chs/archive/2010/11/25/sharepoint-2010-adfs-v2.aspx)中,我极其详尽地描述了完成此任务的步骤。

2.        打开访问控制管理页面

  1.  
    1. 登录 Windows Azure 管理门户。在左窗格中,单击“服务总线、访问控制和缓存”菜单。单击左窗格顶部(AppFabric 下)的“访问控制”,单击右窗格中您的命名空间,单击功能区的“管理”部分中的“访问控制服务”按钮。将打开“访问控制管理”页面。

3.        在 ADFS 和 ACS 之间创建信任

  1.  
    1. 在此步骤中,我们将在 ADFS 中配置 ACS 作为身份提供程序。首先,转到 ADFS 服务器,并打开 AD FS 2.0 管理控制台

    2. 进入“AD FS 2.0”>“信任关系”>“声明提供程序信任”节点,并单击右窗格中的“添加声明提供程序信任”链接

    3. 单击“开始”按钮启动向导

    4. 使用默认选项导入已联机发布的信赖方的相关数据。您需要使用的 URL 位于 ACS 管理门户中。返回到打开该门户的浏览器,在左窗格中,单击“信任关系”菜单下的“应用程序集成”链接。

    5. 复制为 WS 联合身份验证元数据显示的 URL,将其粘贴到 ADFS 向导的“联合身份验证元数据地址(主机名或 URL):”编辑框中,然后单击“下一步”按钮

    6. 键入显示名称,也可以添加一些注释,然后单击“下一步”按钮

    7. 保留允许所有用户访问身份提供程序的默认选项,然后单击“下一步”按钮

    8. 单击“下一步”按钮创建身份提供程序,保持该框为选中状态,以打开规则编辑器对话框,本节的其余部分非常类似于我在文章 https://blogs.technet.com/b/speschka/archive/2010/11/24/configuring-adfs-trusts-for-multiple-identity-providers-with-sharepoint-2010.aspx(该链接可能指向英文页面) 中介绍的关于在两个 ADFS 服务器之间设置信任的内容:

您需要创建规则以便传递您从 IP ADFS 服务器获得的所有声明。所以在规则对话框中,对于您要发送给 SharePoint 的每个声明,您都需要执行以下操作:

  1. 单击“添加规则”。
  2. 在“声明规则模板”下拉列表中,选择“传递”或“筛选传入声明”,然后单击“下一步”按钮。
  3. 为它提供一个声明名称,可以包括将要传递的声明的名称,这可能有用。对于“传入声明类型”下拉列表,选择要传递的声明类型(例如电子邮件地址)。我通常对所有选定的声明值保留默认选项“传递”。但如果您有不同的业务规则,则应选择适合您的选项,然后单击“完成”按钮。请注意,如果选择传递所有声明值,ADFS 将会显示警告对话框。

一旦您在 SharePoint 中为所需的每个声明都添加了传递声明,则可以关闭规则对话框。现在,对于 ADFS 配置的最后一部分,您需要找到 SharePoint 信赖方。单击“编辑声明规则”对话框,对于您在上一步中创建的每个传递声明规则,您也需要为 SharePoint 信赖方添加传递声明规则。这样,声明可以通过受信任的声明提供程序,从 ACS 流向 ADFS,再通过受信任的信赖方流出到 SharePoint。

您的 ADFS 配置现在已完成。

4.        在 ACS 中添加 ADFS 作为信赖方

  1.  
    1. 回到已打开门户的浏览器,单击左窗格中“信任关系”菜单下的信赖方应用程序链接
    2. 单击“添加链接”
    3. 填写“信赖方应用程序设置”部分
      1. 输入显示名称,如“ADFS 到 ACS”
      2. 使用默认的手动输入设置模式
      3. 在“领域”编辑框中,您需要输入 ADFS 将随请求发送的领域。事实证明,ADFS 有一个它在重定向到另一身份提供程序时发送的特定领域列表,因此不要使用在 SharePoint 中创建 SPTrustedIdentityTokenIssuer 时使用的领域。相反,建议您使用 https://yourFullyQualifiedAdfsServerName/adfs/services/trust
      4. 对于返回 URL,使用 https:// yourFullyQualifiedAdfsServerName /adfs/ls/。
      5. 令牌格式下拉列表可以是 SAML 2.0 或 1.1。因为令牌要发送给 ADFS 而非 SharePoint,并且 ADFS 支持 SAML 2.0 令牌,所以您不需要像直接连接到 SharePoint 时那样下拉到 SAML 1.1
      6. 可以将令牌生存期(秒)设置为任何所需的值。默认为 10 分钟。我将其设置为 3600,即 1 个小时。
    4. 填写“身份验证设置”部分
      1. 对于身份提供程序,您可以全选,除非您以前添加了同一 ADFS 服务器作为身份提供程序(如果您按照本系列文章中第一篇文章中的步骤操作,则会出现这种情况)。如果确实存在这种情况,则可以检查所有内容(指回到您现在设置为信赖方的同一 ADFS 服务器的身份提供程序除外)。
      2. 在“规则”组下,由于时间的关系,我会建议您遵循我在第 1 部分中解释过的规则组指导,如果您完成了第 1 部分,则只需从列表中选择该规则组即可。
    5. 在“令牌签名设置”中,可以保留默认选择的选项,即“使用服务命名空间证书(标准)”。

单击“保存”按钮,保存所做的更改,并创建信赖方。

现在,您应该能够使用 ADFS 或 ACS 登录到您的 SharePoint 网站。但有一点要记住,即 ADFS 将编写一个 Cookie 来记住您上次使用的身份提供程序。此后,它将不再提示您提供身份提供程序,除非您在 IE 中使用类似 InPrivate 浏览窗口的功能(我用超大字体突出显示这部分内容,因为它太容易被遗忘,是造成混乱的根源)。例如,下面是您第一次被重定向到 ADFS 服务器时,或使用 InPrivate 浏览器会话时看到的屏幕:

它的其余部分的工作方式就像我在本系列的第 1 部分中描述的那样(包括有关将电子邮件地址用于 Windows Live ID 的注意事项),因此我不准备再次张贴屏幕截图,因为它们看起来几乎完全相同。随着本系列文章的完成,现在您应该能够将 ADFS、ACS 和所有身份提供程序 ACS 支持成功整合到您的 SharePoint 2010 环境中。

这是一篇本地化的博客文章。请访问 Federated SAML Authentication with SharePoint 2010 and Azure Access Control Service Part 2 以查看原文