为 Project Server 2007 配置 SQL 成员资格提供程序表单身份验证

Project 2007

更新时间: 2007年1月

 

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

本文内容:

本文介绍如何配置 SQL 成员资格提供程序表单身份验证,以使用户能够访问 Microsoft Office Project Server 2007。

SQL 成员资格提供程序是一个标识管理系统,此系统使用表单身份验证来管理 Office Project Server 2007 用户帐户信息。

表单身份验证与 Project Server 身份验证(Microsoft Office Project Server 2003 中提供的身份验证机制)非常相似,因为用户需要输入用户名和密码才能访问。二者的主要区别是:在表单身份验证中,用户及其密码列表存储在成员资格存储区而不是 Project Server 数据库。例如,Active Directory、LDAP 存储区和 SQL 成员资格提供程序存储区就是此类存储区。

有关 Office Project Server 2007 身份验证的详细信息,请参阅规划 Project Server 2007 身份验证方法

将 SQL 成员资格提供程序存储区与 Office Project Server 2007 结合使用需要执行以下操作:

  • 配置基础结构   这一步骤有两部分:创建 SQL 成员资格提供程序数据库,用于存储您的用户帐户信息;创建 IIS 网站,对其进行表单身份验证的用户可以通过此网站访问 Project Server。

  • 在 IIS 中更新新网站的配置文件   向指定 SQL 成员资格提供程序的该网站的 Web.config 文件添加字符串。

  • 设置用户帐户   创建要添加和导入到 SQL 成员资格提供程序存储区的所有经过表单身份验证的用户的 XML 列表。

    Note注意
    若要为 Office Project Server 2007 配置 SQL 成员资格提供程序,您必须在服务器场配置(与基本安装相反)中安装 Office Project Server 2007,并且必须具有有效的 Project Web Access 网站。

如果配置可在其中将用户添加到 SQL 成员资格提供程序数据库的基础结构,需要执行以下步骤:

  • 创建 SQL 成员资格提供程序数据库

  • 扩展 Web 应用程序来为经过表单身份验证的用户创建网站,以便访问 Project Server。

  • 为 SQL 成员资格提供程序配置新网站。

执行以下步骤可创建 SQL 成员资格提供程序数据库(称为 SQL 成员资格存储区)。使用 SQL 成员资格提供程序访问 Office Project Server 2007 的所有经过表单身份验证的帐户都需要将其帐户信息导入到此数据库。

创建 SQL 成员资格存储区时用于登录 SQL Server 的 Windows 帐户将是以后将用户添加到数据库所需的表单管理员帐户。

在 SQL Server 上创建成员资格提供程序数据库
  1. 打开命令提示符窗口。

  2. 从任何目录中,输入:<Windows 目录>\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe -A m -E

    这将创建一个名为 aspnetdb 的数据库,它对您现有的 Windows 凭据进行身份验证(-E 选项)。

    下表介绍了可用于 aspnet_regsql.exe 命令的其他重要参数。有关该命令的所有选项的完整列表,请使用 -? 选项。

     

    参数 说明

    -d

    指定不同于默认名称 (aspnetdb) 的数据库名称。在参数后面输入数据库名称。例如:-d aspnetdb_testdbs

    -S

    在远程 SQL Server 上创建数据库。在参数后面输入使用其创建数据库的 SQL Server 实例名称。例如:-s SQLServerInstance

    -E

    对当前 Windows 凭据进行身份验证

    -U

    如果使用的是 SQL 身份验证,则指定要进行身份验证的 SQL Server 用户名称。在参数后面输入用户名。此参数需要 -P 参数。

    -P

    如果使用的是 SQL 身份验证,则指定要进行身份验证的 SQL Server 密码。在参数后面输入密码。此参数需要 -U 参数。

通过扩展包含 Project Web Access 网站的 Web 应用程序,您可以创建新的 IIS 网站,经过表单身份验证的用户可以通过此网站访问 Project Web Access。此网站以及使用在同一 Web 应用程序中创建的不同身份验证机制的任何其他 IIS 网站将具有相同的内容,因为它们共享同一内容数据库。例如,Web 应用程序可以通过使用 Windows 身份验证的 IIS 网站向员工公开其内容,但您也可以将 Web 应用程序扩展为具有一个使用表单身份验证的单独的 IIS 网站以使供应商能够访问相同的内容。因为存在两个单独的 IIS 网站,所以用户需要使用不同的端口号访问它们。例如:

  • http://contoso/pwa:80(针对 Windows 身份验证)

  • http://contoso/pwa:81(针对表单身份验证 (SQL Server))

