驗證範例

本文內容:

  • SQL 成員資格提供者

  • Active Directory 成員資格提供者

  • LDAP 成員資格提供者

  • Web SSO 與 AD FS

本文包含數個常見表單驗證與網頁單一登入 (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>

以您安裝 SQL Server 成員資格資料庫的伺服器電腦名稱取代 *SQLSERVERMACHINE*。

接著,新增 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>

membership 元素必須同時包含在 Web 應用程式與管理中心網站之 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>

以架設 SQL 資料庫的遠端伺服器名稱取代 *SQLSERVERMACHINE*。您可以為成員資格提供者與角色管理員指定相同的 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>

roleManager 元素必須同時包含在 Web 應用程式與管理中心網站之 Web.config 檔案的 system.web 元素內。

註冊 HTTP 模組。

不適用

Active Directory 成員資格提供者

下表提供使用 ASP.NET 表單驗證以使用Active Directory 目錄服務成員資格提供者的 Web.config 檔案項目範例。

注意

僅適用於單一網域的情況。

設定步驟 描述與 Web.config 檔案項目範例

開啟 ASP.NET 表單驗證。

您可以在管理中心的 [編輯驗證] 頁面上,將特定區域的驗證類型設為表單驗證。

這會自動將 Web.config 檔案的驗證元素中為該區域指定的模式變更為表單。

例如:

<authentication mode="Forms">
</authentication>

您也可以在表單元素中指定登入頁面 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 模組。

不適用

LDAP 成員資格提供者

下表提供搭配輕量型目錄存取通訊協定 (LDAP) 成員資格提供者使用 ASP.NET 表單驗證的 Web.config 檔案項目範例。

設定步驟 描述與 Web.config 檔案項目範例

開啟 ASP.NET 表單驗證。

您可以從管理中心的 [編輯驗證] 頁面,將特定區域的驗證類型設為表單驗證。

這會自動將 Web.config 檔案的驗證元素中為該區域指定的模式變更為表單。

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

您需要變更 serveruserContainer 屬性的指定值以符合您的環境。

註冊角色管理員 (選用)。

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

您需要變更 servergroupContainer 屬性的指定值以符合您的環境。

註冊 HTTP 模組。

不適用

Web SSO 與 AD FS

Microsoft Windows Server 2003 R2 作業系統推出 Active Directory Federation Services (AD FS),可讓組織安全地共用使用者的身分識別資訊。AD FS 提供網頁單一登入 (SSO) 技術,以在單一連線工作階段期間,針對多個 Web 應用程式驗證使用者。

AD FS 隨附下列兩組成員資格與角色提供者:

  • SingleSignOnMembershipProvider/SingleSignOnRoleProvider   Windows Server 2003 R2 隨附的標準成員資格提供者與角色提供者。

  • SingleSignOnMembershipProvider2/SingleSignOnRoleProvider2   在部分信任環境中運作的成員資格提供者與角色提供者。Windows Server 2003 R2 的 Service Pack 2 隨附這些提供者。

SingleSignOnMembershipProvider/SingleSignOnRoleProvider

下表為使用標準提供者的 Web SSO AD FS 環境,提供 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

如果您要實作第二組 AD FS 提供者,註冊成員資格提供者與角色提供者的設定會不同。下表為使用在部分信任環境中運作之提供者的 Web SSO AD FS 環境,提供 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>

下載本書

本主題隨附於下列可下載的叢書中,以便於閱讀與列印:

請參閱 Office SharePoint Server 2007 可下載的內容 (英文) 上提供的完整叢書清單。