身份验证示例 (Windows SharePoint Services)

本文内容:

  • SQL 成员资格提供程序

  • Active Directory 成员资格提供程序

  • Web SSO 与 ADFS

本文包括几个常见的表单身份验证提供程序和 Web 单一登录 (SSO) 验证提供程序的示例配置设置。

SQL 成员资格提供程序

下表为使用 ASP.NET 表单身份验证连接到 SQL 成员资格提供程序提供了 Web.config 文件项示例。

配置步骤 说明和 Web.config 文件项示例

启用 ASP.NET 表单身份验证。

可以在 SharePoint 管理中心网站的“编辑验证”页上将特定区域的验证类型设置为表单身份验证。

这会自动将在 Web.config 文件验证元素中为该区域指定的模式更改为表单。

例如:

<authentication mode="Forms">

</authentication>

注册成员资格提供程序。

如果要使用本地服务器上的 Microsoft SQL Server 数据库软件作为成员资格提供程序数据库,并为成员资格提供程序名称指定 AspNetSqlMembershipProvider,则可能不需要对 Web.config 文件进行任何其他更改。在这种情况下,如果 machine.config 文件具有正确的 AspNetSqlMembershipProvider 配置,则可以将其用于 Windows SharePoint Services,而不用进行任何更改。

如果 machine.config 文件中的默认配置不适用(例如,如果要在远程服务器上使用 SQL Server 数据库),则必须针对 Web 应用程序和管理中心网站编辑 Web.config 文件以在成员资格提供程序数据库的 connectionStrings 元素中指定连接信息。

例如:

<connectionStrings>

<add name="SqlProviderConnection" connectionString="server=SQLSERVERMACHINE;database=aspnetdb;Trusted_Connection=True" />

</connectionStrings>

将 SQLSERVERMACHINE 替换为在其上安装了 SQL Server 成员资格数据库的服务器计算机的名称。

接下来,添加 membershipproviders 元素以在 Web.config 文件中注册成员资格提供程序。因为已经在 machine.config 文件中注册了默认提供程序,所以必须在 <add> 元素前面添加 <remove> 元素。

例如:

<membership defaultProvider="AspNetSqlMembershipProvider">

<providers>

<remove name="AspNetSqlMembershipProvider" />

<add connectionStringName="SqlProviderConnection" name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

</providers>

</membership>

对于 Web 应用程序和管理中心网站,membership 元素必须包含在 Web.config 文件的 system.web 元素内。

注册角色管理器(可选)。

通过将 roleManager 元素添加到 Web.config 文件的 system.web 元素中,可以使用 ASP.NET 的默认角色提供程序。例如:

<roleManager enabled="true" />

前面的语法使用在 machine.config 文件中定义的 AspNetSqlRoleProvider。此角色管理器可以连接到 SQL Server 的本地或远程实例中的 ASPNETDB 数据库。如果要将远程服务器上的 SQL Server 数据库用作角色提供程序数据库,则必须编辑 Web.config 文件以指定远程数据库服务器的连接信息。

例如:

<connectionStrings>

  <add

    name="SqlProviderConnection"

    connectionString="server=SQLSERVERMACHINE; database=aspnetdb; Trusted_Connection=True"

    />

</connectionStrings>

将 SQLSERVERMACHINE 替换为承载 SQL 数据库的远程服务器的名称。可以为成员资格提供程序和角色管理器指定相同的 connectionStringName 元素值,因此不需要为角色提供程序添加新的 connectionStrings 元素。但是,如果要对角色提供程序使用不同的数据库,则必须为角色提供程序添加一个单独的 connectionStrings 元素。

接下来,需要添加 roleManagerproviders 元素以在 Web.config 中注册 roleManager 提供程序。因为已经在 machine.config 文件中注册了默认提供程序,所以必须在 <add> 元素前面添加 <remove> 元素。

例如:

<roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">

<providers>

<remove name="AspNetSqlRoleProvider" />

<add connectionStringName="SqlProviderConnection" applicationName="/" description="Stores and retrieves roles data from the local Microsoft SQL Server database" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

</providers>

</roleManager>

对于 Web 应用程序和管理中心网站,roleManager 元素必须包含在 Web.config 文件的 system.web 元素内。

注册 HTTP 模块。

不适用

Active Directory 成员资格提供程序

下表为通过 ASP.NET 表单身份验证使用 Active Directory 目录服务成员资格提供程序提供了 Web.config 文件项示例。

备注

这将仅适用于单个域的情况。

配置步骤 说明和 Web.config 文件项示例

启用 ASP.NET 表单身份验证。

可以在管理中心的“编辑验证”页上将特定区域的身份验证类型设置为表单身份验证。

这会自动将在 Web.config 文件的验证元素中为该区域指定的模式更改为表单。

例如:

<authentication mode="Forms">

</authentication>

还可以在 forms 元素中指定登录页 URL,例如:

<authentication mode="Forms">

    <forms loginUrl="/_layouts/login.aspx"></forms>

</authentication>

注册成员资格提供程序。

如果要将 Active Directory 服务器用于成员资格提供程序,则必须编辑 Web.config 文件以注册成员资格提供程序。为此,必须在 connectionStrings 元素中指定 Active Directory 服务器连接信息。

例如:

<connectionStrings>

  <add name="ADConnectionString"

   connectionString=

    "LDAP://DirectoryServer/CN=Users,DC=DirectoryServer " />

</connectionStrings>

将 DirectoryServer 替换为成员资格目录服务器的名称。

<membership defaultProvider="MembershipADProvider">

    <providers>

        <add name="MembershipADProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

                connectionStringName="ADConnectionString"/>

    </providers>

</membership>

备注

前面的示例未指定帐户凭据。如果未指定帐户凭据,则使用应用程序的进程标识来访问 Active Directory。

如果需要用另一个帐户访问 Active Directory,则可以在 connectionUsernameconnectionPassword 属性中指定不同的帐户凭据,这意味着将以纯文本形式提供用户名和密码。因此,建议对此配置部分进行加密。有关详细信息,请参阅下面的文章:

注册角色管理器(可选)。

注册 HTTP 模块。

不适用

Web SSO 与 ADFS

Microsoft Windows Server 2003 R2 操作系统引入了 Active Directory 联合身份验证服务 (ADFS),这使组织能够安全地共享用户的标识信息。ADFS 提供 Web 单一登录 (SSO) 技术以在一个联机会话过程中向多个 Web 应用程序验证用户。

ADFS 附带以下两个成员资格和角色提供程序对:

  • SingleSignOnMembershipProvider/SingleSignOnRoleProviderWindows Server 2003 R2 附带的标准成员资格提供程序和角色提供程序

  • SingleSignOnMembershipProvider2/SingleSignOnRoleProvider2在部分信任环境中运行的成员资格提供程序和角色提供程序。这些提供程序包含在 Windows Server 2003 R2 Service Pack 2 中。

SingleSignOnMembershipProvider/SingleSignOnRoleProvider

下表为使用标准提供程序的 Web SSO ADFS 环境提供了 Web.config 文件项示例。

配置步骤 说明和 Web.config 文件项示例

启用 ASP.NET 表单身份验证。

<system.web>

 <!-mode=[Windows|Forms|Passport|None]>

 <authentication mode="Forms" />

</system.web>

注册成员资格提供程序。

<membership defaultProvider="SingleSignOnMembershipProvider">

  <providers>

    <add

      name="SingleSignOnMembershipProvider"

      type="System.Web.Security.SingleSignOn.SingleSignOnMembershipProvider, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

      fs="https://FEDERATIONSERVER/adfs/fs/federationserverservice.asmx"

      />

  </providers>

</membership>

对于 fs 属性,将 FEDERATIONSERVER 替换为实际的服务器名称。

membership 元素必须包含在 Web.config 文件的 system.web 元素内。

注册角色管理器(可选)。

<roleManager enabled="true" defaultProvider="SingleSignOnRoleProvider">

  <providers>

    <add

      name="SingleSignOnRoleProvider"

      type="System.Web.Security.SingleSignOn.SingleSignOnRoleProvider, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

      fs="https://FEDERATIONSERVER/adfs/fs/federationserverservice.asmx"

      />

  </providers>

</roleManager>

对于 fs 属性,需要将 FEDERATIONSERVER 替换为实际的服务器名称。

注册 HTTP 模块。

 <httpModules>

  <add name="Identity Federation Services Application Authentication Module" type="System.Web.Security.SingleSignOn.WebSsoAuthenticationModule, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null" />

</httpModules>

SingleSignOnMembershipProvider2/SingleSignOnRoleProvider2

如果要实现第二个 ADFS 提供程序集,则用于注册成员资格提供程序和角色管理器的设置不同。下表为 Web SSO ADFS 环境(使用在部分信任环境中运行的提供程序)提供了 Web.config 文件项示例。

配置步骤 说明和 Web.config 文件项示例

启用 ASP.NET 表单身份验证。

<system.web>

 <!-mode=[Windows|Forms|Passport|None]>

 <authentication mode="Forms" />

</system.web>

注册成员资格提供程序。

<membership defaultProvider="SingleSignOnMembershipProvider2">

  <providers>

    <add

       name="SingleSignOnMembershipProvider2"

       type="System.Web.Security.SingleSignOn.SingleSignOnMembershipProvider2, System.Web.Security.SingleSignOn.PartialTrust, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

      fs=https://FEDERATIONSERVER/adfs/fs/federationserverservice.asmx

/>

</providers>

</membership>

对于 fs 属性,将 FEDERATIONSERVER 替换为实际的服务器名称。

membership 元素必须包含在 Web.config 文件的 system.web 元素内。

注册角色管理器(可选)。

<roleManager enabled="true" defaultProvider="SingleSignOnRoleProvider2">

  <providers>

    <add

      name="SingleSignOnRoleProvider2"

      type="System.Web.Security.SingleSignOn.SingleSignOnRoleProvider2, System.Web.Security.SingleSignOn.PartialTrust, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

      fs="https://FEDERATIONSERVER/adfs/fs/federationserverservice.asmx"

      />

  </providers>

</roleManager>

对于 fs 属性,需要将 FEDERATIONSERVER 替换为实际的服务器名称。

注册 HTTP 模块。

 <httpModules>

  <add name="Identity Federation Services Application Authentication Module" type="System.Web.Security.SingleSignOn.WebSsoAuthenticationModule, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null" />

</httpModules>

下载此书籍

本主题包含在以下可下载书籍内,以方便您阅读和打印:

有关可下载书籍的完整列表,请参阅 Windows SharePoint Services 的可下载书籍(该链接可能指向英文页面)