为基于声明的 Web 应用程序配置基于表单的身份验证 (SharePoint Server 2010)

 

适用于: SharePoint Foundation 2010, SharePoint Server 2010

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

本文中描述的各个过程旨在:

  • 使您能够为 Microsoft SharePoint Server 2010 基于声明的 Web 应用程序配置基于窗体的身份验证。

  • 帮助您升级已配置为使用基于窗体的身份验证的现有 Office SharePoint Server 2007 Web 应用程序,以将其用于 SharePoint Server 2010。

升级到 SharePoint Server 2010 之后,将为早先的登录配置您的 Microsoft Office SharePoint Server 2007 Web 应用程序。对于已配置为使用 Windows 身份验证的 Office SharePoint Server 2007 Web 应用程序,无需执行额外的步骤即可升级。但对于已配置为使用基于窗体的身份验证(或 Web SSO 身份验证)的 Office SharePoint Server 2007 Web 应用程序,必须先将 Office SharePoint Server 2007 Web 应用程序转换为声明身份验证,然后才能在 SharePoint Server 2010 中使用它。在将 Office SharePoint Server 2007 Web 应用程序转换为声明身份验证后,为基于窗体的身份验证(或 Web SSO 身份验证,视情况而定)配置 Web 应用程序区域。最后,请将用户和权限迁移到 SharePoint Server 2010。

本文内容:

  • 将 Web 应用程序转换为声明身份验证

  • 使用管理中心将基于窗体的 Web 应用程序配置为使用 LDAP 提供程序

  • 配置 LDAP Web.Config 文件

  • 使用 Windows PowerShell 将基于窗体的 Web 应用程序配置为使用 LDAP 提供程序

  • 将用户和权限从 SharePoint Server 2007 中迁移到 SharePoint Server 2010

将 Web 应用程序转换为声明身份验证

执行以下过程中的各个步骤可使用 Windows PowerShell 将现有 Web 应用程序转换为声明身份验证。

将 Web 应用程序转换为声明身份验证

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

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

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

  4. 单击“SharePoint 2010 Management Shell”。

  5. 在 Windows PowerShell 命令提示符处,键入以下命令:

    $w = Get-SPWebApplication "http://<server>/"
    $w.UseClaimsAuthentication = "True";
    $w.Update()
    
    $w.ProvisionGlobally()
    

备注

我们建议您在执行命令行管理任务时使用 Windows PowerShell。Stsadm 命令行工具已被弃用,仍然包含该工具是为了支持与之前产品版本的兼容性。

使用管理中心将基于窗体的 Web 应用程序配置为使用 LDAP 提供程序

执行以下过程中的各个步骤可使用管理中心为基于声明的 Web 应用程序配置基于窗体的身份验证。

使用管理中心为基于声明的 Web 应用程序配置基于窗体的身份验证

  1. 确保执行此过程的用户帐户是网站集管理员。

  2. 在管理中心的“应用程序管理”下,选择“管理 Web 应用程序”。

  3. 在功能区上,选择“新建”。

  4. 在“新建 Web 应用程序”对话框的“身份验证”部分,选择“基于声明的身份验证”。

  5. 在“身份验证类型”部分,选择“启用 ASP.NET 成员身份和角色提供程序”。

  6. 键入成员资格提供程序名称和角色管理器名称。在本文所述的示例 Web.Config 文件中,成员资格提供程序的名称为 membership,角色管理器的名称为 rolemanager

  7. 单击“确定”创建 Web 应用程序。

配置 LDAP Web.Config 文件

在成功创建 Web 应用程序(如上述过程中所述)后,请修改以下 Web.Config 文件:

  • 管理中心 Web 应用程序 Web.Config 文件

  • 安全令牌服务 Web.Config 文件

  • 基于窗体的身份验证且基于声明的 Web 应用程序 Web.Config 文件

配置管理中心 Web.Config 文件

  1. 通过在命令提示符处键入 INETMGR 来打开 IIS 管理器。

  2. 转到 IIS 中的“SharePoint 管理中心”。

  3. 右键单击“SharePoint 管理中心”并选择“浏览”。

  4. 打开 Web.Config 文件。

  5. 找到 <Configuration> <system.web> 部分并添加以下条目:

<membership defaultProvider="AspNetSqlMembershipProvider">
      <providers>
        <add name="membership" 
             type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" 
             server="yourserver.com" 
             port="389" 
             useSSL="false" 
             userDNAttribute="distinguishedName" 
             userNameAttribute="sAMAccountName" 
             userContainer="OU=UserAccounts,DC=internal,DC=yourcompany,DC= distinguishedName (of your userContainer)" 
             userObjectClass="person" 
             userFilter="(ObjectClass=person)" 
             scope="Subtree" 
             otherRequiredUserAttributes="sn,givenname,cn" />
      </providers>
    </membership>
    <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider" > 
      <providers>
        <add name="roleManager" 
             type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
             server="yourserver.com" 
             port="389"
             useSSL="false"
             groupContainer="DC=internal,DC=yourcompany,DC= distinguishedName (of your groupContainer)"
             groupNameAttribute="cn"
             groupNameAlternateSearchAttribute="samAccountName"
             groupMemberAttribute="member"
             userNameAttribute="sAMAccountName"
             dnAttribute="distinguishedName"
             groupFilter="((ObjectClass=group)"
             userFilter="((ObjectClass=person)"
             scope="Subtree" />
      </providers>
 </roleManager>

重要

在添加上述条目之后,保存并关闭 Web.Config 文件。

配置安全令牌服务 Web.Config 文件

  1. 通过在命令提示符处键入 INETMGR 来打开 IIS 管理器。

  2. 转到“SharePoint Web Services”网站。

  3. 转到“SecurityTokenServiceAppliction”子网站。

  4. 右键单击“SharePoint 管理中心”并选择“浏览”。

  5. 打开 Web.Config 文件。

  6. 找到 <Configuration> <system.web> 部分并添加以下条目:

<membership>
      <providers>
        <add name="membership" 
             type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" 
             server="yourserver.com" 
             port="389" 
             useSSL="false" 
             userDNAttribute="distinguishedName" 
             userNameAttribute="sAMAccountName" 
             userContainer="OU=UserAccounts,DC=internal,DC=yourcompany,DC=com" 
             userObjectClass="person" 
             userFilter="(&amp;(ObjectClass=person))" 
             scope="Subtree" 
             otherRequiredUserAttributes="sn,givenname,cn" />
      </providers>
    </membership>
    <roleManager enabled="true" > 
      <providers>
        <add name="rolemanager" 
             type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
             server="yourserver.com" 
             port="389"
             useSSL="false"
             groupContainer="DC=internal,DC=yourcompany,DC=com"
             groupNameAttribute="cn"
             groupNameAlternateSearchAttribute="samAccountName"
             groupMemberAttribute="member"
             userNameAttribute="sAMAccountName"
             dnAttribute="distinguishedName"
             groupFilter="(&amp;(ObjectClass=group))"
             userFilter="(&amp;(ObjectClass=person))"
             scope="Subtree" />
      </providers>
    </roleManager>

重要

在添加上述条目之后,保存并关闭 Web.Config 文件。

配置基于窗体的身份验证且基于声明的 Web 应用程序 Web.Config 文件

  1. 通过在命令提示符处键入 INETMGR 来打开 IIS 管理器。

  2. 转到“声明窗体”网站。

  3. 右键单击“声明窗体”并选择“浏览”。

  4. 打开 Web.Config 文件。

  5. 找到 <Configuration> <system.web> 部分。

  6. 找到 <membership defaultProvider="i"> 部分并添加以下条目:

<add name="membership" 
             type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" 
             server="yourserver.com" 
             port="389" 
             useSSL="false" 
             userDNAttribute="distinguishedName" 
             userNameAttribute="sAMAccountName" 
             userContainer="OU=UserAccounts,DC=internal, DC=yourcompany,DC=com" 
             userObjectClass="person" 
             userFilter="(&amp;(ObjectClass=person))" 
             scope="Subtree" 
             otherRequiredUserAttributes="sn,givenname,cn" />

找到 <roleManager defaultProvider="c" enabled="true" cacheRolesInCookie="false"> 部分并添加以下条目:

<add name="roleManager" 
             type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
             server="yourserver.com" 
             port="389"
             useSSL="false"
             groupContainer="DC=internal,DC=yourcompany,DC=com"
             groupNameAttribute="cn"
             groupNameAlternateSearchAttribute="samAccountName"
             groupMemberAttribute="member"
             userNameAttribute="sAMAccountName"
             dnAttribute="distinguishedName"
             groupFilter="(&amp;(ObjectClass=group))"
             userFilter="(&amp;(ObjectClass=person))"
             scope="Subtree" />

重要

在添加上述条目之后,保存并关闭 Web.Config 文件。

警告

不要覆盖此 Web.Config 文件中的任何现有条目。

使用 Windows PowerShell 将基于窗体的 Web 应用程序配置为使用 LDAP 提供程序

执行以下过程中的各个步骤可使用 Windows PowerShell 为基于声明的 Web 应用程序配置基于窗体的身份验证。

使用 Windows PowerShell 将基于窗体的 Web 应用程序配置为使用 LDAP 提供程序

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

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

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

  4. 单击“SharePoint 2010 Management Shell”。

  5. 在 Windows PowerShell 命令提示符处,键入以下命令:

    $ap = New-SPAuthenticationProvider -Name "ClaimsForms" -ASPNETMembershipProvider "membership" -ASPNETRoleProviderName "rolemanager"
    $wa = New-SPWebApplication -Name "Claims Windows Web App" -ApplicationPool "Claims App Pool" -ApplicationPoolAccount "internal\appool"
      -Url https://servername -Port 80 -AuthenticationProvider $ap
    

    备注

    ApplicationPoolAccount 参数的值必须是服务器场上的托管帐户。

  6. 在成功创建身份验证提供程序和 Web 应用程序后,请使用本文的“配置 LDAP Web.Config 文件”一节中提供的示例条目来修改以下 Web.Config 文件:

    • 管理中心 Web 应用程序 Web.Config 文件

    • 安全令牌服务 Web.Config 文件

    • 基于窗体的身份验证且基于声明的 Web 应用程序 Web.Config 文件

  7. 在修改这些 Web.Config 文件后,请创建一个 SPClaimsPrinciple 和一个网站集,如以下示例所示:

    $cp = New-SPClaimsPrincipal -Identity "membership:SiteOwner" -IdentityType FormsUser
    $sp = New-SPSite http://servername:port -OwnerAlias $cp.Encode() -Template "STS#0"
    

备注

我们建议您在执行命令行管理任务时使用 Windows PowerShell。Stsadm 命令行工具已被弃用,仍然包含该工具是为了支持与之前产品版本的兼容性。

将用户和权限从 SharePoint Server 2007 中迁移到 SharePoint Server 2010

执行以下过程中的各个步骤可使用 Windows PowerShell 迁移用户和权限。

将用户和权限从 SharePoint Server 2007 中迁移到 SharePoint Server 2010

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

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

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

  4. 单击“SharePoint 2010 Management Shell”。

  5. 在 Windows PowerShell 命令提示符处,键入以下命令:

    $w = Get-SPWebApplication "http://<server>/"
    $w.MigrateUsers(True)
    

备注

我们建议您在执行命令行管理任务时使用 Windows PowerShell。Stsadm 命令行工具已被弃用,仍然包含该工具是为了支持与之前产品版本的兼容性。