本文為機器翻譯文章。如需檢視英文版,請選取 [原文] 核取方塊。您也可以將滑鼠指標移到文字上,即可在快顯視窗顯示英文原文。
譯文
原文

在 SharePoint 2013 中設定宣告式 Web 應用程式的表單型驗證

 

適用版本:SharePoint Foundation 2013, SharePoint Server 2013

上次修改主題的時間:2016-12-16

摘要:了解如何使用 LDAP 提供者為新的 SharePoint 2013 Web 應用程式設定表單型驗證。

本文針對使用輕量型目錄存取通訊協定 (LDAP) 成員資格提供者的 SharePoint 2013 Web 應用程式,提供設定表單型驗證的指引。表單型驗證 (FBA) 是以 ASP.NET 成員資格與角色提供者驗證為基礎的身分識別管理系統。SharePoint 2013 中的表單型驗證是宣告式的驗證方法。如需更多使用表單型驗證的詳細資訊,請參閱<在 SharePoint 2013 中規劃使用者驗證方法>的「實作表單型驗證」小節。

重要事項 重要事項:
本文中的步驟適用於 SharePoint Server 2013。

如需標準測試實驗室中所設定這些程序的版本,請參閱<測試實驗室指南:示範 SharePoint Server 2013 的表單型宣告驗證>。

開始此作業前,您必須熟悉 在 SharePoint 2013 中規劃使用者驗證方法 中的概念。

注意事項 附註:
因為 SharePoint 2013 在 Internet Information Services (IIS) 中以網站形式運作,所以管理員與使用者均依賴瀏覽器提供的協助工具功能。SharePoint 2013 支援所支援瀏覽器的協助工具功能。如需詳細資訊,請參閱下列資源:

此設定分為下列階段,您必須依序執行:

在每個階段中,也必須依序執行此套程序。

如需改用 管理中心 建立新 Web 應用程式的替代方法,請參閱<利用 Windows PowerShell 建立使用表單型驗證的新 Web 應用程式>。

執行下列程序中的步驟,利用管理中心建立使用表單型驗證的 Web 應用程式。

利用管理中心建立使用表單型驗證的新 Web 應用程式
  1. 確認執行此程序的使用者帳戶為網站集合管理員。

  2. 啟動 SharePoint 2013 管理中心。

    • 若為 Windows Server 2008 R2:

      • 按一下 [開始],按一下 [Microsoft SharePoint 2013 產品],然後按一下 [SharePoint 2013 管理中心]。

    • 若為 Windows Server 2012:

      • 在 [開始] 畫面上,按一下 [SharePoint 2013 管理中心]。

        如果 [SharePoint 2013 管理中心] 不在 [開始] 畫面上:

      • 在 [電腦] 上按一下滑鼠右鍵,按一下 [所有應用程式],然後按一下 [SharePoint 2013 管理中心]。

    如需如何與Windows Server 2012互動的詳細資訊,請參閱 <常見管理工作及 Windows Server 2012 中的導覽

  3. 在管理中心的 [應用程式管理] 區段中,按一下 [管理 Web 應用程式]。

  4. 在功能區的 [參與] 群組中,按一下 [新增]。

  5. 在 [建立新的 Web 應用程式] 對話方塊的 [宣告驗證類型] 區段中,選取 [啟用表單型驗證 (FBA)]。

  6. 在 [ASP.NET 成員資格提供者名稱] 中輸入成員資格提供者的名稱,在 [ASP.NET 角色管理員名稱] 中輸入角色管理員的名稱。

    在本文描述的 Web.Config 檔案範例中,成員資格提供者是 membership,角色管理員是 rolemanager

  7. 視需要設定其他設定,然後按一下 [確定],建立這個新 Web 應用程式。

  8. 出現 [建立的應用程式] 對話方塊的提示時,按一下 [確定]。

成功建立 Web 應用程式後,請在伺服器陣列的每一部前端網頁伺服器中修改下列 Web.Config 檔案:

以下是設定管理中心網站的程序,讓網站能辨識和使用新的表單型成員資格提供者和角色管理員。

設定管理中心 Web.Config 檔案
  1. 按一下 [開始],然後指向 [系統管理工具],再按一下 [Internet Information Services (IIS) 管理員]。

  2. 在主控台樹狀目錄中,依序打開伺服器名稱、[網站]。

  3. 以滑鼠右鍵按一下 [SharePoint 管理中心 v4] 網站,然後按一下 [瀏覽]。

  4. 在資料夾視窗中,按兩下 Web.Config 檔案。

  5. <Configuration> 區段中,找到 <system.web> 區段,然後新增下列範例項目:

    <membership defaultProvider="AspNetSqlMembershipProvider">
          <providers>
            <add name="membership" 
                 type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" 
                 server="yourserver.com" 
                 port="389" 
                 useSSL="false" 
                 userDNAttribute="distinguishedName" 
                 userNameAttribute="sAMAccountName" 
                 userContainer="OU=UserAccounts,DC=internal,DC=yourcompany,DC=distinguishedName (of your userContainer)" 
                 userObjectClass="person" 
                 userFilter="(ObjectClass=person)" 
                 scope="Subtree" 
                 otherRequiredUserAttributes="sn,givenname,cn" />
          </providers>
        </membership>
        <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider" > 
          <providers>
            <add name="roleManager" 
                 type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
                 server="yourserver.com" 
                 port="389"
                 useSSL="false"
                 groupContainer="DC=internal,DC=yourcompany,DC=distinguishedName (of your groupContainer)"
                 groupNameAttribute="cn"
                 groupNameAlternateSearchAttribute="samAccountName"
                 groupMemberAttribute="member"
                 userNameAttribute="sAMAccountName"
                 dnAttribute="distinguishedName"
                 groupFilter="(ObjectClass=group)"
                 userFilter="(ObjectClass=person)"
                 scope="Subtree" />
          </providers>
     </roleManager>
    

    在前置項目中,替換下列內容:

    • <add name="membership" 中成員資格提供者的名稱。

    • server="yourserver.com" 中網域控制站 (您的 LDAP 伺服器) 的完整網域名稱 (FQDN)。

    • userContainer="OU=UserAccounts,DC=internal,DC=yourcompany,DC=distinguishedName (of your userContainer)" 中使用者容器的辨別名稱。

    • <add name="roleManager" 中角色管理員的名稱。

    • groupContainer="DC=internal,DC=yourcompany,DC=distinguishedName (of your groupContainer)" 中群組容器的辨別名稱。

    新增此項目之後,儲存並關閉 Web.Config 檔案。

以下是設定 Security Token Service 的程序,讓 Security Token Service 能辨識和使用新的表單型成員資格提供者和角色管理員。

設定 Security Token Service Web.Config 檔案
  1. 在 Internet Information Services (IIS) 管理員的主控台樹狀目錄中,開啟 [SharePoint Web 服務] 網站。

  2. 在主控台樹狀目錄的 [SecurityTokenServiceApplication] 上按一下滑鼠右鍵,然後按一下 [瀏覽]。

  3. 在資料夾視窗中,按兩下 Web.Config 檔案。

  4. <Configuration> 區段中,建立新的 <system.web> 區段,然後新增下列範例項目:

    <membership>
          <providers>
            <add name="membership" 
                 type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" 
                 server="yourserver.com" 
                 port="389" 
                 useSSL="false" 
                 userDNAttribute="distinguishedName" 
                 userNameAttribute="sAMAccountName" 
                 userContainer="OU=UserAccounts,DC=internal,DC=yourcompany,DC=com" 
                 userObjectClass="person" 
                 userFilter="(&amp;(ObjectClass=person))" 
                 scope="Subtree" 
                 otherRequiredUserAttributes="sn,givenname,cn" />
          </providers>
        </membership>
        <roleManager enabled="true" > 
          <providers>
            <add name="rolemanager" 
                 type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
                 server="yourserver.com" 
                 port="389"
                 useSSL="false"
                 groupContainer="DC=internal,DC=yourcompany,DC=com"
                 groupNameAttribute="cn"
                 groupNameAlternateSearchAttribute="samAccountName"
                 groupMemberAttribute="member"
                 userNameAttribute="sAMAccountName"
                 dnAttribute="distinguishedName"
                 groupFilter="(ObjectClass=group)"
                 userFilter="(ObjectClass=person)"
                 scope="Subtree" />
          </providers>
        </roleManager>
    

    在前置項目中,替換下列內容:

    • <add name="membership" 中成員資格提供者的名稱。

    • server="yourserver.com" 中網域控制站 (您的 LDAP 伺服器) 的完整網域名稱 (FQDN)。

    • userContainer="OU=UserAccounts,DC=internal,DC=yourcompany,DC=com" 中使用者容器的辨別名稱。

    • <add name="roleManager" 中角色管理員的名稱。

    • groupContainer="DC=internal,DC=yourcompany,DC=com" 中群組容器的辨別名稱。

    新增此項目之後,儲存並關閉 Web.Config 檔案。

以下是設定新 Web 應用程式的程序,讓 Web 應用程式能辨識和使用新的表單型成員資格提供者和角色管理員。

設定新的 Web 應用程式 Web.Config 檔案
  1. 在 Internet Information Services (IIS) 管理員的主控台樹狀目錄中,在剛建立的新 Web 應用程式的對應網站名稱上按一下滑鼠右鍵,然後按一下 [瀏覽]。

  2. 在資料夾視窗中,按兩下 Web.Config 檔案。

  3. <Configuration> 區段中,找到 <system.web> 區段。

  4. 找到 <membership defaultProvider="i"> 區段,然後新增下列範例項目到 <Providers> 區段:

    <add name="membership" 
                 type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" 
                 server="yourserver.com" 
                 port="389" 
                 useSSL="false" 
                 userDNAttribute="distinguishedName" 
                 userNameAttribute="sAMAccountName" 
                 userContainer="OU=UserAccounts,DC=internal,DC=yourcompany,DC=com" 
                 userObjectClass="person" 
                 userFilter="(&amp;(ObjectClass=person))" 
                 scope="Subtree" 
                 otherRequiredUserAttributes="sn,givenname,cn" />
    

    在前置項目中,替換下列內容:

    • <add name="membership" 中成員資格提供者的名稱。

    • server="yourserver.com" 中網域控制站 (您的 LDAP 伺服器) 的完整網域名稱 (FQDN)。

    • userContainer="OU=UserAccounts,DC=internal,DC=yourcompany,DC=com" 中使用者容器的辨別名稱。

  5. 找到 <roleManager defaultProvider="c" enabled="true" cacheRolesInCookie="false"> 區段,然後新增下列範例項目到 <Providers> 區段:

    <add name="roleManager" 
                 type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
                 server="yourserver.com" 
                 port="389"
                 useSSL="false"
                 groupContainer="DC=internal,DC=yourcompany,DC=com"
                 groupNameAttribute="cn"
                 groupNameAlternateSearchAttribute="samAccountName"
                 groupMemberAttribute="member"
                 userNameAttribute="sAMAccountName"
                 dnAttribute="distinguishedName"
                 groupFilter="(&amp;(ObjectClass=group))"
                 userFilter="(&amp;(ObjectClass=person))"
                 scope="Subtree" />
    

    在前置項目中,替換下列內容:

    • <add name="roleManager" 中角色管理員的名稱。

    • server="yourserver.com" 中網域控制站 (您的 LDAP 伺服器) 的完整網域名稱 (FQDN)。

    • groupContainer="DC=internal,DC=yourcompany,DC=com" 中群組容器的辨別名稱。

    新增前置項目之後,儲存並關閉 Web.Config 檔案。

    警告 警告:
    請勿覆寫此 Web.Config 檔案中的任何現有項目。

執行下列程序,利用 Windows PowerShell 建立使用表單型驗證的 Web 應用程式。

利用 Windows PowerShell 建立使用表單型驗證的新 Web 應用程式
  1. 確認您具備下列成員資格:

    • SQL Server 執行個體上的 securityadmin 固定伺服器角色。

    • 待更新之所有資料庫上的 db_owner 固定資料庫角色。

    • 正在執行 Windows PowerShell Cmdlet 之所在伺服器上的管理員群組。

    • 新增超越上述最低要求的必要成員資格。

    管理員可使用 Add-SPShellAdmin Cmdlet 以授權使用 SharePoint 2013 產品 Cmdlet。

    注意事項 附註:
    如果您不具備上述權限,請連絡安裝程式系統管理員或 SQL Server 系統管理員要求權限。如需 Windows PowerShell 權限的其他資訊,請參閱<Add-SPShellAdmin>。
  2. 啟動 SharePoint 2013 管理命令介面。

    • 若為 Windows Server 2008 R2:

      • 在 SharePoint 2013 環境中的 [開始] 功能表上,依序按一下 [所有程式]、[Microsoft SharePoint 2013 產品]、[SharePoint 2013 管理命令介面]。

    • 若為 Windows Server 2012:

      • 在 SharePoint 2013 環境的 [開始] 畫面上,按一下 [SharePoint 2013 管理命令介面]。

        如果 [SharePoint 2013 管理命令介面] 不在 [開始] 畫面上:

      • 在 [電腦] 上按一下滑鼠右鍵,按一下 [所有應用程式],然後按一下 [SharePoint 2013 管理命令介面]。

    如需如何與Windows Server 2012互動的詳細資訊,請參閱 <常見管理工作及 Windows Server 2012 中的導覽

  3. 在 Windows PowerShell 命令提示字元處,輸入下列項目:

    $ap = New-SPAuthenticationProvider  -ASPNETMembershipProvider <Membership Provider Name> -ASPNETRoleProviderName <Role Manager Name>
    
    $wa = New-SPWebApplication -Name <Name> -ApplicationPool <ApplicationPool> -ApplicationPoolAccount <ApplicationPoolAccount> -Url <URL> -Port <Port> -AuthenticationProvider $ap
    

    範例

    $ap = New-SPAuthenticationProvider -Name "ClaimsForms" -ASPNETMembershipProvider "membership" -ASPNETRoleProviderName "rolemanager"
    
    $wa = New-SPWebApplication -Name "FBA Web App" -ApplicationPool "Claims App Pool" -ApplicationPoolAccount "internal\appool" -Url http://contoso.com -Port 1234 -AuthenticationProvider $ap
    
    注意事項 附註:
    ApplicationPoolAccount 參數值必須為伺服器陣列上的受管理帳戶。
  4. 成功建立 Web 應用程式後,請修改下列 Web.Config 檔案:

  5. 變更 Web.Config 檔案之後,請建立 SPClaimsPrincipal 及網站集合,如下列範例所示:

    $cp = New-SPClaimsPrincipal -Identity "membership:SiteOwner" -IdentityType FormsUser
    $sp = New-SPSite http://servername:port -OwnerAlias $cp.Encode() -Template "STS#0"
    

    如需詳細資訊,請參閱<New-SPClaimsPrincipal>。

注意事項 附註:
建議您在執行命令列管理工作時使用 Windows PowerShell。Stsadm 命令列工具已過時,但為與舊版產品相容,仍會隨附提供。

https://technet.microsoft.com/zh-tw/library/jj650854.aspx
顯示: