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

 

适用于: SharePoint Foundation 2010

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

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

SAML 登录一般用于企业联合方案中。例如,向商业伙伴提供访问权限。也可以部署 SAML 登录以向某些内部用户提供访问权限,这些内部用户的帐户所驻留的域并不是包含 SharePoint Foundation 2010 的林的一部分。

在对 SharePoint Foundation 2010 的基于声明的 Web 应用程序使用 SAML 安全令牌来配置身份验证之前,必须配置运行 Active Directory 联合身份验证服务 (AD FS) 2.0 的服务器。有关配置要运行 AD FS 2.0 的服务器的信息,请参阅 AD FS 2.0 部署指南(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=191723&clcid=0x804)(该链接可能指向英文页面)。

本文内容:

  • 使用 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 Foundation 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
    

    备注

    由于使用 SAML 登录,cookie 将作为用户单一登录票证,因此您将启用 SSL。这就使管理员能够在持有令牌期间授予 SharePoint 资源访问权限,而无需对用户重新进行身份验证。如果没有 SSL,这些 cookie 将很容易被恶意用户劫持,并用来模拟原始用户。

完成这些过程后,请创建一个 SharePoint 站点并分配一个所有者。有关创建 SharePoint 站点的详细信息,请参阅创建网站集 (SharePoint Foundation 2010)