您的位置:首页 > 运维架构 > 网站架构

身份验证示例(从微软网站上复制的,怕链接失效)

2009-11-16 21:50 246 查看
源文链接:http://technet.microsoft.com/zh-cn/library/cc262069.aspx

本文内容:

SQL 成员资格提供程序

Active Directory 成员资格提供程序

LDAP 成员资格提供程序

Web SSO 与 ADFS

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

SQL 成员资格提供程序

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

配置步骤 说明和 Web.config 文件项示例
启用 ASP.NET 表单身份验证。

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

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

例如:

[align=center][/align]复制代码
<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>


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


</connectionStrings>


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

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

例如:

<membership defaultProvider="AspNetSqlMembershipProvider">


<providers>


<remove name="AspNetSqlMembershipProvider" />


<addconnectionStringName="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 的默认角色提供程序。例如:

[align=center][/align]复制代码
<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
元素。

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

例如:

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


<providers>


<remove name="AspNetSqlRoleProvider" />


<addconnectionStringName="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 元素中为该区域指定的模式更改为表单。

例如:

[align=center][/align]复制代码
<authentication mode="Forms">
</authentication>

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

[align=center][/align]复制代码
<authentication mode="Forms">
<forms loginUrl="/_layouts/login.aspx"></forms>
</authentication>
注册成员资格提供程序。

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

例如:

<connectionStrings>


<addname="ADConnectionString" 


connectionString=


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


</connectionStrings>


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

<membership defaultProvider="MembershipADProvider">


<providers>


<addname="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,则可以在
connectionUsername
connectionPassword
属性中指定不同的帐户凭据,这意味着将以纯文本形式提供用户名和密码。因此,建议对此配置部分进行加密。有关详细信息,请参阅下面的文章:

如何:使用 DPAPI 在 ASP.NET 2.0 中对配置节进行加密(该链接可能指向英文页面) (http://go.microsoft.com/fwlink/?linkid=78123&clcid=0x804)(该链接可能指向英文页面)

如何:使用 RSA 在 ASP.NET 2.0 中对配置节进行加密(该链接可能指向英文页面) (http://go.microsoft.com/fwlink/?linkid=76778&clcid=0x804)(该链接可能指向英文页面) ,)

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

注册 HTTP 模块。

不适用

LDAP 成员资格提供程序

下表为将 ASP.NET 表单身份验证与轻型目录访问协议 (LDAP) 成员资格提供程序一起使用提供了 Web.config 文件项示例。

配置步骤 说明和 Web.config 文件项示例
启用 ASP.NET 表单身份验证。

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

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

[align=center][/align]复制代码
<system.web>
<!-mode=[Windows|Forms|Passport|None]>
<authentication mode="Forms" />
</system.web>
注册成员资格提供程序。

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

<membership defaultProvider="LdapMembershipProvider">


<providers>


<add


name="LdapMembership"


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


server="DC"


port="389"


useSSL="false"


userDNAttribute="distinguishedName"


userNameAttribute="sAMAccountName"


userContainer="CN=Users,DC=userName,DC=local"


userObjectClass="person"


userFilter="(|(ObjectCategory=group)(ObjectClass=person))"


scope="Subtree"


otherRequiredUserAttributes="sn,givenname,cn"


/>


</providers>


</membership>


您将需要更改为
server
userContainer
属性指定的值以匹配您的环境。

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

<roleManager defaultProvider="LdapRoleProvider" enabled="true" cacheRolesInCookie="true" cookieName=".PeopleDCRole">


<providers>


<add


name="LdapRoleProvider"


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


server="DC"


port="389"


useSSL="false"


groupContainer="DC=userName,DC=local"


groupNameAttribute="cn"


groupMemberAttribute="member"


userNameAttribute="sAMAccountName"


dnAttribute="distinguishedName"


groupFilter="(ObjectClass=group)"


scope="Subtree"


/>


</providers>


</roleManager>


您将需要更改为
server
groupContainer
属性指定的值以匹配您的环境。

注册 HTTP 模块。

不适用

Web SSO 与 ADFS

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

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

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

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

SingleSignOnMembershipProvider/SingleSignOnRoleProvider

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

配置步骤 说明和 Web.config 文件项示例
启用 ASP.NET 表单身份验证。

[align=center][/align]复制代码
<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>


<addname="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 表单身份验证。

[align=center][/align]复制代码
<system.web>
<!-mode=[Windows|Forms|Passport|None]>
<authentication mode="Forms" />
</system.web>
注册成员资格提供程序。

<membership defaultProvider="SingleSignOnMembershipProvider2">


<providers>


<addname="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>


<addname="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>


下载此书籍

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

Office SharePoint Server 2007 的规划和体系结构 - 第 2 部分(该链接可能指向英文页面)

有关可下载书籍的完整列表,请参阅 Office SharePoint Server 2007 的可下载书籍
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: