使用 SAML 安全令牌配置身份验证 (SharePoint Server 2010)

 

适用于: SharePoint Foundation 2010, SharePoint Server 2010

上一次修改主题: 2016-11-30

本文中的过程说明如何对 Microsoft SharePoint Server 2010 的基于声明的 Web 应用程序使用安全声明标记语言 (SAML) 安全令牌来配置身份验证。

SAML 登录通常在企业联合方案中用来向业务合作伙伴提供访问权。此外,还部署 SAML 登录以向其帐户驻留在作为未包含 SharePoint Server 2010 的林的一部分的域中的内部用户提供访问权。

在对 SharePoint Server 2010 的基于声明的 Web 应用程序使用 SAML 安全令牌来配置身份验证之前,必须配置运行 Active Directory 联合身份验证服务 (AD FS) 2.0 的服务器。有关配置要运行 AD FS 2.0 服务器的信息,请参阅 AD FS 2.0 Deployment Guide。

本文内容:

  • 使用 Windows PowerShell 配置身份提供程序 STS (IP-STS) Web 应用程序

  • 配置信赖方 STS (RP-STS) Web 应用程序

  • 使用 Windows PowerShell 在 IP-STS 和 RP-STS 之间建立信任关系

  • 使用 Windows PowerShell 导出受信任的 IP-STS 证书

  • 使用 Windows PowerShell 为声明映射定义唯一标识符

  • 创建新的 SharePoint Web 应用程序并将其配置为使用 SAML 登录

使用 Windows PowerShell 配置身份提供程序 STS (IP-STS) Web 应用程序

执行以下过程以使用 Windows PowerShell 配置基于声明的 SharePoint Web 应用程序。

使用 Windows PowerShell 配置身份提供程序 STS (IP-STS) Web 应用程序

  1. 验证您是否满足以下最低要求:请参阅 Add-SPShellAdmin

  2. 在“开始”菜单上,单击“所有程序”。

  3. 单击“Microsoft SharePoint 2010 产品”。

  4. 单击“SharePoint 2010 Management Shell”。

  5. 从 Windows PowerShell 命令提示符处,创建一个 x509Certificate2 对象,如以下示例所示:

    $cert = New-Object
    System.Security.Cryptography.X509Certificates.X509Certificate2("path to cert file")
    
  6. 创建要用于可信验证提供程序的声明类型映射,如以下示例所示:

    New-SPClaimTypeMapping "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
    -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
    
  7. 通过先为 realm 参数创建值来创建受信任的登录提供程序,如以下示例所示:

    $realm = "urn:" + $env:ComputerName + ":domain-int"
    
  8. signinurl 参数创建值,以指向安全令牌服务 Web 应用程序,如以下示例所示:

    $signinurl = "https://test-2/FederationPassive/"
    
  9. 使用与声明映射 ($map1.InputClaimType) 中相同的 IdentifierClaim 值创建可信登录提供程序,如以下示例所示:

    $ap = New-SPTrustedIdentityTokenIssuer -Name
    "WIF" -Description "Windows® Identity Foundation" -Realm
    $realm -ImportTrustCertificate $cert
    -ClaimsMappings $map1[,$map2..] -SignInUrl
    $signinurl -IdentifierClaim $map1.InputClaimType
    
  10. 通过先为当前用户的应用程序池帐户创建值来创建 Web 应用程序,如以下示例所示:

    $account = "DOMAIN\" + $env:UserName
    

    备注

    应用程序池帐户必须为管理帐户。若要创建管理帐户,请使用 New-SPManagedAccount

  11. 为 Web 应用程序 URL 创建值 ($webappurl = "https://" + $env:ComputerName),如以下示例所示:

    $wa = New-SPWebApplication -name "Claims WIF"
    -SecureSocketsLayer -ApplicationPool "SharePoint SSL"
    -ApplicationPoolAccount $account -Url $webappurl -Port 443
    -AuthenticationProvider $ap
    
  12. 通过先创建 claim 对象来创建网站,如以下示例所示:

    $claim = New-SPClaimsPrincipal
    -TrustedIdentityTokenIssuerr $ap -Identity
    $env:UserName
    
  13. 创建网站,如以下示例所示:

    $site = New-SPSite $webappurl -OwnerAlias
    $claim.ToEncodedString() -template "STS#0"
    

配置信赖方 STS (RP-STS) Web 应用程序

使用本节中的过程可配置信赖方 STS Web 应用程序。

配置信赖方 STS (RP-STS) Web 应用程序

  1. 打开 Active Directory 联合身份验证服务 (AD FS) 2.0 管理控制台。

  2. 在左窗格中,展开“策略”,然后选择“信赖方”。

  3. 在右窗格中,单击“添加信赖方”。此时将打开 Active Directory 联合身份验证服务 (AD FS) 2.0 配置向导。

  4. 在向导的第一页上,单击“开始”。

  5. 选择“手动输入信赖方配置”,然后单击“下一步”。

  6. 键入信赖方名称,然后单击“下一步”。

  7. 确保选中“Active Directory 联合身份验证服务(AD FS) 2.0 服务器配置文件”,然后单击“下一步”。

  8. 不要使用加密证书。单击“下一步”。

  9. 选择“启用对基于 Web 浏览器的联合身份验证的支持”。

  10. 键入 Web 应用程序 URL 的名称,并在名称后附加 /_trust/(例如:https://servername/_trust/)。单击“下一步”。

  11. 键入标识符名称(例如:urn:COMPUTERNAME:Geneva),再单击“添加”。单击“下一步”。

  12. 在“摘要”页上,单击“下一步”,然后单击“关闭”。此时将打开规则编辑器管理控制台。使用此控制台配置从 LDAP Web 应用程序到 SharePoint 的声明映射。

  13. 在左窗格中,展开“新建规则”,然后选择“预定义规则”。

  14. 选择“从 LDAP 属性存储区创建声明”。

  15. 在右窗格中,从“属性存储区”下拉列表中选择“企业 Active Directory 用户帐户存储区”。

  16. 在“LDAP 属性”下,选择“sAMAccountName”。

  17. 在“传出声明类型”下,选择“电子邮件地址”。

  18. 在左窗格中,单击“保存”。

使用 Windows PowerShell 与身份提供程序 STS (IP-STS) 建立信任关系

使用本节中的过程可与 IP-STS 建立信任关系。

使用 Windows PowerShell 与 IP-STS 建立信任关系

  1. 验证您是否满足以下最低要求:请参阅 Add-SPShellAdmin

  2. 在“开始”菜单上,单击“所有程序”。

  3. 单击“Microsoft SharePoint 2010 产品”。

  4. 单击“SharePoint 2010 Management Shell”。

  5. 从 Windows PowerShell 命令提示符处建立信任关系,如以下示例所示:

    $waurl = "https://" + $env:ComputerName
    $title = "SAML-Claims"
    

使用 Windows PowerShell 导出受信任的 IP-STS 证书

使用本节中的过程可导出要与其建立信任关系的 IP-STS 证书,然后将该证书复制到 Microsoft SharePoint Server 2010 可访问的位置。

使用 Windows PowerShell 导出受信任的 IP-STS 证书

  1. 验证您是否满足以下最低要求:请参阅 Add-SPShellAdmin

  2. 在“开始”菜单上,单击“所有程序”。

  3. 单击“Microsoft SharePoint 2010 产品”。

  4. 单击“SharePoint 2010 Management Shell”。

  5. 从 Windows PowerShell 命令提示符处导出受信任的 IP-STS 证书,如以下示例所示:

    $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("c:\geneva.cer")
    

使用 Windows PowerShell 为声明映射定义唯一标识符

使用本节中的过程可定义将用作声明映射的唯一标识符的电子邮件地址。通常,受信任的 STS 的管理员必须提供此信息,因为仅 STS 的所有者知道令牌中的哪个值对于每个用户始终是唯一的。请注意,受信任的 STS 的管理员可以创建一个 URI 来表示该电子邮件地址。

使用 Windows PowerShell 定义声明映射的唯一标识符

  1. 验证您是否满足以下最低要求:请参阅 Add-SPShellAdmin

  2. 在“开始”菜单上,单击“所有程序”。

  3. 单击“Microsoft SharePoint 2010 产品”。

  4. 单击“SharePoint 2010 Management Shell”。

  5. 从 Windows PowerShell 命令提示符处创建映射,如以下示例所示:

    $map = New-SPClaimTypeMapping -IncomingClaimType "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
    

创建新的身份验证提供程序

使用本节中的过程可创建 Web 应用程序将使用的新身份验证提供程序。

使用 Windows PowerShell 创建新的身份验证提供程序

  1. 验证您是否满足以下最低要求:请参阅 Add-SPShellAdmin

  2. 在“开始”菜单上,单击“所有程序”。

  3. 单击“Microsoft SharePoint 2010 产品”。

  4. 单击“SharePoint 2010 Management Shell”。

  5. 从 Windows PowerShell 命令提示符处,创建新的身份验证提供程序,如以下示例所示。请注意,realm 是受信任的 STS 用来标识特定 SharePoint 场的参数。

    $realm = "urn:" + $env:ComputerName + ":Geneva"
    $ap = New-SPTrustedIdentityTokenIssuer -Name "Geneva" -Description "Geneva" -Realm $realm -ImportTrustCertificate $cert -ClaimsMappings $map -SignInUrl "https:// test-2/FederationPassive/" -IdentifierClaim "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
    

创建新的 SharePoint Web 应用程序并将其配置为使用 SAML 登录

在此步骤中,将创建并配置 Web 应用程序。

使用 Windows PowerShell 创建新的 SharePoint Web 应用程序并将其配置为使用 SAML 登录

  1. 验证您是否满足以下最低要求:请参阅 Add-SPShellAdmin

  2. 在“开始”菜单上,单击“所有程序”。

  3. 单击“Microsoft SharePoint 2010 产品”。

  4. 单击“SharePoint 2010 Management Shell”。

  5. 从 Windows PowerShell 命令提示符处,创建新的 SharePoint Web 应用程序并将其配置为使用 SAML 登录。请注意,必须将 "WebAppUrl""domain\admin" 替换为有效值。

    $wa = New-SPWebApplication -Name "SAML Sign-In" -SecureSocketsLayer -ApplicationPool "SAML Sign-In" -ApplicationPoolAccount "domain\admin" -
    Url "WebAppUrl" -Port 443 -AuthenticationProvider $ap
    

    备注

    您正在启用 SSL,由于使用了 SAML 登录,Cookie 将用作用户的单一登录票证。这将允许管理员在令牌的工期内授予对 SharePoint 资源的访问权,而无需对用户重新进行身份验证。若不使用 SSL,这些 Cookie 将易于被恶意用户劫持并用于模拟原用户。

完成这些过程之后,就创建了一个 SharePoint 网站并指定一个所有者。有关创建 SharePoint 网站的信息,请参阅创建网站集 (SharePoint Server 2010)