当经过表单身份验证的用户尝试登录到 Project Web Access 时,请验证他们是否使用的是经过表单身份验证的新网站的 URL。

扩展 Web 应用程序
  1. 通过单击“开始”,指向“管理工具”,然后单击“SharePoint 3.0 管理中心”来打开 SharePoint 管理中心网站。

  2. 在“应用程序管理”选项卡上,选择“创建或扩展 Web 应用程序”。

  3. 在下一页中,选择“扩展现有 Web 应用程序”。

  4. 如果出现“选择 Web 应用程序”对话框,则选择要扩展的网站(例如“默认网站”),然后单击“确定”。

  5. 选择“新建 IIS 网站”。

  6. 将端口号更改为 81(或更改为另一个未使用的端口)。验证“说明”和“路径”号是否更改正确。

  7. 请注意“负载平衡的 URL”框中的 URL,这是经过表单身份验证的新网站的 URL。您可以使用框中提供的默认 URL 或输入不同的 URL。

  8. 单击“确定”。

利用下面的步骤,可以为表单身份验证和 SQL 成员资格提供程序设置新网站。

为 SQL 成员资格提供程序配置新网站
  1. 从“应用程序管理”页中,单击“验证提供程序”。

  2. 对于 Intranet 区域,单击“Windows”链接。

  3. 对于“验证类型”,选择“表单”。

  4. 在“成员资格提供程序名称”框中,输入:

    AspNetSqlMembershipProvider

  5. 单击“保存”。

您需要将 SQL 成员资格提供程序添加到新建的 IIS 网站的 Web.config 文件中。还需要对 Web 应用程序的经过 Windows 验证的网站的 Web.config 文件进行相同的更改。可以通过 IIS 管理器以及通过向该文件添加指向 SQL 成员资格存储区数据库 (aspnetdb) 的项来实现此操作。

Note注意
这需要在场中所有前端 Web 服务器上完成。
将 SQL 成员资格提供程序添加到 Web.config 文件
  1. 打开前端 Web 服务器上的 Internet 信息服务管理器,这可以通过以下操作实现:单击“开始”,选择“运行”命令,在“打开”框中键入 Inetmgr,然后单击“确定”。

  2. 在 IIS 管理器中,展开计算机名,然后单击网站文件夹。

  3. 在网站文件夹下,您将看到以前创建的网站。右键单击此网站并选择“浏览”。

  4. 右键单击 web.config,选择“打开”,然后使用编辑工具(如记事本)打开该文件。

  5. 将下面的项添加到 Web.config 中(最好将其添加到紧跟 </ConfigSections> 部分之后):

    <connectionStrings>

    <remove name="LocalSqlServer" />

    <add name="LocalSqlServer" connectionString="data source=127.0.0.1;Integrated Security=SSPI;Initial Catalog=aspnetdb" />

    </connectionStrings>

    上面的示例使用 127.0.0.1 一值作为 data source 参数。如果 SQL Server 安装在本地计算机上,则这是正确的。如果 SQL Server 安装在另一台计算机(例如,名为“Computer1”的计算机和名为“Project”的 SQL Server 实例)上,则 <add> 元素应为:

    <add name="LocalSqlServer" connectionString="data source=Computer1\Project;Integrated Security=SSPI;Initial Catalog=aspnetdb" />

  6. 请确保连接字符串指向将在其中存储用户帐户的 SQL 成员资格提供程序数据库(例如,Intial Catalog=aspnetdb)。

    Note注意
    对 Web 应用程序的 Windows 网站的 Web.config 文件进行相同的更改。还需要在场中的所有前端 Web 服务器上进行此更改。

通过 SQL 成员资格提供程序设置经过表单身份验证的用户帐户时,需要执行以下操作:

  • 创建用户帐户 XML 数据

  • 将用户数据导入到成员资格存储区

  • 将新用户帐户添加到 Project Server 安全组

PjFormsAuthUpgrade.exe 工具随 Office Project Server 2007 一起安装;该工具使您能够将经过表单身份验证的用户添加到 SQL 成员资格存储区。在这一步中,该工具用于生成包含添加到 SQL 成员资格存储区的用户帐户数据的 XML 文件。

Note注意
在后面的步骤中,PjFormsAuthUpgrade.exe 工具还将用于将用户数据导入到 SQL 成员资格提供程序数据库。
Note注意
不支持在基本或摘要式验证网站上运行 PjFormsAuthUpgrade.exe 工具。

PjFormsAuthUpgrade.exe 工具可用于生成名为 Users.xml 的文件。该工具可用于添加两种类型的用户:

  • 从 Project Server 2003 迁移的经过 Project Server 验证的用户

  • 经过 Office Project Server 2007 表单身份验证的新用户

Office Project Server 2007 不支持在 Project Server 2003 中使用的 Project Server 身份验证方法。但是,如果要使用 Office Project Server 2007,您可以从 Project Server 2003 迁移经过 Project Server 验证的用户,然后将这些用户添加到 SQL 成员资格存储区,以允许这些用户通过表单身份验证访问 Office Project Server 2007。

Note注意
有关迁移到 Office Project Server 2007 的详细信息,请参阅简介:Project Server 2007 迁移指南

在此过程中的第一步是使用 PJFormsAuthUpgrade.exe 工具生成 Users.xml 文件。此文件将包含需要迁移到 SQL 成员资格存储区的所有用户。

PJFormsAuthUpgrade.exe 工具执行以下操作:

  • 根据 Office Project Server 2007 URL,搜索从 Project Server 2003 迁移的所有经过 Project Server 验证的用户。

  • 生成包括每个用户的帐户信息的 XML 文件,并且自动生成存储所需的其他信息(例如 GUID、登录名和密码)。

下面的步骤介绍了如何生成 Users.xml 文件。

Note注意
如果已将经过 Project Server 验证的用户从 Project Server 2003 迁移到 Office Project Server 2007,才需要执行这些步骤。如果只将新用户添加到 SQL 成员资格提供程序数据库,请转到下一节“为新用户配置 Users.xml 文件”。
为迁移的用户创建 Users.xml 文件
  1. 在命令提示符窗口中,导航到包含 PJFormsAuthUpgrade.exe 的目录(默认位置为 Program Files\Microsoft Office Servers\12.0\Bin)。在命令提示符处键入下面的文本并针对您的环境对其进行自定义:

    PjFormsAuthUpgrade.exe -createusersfile -log forms.log -passwordlength 8 -url http://localhost/pwa -usersfile users.xml

     

    选项 说明

    -createusersfile

    对从 Project Server 2003 迁移的经过 Project Server 验证的帐户创建 Users.xml 文件。

    -log

    生成用于解决运行 PjFormsAuthUpgrade.exe 工具时出现的问题的日志文件。您可以指定日志文件的路径。如果未指定路径,则将在包含 PjFormsAuthUpgrade.exe 工具的目录中创建此文件。

    -passwordlength

    指定将为每个帐户生成的随机密码的长度。可以在文件中编辑此密码,或允许用户通过 SQL 成员资格存储区使用密码提示问题选项来重置密码。

    Note注意
    不会将经过 Project Server 验证的密码从 Project Server 2003 迁移到 Office Project Server 2007。

    -URL

    指定搜索迁移帐户的数据库时所需的 Office Project Server 2007 URL。

    -usersfile

    创建 Users.xml 文件。您可以指定文件的路径。如果未指定路径,则将在包含 PjFormsAuthUpgrade.exe 工具的目录中创建此文件。

    例如:

    PjFormsAuthUpgrade.exe -createusersfile -log c:\mydir\forms.log -passwordlength 8 -url http://contoso/pwa -usersfile users.xml

    使用针对您的环境自定义的选项运行命令。如果命令运行成功,则将在包含 PjFormsAuthUpgrade.exe 工具的目录中生成 Users.xml 文件(因为未指定任何路径)。

    Note注意
    如果在 Users.xml 文件中未返回任何用户,则此工具未找到任何需要迁移到 SQL 成员资格存储区的经过 Project Server 验证的已迁移用户。
  2. 在记事本中打开 Users.xml 文件。此文件应类似于下面的示例:

    <?xml version="1.0"?>

    <Users xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/Project/Users.xsd">

    <UpdateUser>

    <DisplayName>Bob Sutton</DisplayName>

    <EmailAddr>BobSutton@contoso.com</EmailAddr>

    <LogonName>Bob_Sutton</LogonName>

    <Password>?rBt8Rv(</Password>

    <Guid>c4572c86-7452-4d29-9d28-1a8a49ad5f89</Guid>

    <PasswordQuestion>Please add a password question?</PasswordQuestion>

    <PasswordAnswer> Please add a password question?</PasswordAnswer>

    </UpdateUser>

    <UpdateUser>

    <DisplayName>Peter Krebbs</DisplayName>

    <EmailAddr>PeterKrebbs@contoso.com</EmailAddr>

    <LogonName>Peter_Krebbs</LogonName>

    <Password>!rHtNv)</Password>

    <Guid>d2372c86-7452-4d29-8d67-1a8a49ad5f34</Guid>

    <PasswordQuestion>Please add a password question?</PasswordQuestion>

    <PasswordAnswer> Please add a password question?</PasswordAnswer>

    </UpdateUser>

    </Users>

  3. 将数据添加到 <PasswordQuestion><PasswordAnswer> 元素。SQL 成员资格提供程序数据库可能需要这些元素,以使用户在忘记密码时可以重置其密码。

  4. 如果您不希望用户使用自动生成的密码,则更新文件以更改密码。

  5. 保存文件。

    Note注意
    如果您不打算向 SQL 成员资格存储区添加新用户,则跳过下一节并转到“将用户数据导入到成员资格存储区”一节。

如果未添加从 Project Server 2003 迁移的任何用户,则按照下面的步骤将新用户添加到 SQL 成员资格提供程序数据库中。按照下面的步骤获取 Project Web Access 中不存在的新用户,并将其添加到 Project Server 和 SQL 成员资格存储区。

为新用户创建 Users.xml 文件
  1. 在命令提示符窗口中,导航到包含 PJFormsAuthUpgrade.exe 的目录(默认位置为 Program Files\Microsoft Office Servers\12.0\Bin)。在命令提示符处键入下面的文本并针对您的环境对其进行自定义:

    PjFormsAuthUpgrade.exe -createemptyusersfile -log forms.log -url http://localhost/pwa -usersfile users.xml

     

    选项 说明

    -createemptyusersfile

    创建 Users.xml 文件。此文件可用作模板以添加新用户。

    -log

    生成用于解决运行 PjFormsAuthUpgrade 工具时出现的问题的日志文件。您可以指定日志文件的路径。如果未指定路径,则将在包含 PjFormsAuthUpgrade.exe 工具的目录中创建此文件。

    -URL

    指定 Project Server URL。

    -usersfile

    创建 Users.xml 文件。您可以指定要创建的文件的路径。如果未指定路径,则将在包含 PjFormsAuthUpgrade.exe 工具的目录中创建此文件。

    运行命令。如果成功,则将在包含 PjFormsAuthUpgrade.exe 工具的目录中生成 Users.xml 文件(因为未指定任何路径)。

  2. 在记事本中打开 Users.xml 文件。

    此文件应类似于下面的示例:

    <?xml version="1.0"?>

    <Users xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/Project/Users.xsd">

    <CreateUser>

    <DisplayName>Display Name</DisplayName>

    <EmailAddr>newuser@project.com</EmailAddr>

    <LogonName>LogonName</LogonName>

    <Password>Password</Password>

    <Guid>ab3ad5fe-6b56-41e8-a9d8-44af71b91dc4</Guid>

    <PasswordQuestion>Password Question</PasswordQuestion>

    <PasswordAnswer>Password Answer</PasswordAnswer>

    </CreateUser>

    <UpdateUser>

    <DisplayName>Display Name</DisplayName>

    <EmailAddr>upgradeduser@project.com</EmailAddr>

    <LogonName>LogonName</LogonName>

    <Password>Password</Password>

    <Guid>2e8c4617-1f38-42d2-8496-9c85eb761b5f</Guid>

    <PasswordQuestion>Password Question</PasswordQuestion>

    <PasswordAnswer>Password Answer</PasswordAnswer>

    </UpdateUser>

    </Users>

  3. 使用新用户的信息修改 Users.xml 文件。此文件应类似于下面的示例:

    <?xml version="1.0"?>

    <Users xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/Project/Users.xsd">

    <CreateUser>

    <DisplayName>Jeff Smith</DisplayName>

    <EmailAddr>JSmith@test.com</EmailAddr>

    <LogonName>JeffSmith</LogonName>

    <Password>p@ssword1</Password>

    <Guid>ab3ad5fe-6b56-41e8-a9d8-44af71b91dc4</Guid>

    <PasswordQuestion>Password Question</PasswordQuestion>

    <PasswordAnswer>Password Answer</PasswordAnswer>

    </CreateUser>

    </Users>

    如果要添加其他用户,则添加其他 <CreateUser> 节并对这些节进行编辑以包含新用户的信息。请确保增大您使用的 GUID,以便两个用户不会使用相同的 GUID(还可以以编程方式增大 XML 文件中的 GUID)。

    要导入到 Project Server 中的数据现在包含在 Users.xml 文件中。因为这是一个 XML 文件,所以可以手动或以编程方式修改此文件。如果要更改工具自动生成的密码、显示名称、电子邮件地址或 GUID,您可以使用所选择的任何机制来对其进行修改。

为新用户或迁移的用户创建 Users.xml 文件之后,您可以使用 PJFormsAuthUpgrade.exe 工具将用户导入到 SQL 成员资格提供程序存储区。

在此过程中,此工具还会使用任何新用户帐户信息来更新 Office Project Server 2007。直到将新用户添加到 Project Server 安全组,他们才能访问 Project Server。

还将使用经过 Project Server 验证的已迁移用户的新帐户信息在 Office Project Server 2007 上更新这些用户的帐户。迁移的用户应仍然是其现有安全组的成员。

Note注意
允许 SQL 成员资格数据库的数据库所有者将用户添加到 SQL 成员资格存储区。请确保在添加经过表单身份验证的用户时使用此帐户登录。
运行 PjFormsAuthUpgrade.exe 工具以将用户导入到成员资格存储区
  • 在命令提示符窗口中,导航到包含 PjFormsAuthUpgrade.exe 的目录,并使用下面的命令:

    PjFormsAuthUpgrade.exe -log forms.log -url http://localhost/pwa -usersfile users.xml

    例如:

    PjFormsAuthUpgrade.exe -log c:\mydir\forms.log -url http://contoso/pwa -usersfile users.xml

    这会将迁移的用户添加到 SQL 成员资格存储区,并更新 Project Server 中这些用户的帐户信息。

    将新用户添加到 SQL 成员资格存储区和 Project Server。

此时,新的和迁移的 Project Server 2003 用户都在 SQL 成员资格存储区和 Project Server 中。但是,必须将新用户添加到 Project Server 安全组,他们才能通过 Project Web Access 登录到 Project Server。如上所述,迁移的 Project Server 2003 用户将仍然属于其现有安全组。

将新用户添加到 Project Server 安全组
  1. 在 Project Web Access 中,转到“服务器设置”页。

  2. 在“服务器设置”页中,转到“安全性”一节,然后单击“管理用户”。

  3. 在“管理用户”页的“用户名”列表中,单击刚刚添加的经过表单身份验证的新用户帐户的名称。

  4. 在用户的“编辑用户”页中,转到“安全组”一节。从“可用组”列表中,选择要将用户添加到的组,然后单击“添加”以将组移动到“包含此用户的组”列表。

  5. 对用户帐户进行所需的任何其他更改,然后单击“保存”。

您也可以使用 Stsadm.exe 工具通过命令提示符将用户添加到安全组。当使用该工具时,您应作为在 Project Web Access 中具有管理员权限的用户运行它。

通过命令提示符将新用户添加到 Project Server 安全组
  1. 在命令提示符窗口中,转到以下目录:Program Files\Common Files\Microsoft Shared\Web server extensions\12\BIN。

  2. 运行以下命令:

    stsadm -o projmodifyuseringroup -url http://<servername>/pwa -groupname <group to which you want to add user> -username <forms user> -addorremove add

    例如:

    staadm -o projmodifyuseringroup -url http://contoso/pwa -groupname administrators -username Brad Sutton -addremove add

Note注意
当使用命令行选项向 Project Server 安全组添加用户时,您只能通过每次运行可执行文件,将一个用户添加到一个安全组。但是,管理员可以创建脚本以自动完成此过程。

将用户添加到安全组后,用户可以使用经过 Project Web Access 表单身份验证的网站访问 Project Server。

当用户要登录到 Project Web Access 时,他们必须使用经过表单身份验证的网站(在前面扩展 Web 应用程序时创建)的 URL。

登录到 Project Web Access
  1. 在 Web 浏览器中,转到经过表单身份验证的网站的 URL:http://<计算机名>:<端口号>/PWA

  2. 使用您的用户名和密码作为新添加的用户登录。

显示: