用于 LDAP 表单身份验证的 Web.config 文件示例

更新时间: 2007年6月

 

上一次修改主题: 2015-03-09

在将 Microsoft Office Project Server 2007 配置为针对 LDAP 数据存储区进行基于表单的身份验证时,必须指定数据存储区所在的位置,以及网站的用户帐户在目录结构中的存储位置。您可以使用网站的配置文件 (Web.config) 来指定这些设置。此外,还必须对 SharePoint 管理中心网站的 Web.config 文件进行相同的更改。

本文提供 Project Server 2007 在针对 LDAP 数据存储区进行基于表单的身份验证时,需要对 Web.config 文件进行更改的两个示例。有关如何实现这些更改的详细信息,请参阅创建针对 LDAP 数据存储区进行表单身份验证的 Project Web Access 网站

Web.config 文件示例 1

下面是基于表单身份验证的网站的 Web.config 文件所需的 <membership> 部分的一个简单示例。

在此基本示例中,您拥有对单个成员资格提供程序使用基于表单的身份验证的单个网站。LDAP 目录存储区位于名为“Contoso1”的计算机上,并配置为使用端口 50000。将对与 userFilter 匹配的 userContainer 中的对象进行身份验证。在此示例中,这些对象将是由 CN=Users,OU=WSS,O=nondomain,C=US 定义的容器中的所有项。

<membership defaultProvider="LDAPMembership">

<providers>

<add

name="LDAPMembership"

type="Microsoft.Office.Server.Security.LDAPMembershipProvider,Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral,PublicKeyToken=71E9BCE111E9429C"

server="Contoso1"

port="50000"

useSSL="false"

userDNAttribute="distinguishedName"

userNameAttribute="cn"

userContainer="CN=Users,OU=Support,O=Contoso,C=US"

userObjectClass="user"

userFilter="(ObjectClass=user)"

scope="Subtree"

otherRequiredUserAttributes="sn,givenname,cn" />

</providers>

</membership>

下表介绍了在上述 Web.config 文件示例中使用的参数值。

参数 说明

name="LDAPMembership"

指定成员资格提供程序名称。此值必须与在管理中心的“身份验证提供程序”页上指定的成员资格提供程序名称相匹配。在此示例中,"LDAPMembership" 是成员资格提供程序名称的值。

server="Contoso1"

指定承载 LDAP 服务的计算机的名称。在此示例中,此值表示目录服务位于服务器 "Contoso1" 上。例如,这可能是 Active Directory 应用程序模式 (ADAM) 的实例或 Windows Server Active Directory 目录服务环境中的域控制器。

port="50000"

指定 LDAP 所侦听的端口,默认端口为 389。

useSSL="false"

指定 SSL 未用于与 LDAP 数据存储区进行通信。

当前仅支持到 LDAP 提供程序的匿名绑定。请确保此值设置为 false

userDNAttribute="distinguishedName"

用户的可分辨名称的属性。此名称显示在 Windows SharePoint Services 中。

userNameAttribute="cn"

用户名称对象的属性 - 在此示例中为一个公用名 (cn)。

userContainer="CN=Users,OU=WSS,O=nondomain,C=US"

定义用户容器的可分辨全名。

userObjectClass="user"

用户对象的类 - 此例中为 user

userFilter="(ObjectClass=user)"

userFilter 是用于 LDAP 查询的标准筛选器,该筛选器可以设置为控制应对其进行身份验证的一部分用户。

将此示例中的筛选器配置为仅对用户对象进行解析。您可以拥有 OU 容器中的组和其他对象。

scope="Subtree"

设置所选内容的搜索范围。

otherRequiredUserAttributes="sn,givenname,cn" />

要返回的其他用户属性。sn 是姓。givenname 是名。cn 是由其他两个属性构成的相对可分辨名称(例如,“John Doe”)。

Web.config 文件示例 2

下面是一个更加复杂的示例。在此方案中,公司使用两个应用表单身份验证的网站,一个用于 Intranet,另一个用于 Extranet。每个网站使用一个不同的 LDAP 成员资格提供程序。

在此方案中,用于管理中心、Intranet 网站和 Extranet 网站的 Web.config 文件必须以不同的方式进行配置。每个网站的 Web.config 文件必须包含有关其用户访问该网站所需的特定 LDAP 成员资格提供程序的信息。

管理中心的 Web.config 文件

在此方案中,管理中心的 Web.config 文件必须包含有关两个成员资格提供程序(LDAPMembershipLDAPMembership2)的信息。管理中心的 Web.config 文件的 <membership> 部分如下:

<membership defaultProvider="LDAPMembership">

<providers>

<add

server="ps2007ldap"

port="50000"

useSSL="false"

userDNAttribute="distinguishedName"

userNameAttribute="cn"

userContainer="CN=Users,OU=Support,O=fabricam,C=US"

userObjectClass="user"

userFilter="(ObjectClass=user)"

scope="Subtree"

otherRequiredUserAttributes="sn,givenname,cn" name="LDAPMembership"

type="Microsoft.Office.Server.Security.LDAPMembershipProvider, Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C" />

<add

server="ps2007ldap"

port="50000"

useSSL="false"

userDNAttribute="distinguishedName"

userNameAttribute="cn"

userContainer="CN=Users,OU=Extranet,O=fabricam,C=US"

userObjectClass="user"

userFilter="(&amp;(memberOf=CN=ProjectUsers,OU=Extranet,O=fabricam,C=US)(memberOf=CN=WSSUsers,OU=Extranet,O=fabricam,C=US))"

scope="Subtree"

otherRequiredUserAttributes="sn,givenname,cn" name="LDAPMembership2"

type="Microsoft.Office.Server.Security.LDAPMembershipProvider, Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C" />

</providers>

</membership>

Intranet 网站的 Web.config 文件

Intranet 网站的 Web.config 文件的 <membership> 部分如下:

<membership defaultProvider="LDAPMembership">

<providers>

<add

server="ps2007ldap"

port="50000"

useSSL="false"

userDNAttribute="distinguishedName"

userNameAttribute="cn"

userContainer="CN=Users,OU=Support,O=fabricam,C=US"

userObjectClass="user"

userFilter="(ObjectClass=user)"

scope="Subtree"

otherRequiredUserAttributes="sn,givenname,cn" name="LDAPMembership"

type="Microsoft.Office.Server.Security.LDAPMembershipProvider, Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C" />

</providers>

</membership>

Intranet 网站使用的是 LDAPMembership 成员资格提供程序,并对 CN=Users,OU=Support,O=fabricam,C=US 容器中的用户进行身份验证。

Extranet 网站的 Web.config 文件

Extranet 网站的成员资格提供程序被定义为 LDAPMembership2。Extranet 网站的 Web.config 文件的 <membership> 部分如下:

<membership defaultProvider="LDAPMembership">

<providers>

<add

server="ps2007ldap"

port="50000"

useSSL="false"

userDNAttribute="distinguishedName"

userNameAttribute="cn"

userContainer="CN=Users,OU=Extranet,O=fabricam,C=US"

userObjectClass="user"

userFilter="(&amp;(memberOf=CN=ProjectUsers,OU=Extranet,O=fabricam,C=US)(memberOf=CN=WSSUsers,OU=Extranet,O=fabricam,C=US))"

scope="Subtree"

otherRequiredUserAttributes="sn,givenname,cn" name="LDAPMembership2"

type="Microsoft.Office.Server.Security.LDAPMembershipProvider, Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C" />

</providers>

</membership>

Extranet 网站使用的是 LDAPMembership2 成员资格提供程序,并对与 LDAPMembership ("CN=Users,OU=Extranet,O=fabricam,C=US") 相同容器中的用户进行身份验证。但是,Extranet 网站使用筛选器 ="(&amp;(memberOf=CN=ProjectUsers,OU=Extranet,O=fabricam,C=US)(memberOf=CN=WSSUsers,OU=Extranet,O=fabricam,C=US))"。因此,只能对在该目录中定义的 ProjectUsersWSSUsers 组中的用户进行身份验证。另请注意 &amp;。它将替换在 LDAP 查询中使用的常规 &

示例 2 中的 <membership> 部分的格式与示例 1 的格式不同。它所包含的属性与示例 1 的属性仍完全相同,但二者的顺序不同。原因是,第二个示例已使用 Internet 信息服务管理器用户界面进行了编辑。

提示

使用 Internet 信息服务管理器用户界面会导致一个问题。那就是,<configuration> 元素被重写为 <configuration xmlns="https://schemas.microsoft.com/.NetConfiguration/v2.0">,这将导致 Windows SharePoint Services 中出现应用程序错误。有关详细信息,请参阅知识库文章 917238(https://go.microsoft.com/fwlink/?linkid=92744&clcid=0x804)。