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

 

适用于: SharePoint Foundation 2010

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

本文中的过程提供指导信息,以便:

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

  • 帮助您升级现已配置为使用基于表单的身份验证的 Windows SharePoint Services 3.0 Web 应用程序,使它们能与 SharePoint Foundation 2010 配合工作。

升级到 SharePoint Foundation 2010 之后,将针对旧的登录来配置 Windows SharePoint Services 3.0 Web 应用程序。对于配置为使用 Windows 身份验证的 Windows SharePoint Services 3.0 Web 应用程序,无需为升级执行其他步骤。但是,对于配置为使用基于表单的身份验证或 Web SSO 身份验证的 Windows SharePoint Services 3.0 Web 应用程序,必须首先转换为基于声明的身份验证,然后才能在 SharePoint Foundation 2010 中使用 Windows SharePoint Services 3.0 Web 应用程序。将 Windows SharePoint Services 3.0 Web 应用程序转换为基于声明的身份验证后,针对基于表单的身份验证(或 Web SSO 身份验证,视情况而定)配置 Web 应用程序区域。请注意,在 SharePoint Foundation 2010 和 Windows SharePoint Services 3.0 中使用的成员资格提供程序和角色提供程序的名称必须匹配。最后一步是将用户和权限迁移到 SharePoint Foundation 2010。

本文内容:

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

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

  • 配置 LDAP Web.Config 文件

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

  • 将用户和权限从 Windows SharePoint Services 3.0 迁移到 SharePoint Foundation 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 Manager。

  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 Manager。

  2. 转到“SharePoint Web 服务”网站。

  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 Manager。

  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 命令行工具已被弃用,仍然包含该工具是为了支持与之前产品版本的兼容性。

将用户和权限从 Windows SharePoint Services 3.0 迁移到 SharePoint Foundation 2010

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

将用户和权限从 Windows SharePoint Services 3.0 迁移到 SharePoint Foundation 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 命令行工具已被弃用,仍然包含该工具是为了支持与之前产品版本的兼容性。