共用方式為


使用 ADFS 設定 Web SSO 驗證 (Windows SharePoint Services)

本文內容:

  • 關於同盟驗證系統

  • 開始之前

  • 設定外部網路 Web 應用程式以使用 Web SSO 驗證

  • 允許使用者存取內部網路的網站

  • 使用人員選擇

  • 使用電子郵件與 UPN 宣告

  • 使用群組與組織宣告

關於同盟驗證系統

當驗證系統不是架設 Windows SharePoint Services 3.0 的本機電腦,Windows SharePoint Services 3.0 可提供支援同盟驗證案例。同盟驗證系統亦稱為網頁單一登入 (SSO) 系統。透過 Active Directory Federation Services (ADFS),一家公司的人員可以使用其現有的 Active Directory 帳戶來存取由另一家公司架設的伺服器。ADFS 也會在這二家公司之間建立信任關係,並且為一般使用者帶來順暢的單次登入體驗。ADFS 需仰賴 302 重新導向以驗證一般使用者。使用者通過驗證之後,會得到驗證 Token (cookie)。

開始之前

在使用 ADFS 來設定外部網路 Web 應用程式的網頁 SSO 驗證之前,應先熟悉下列資源:

注意

當您使用 [人員選擇] 來新增使用者到 Windows SharePoint Services 3.0 時,Windows SharePoint Services 3.0 會根據提供者 (此範例中為 ADFS) 驗證使用者。因此,您應先設定同盟伺服器,再設定 Windows SharePoint Services 3.0。

重要

安裝程序已擷取在 VBScript 檔案中,您可以利用此檔案設定 Windows SharePoint Services 3.0,以使用 ADFS 進行驗證。此指令碼檔案內含在 [SetupSharePointADFS.zip] 檔案中,您可以從 Microsoft SharePoint 產品及技術小組部落格的 [附件] 區段中取得此檔案。如需詳細資訊,請參閱部落格頁面設定 SharePoint 以使用 ADFS 進行驗證的指令碼 (英文)

設定外部網路 Web 應用程式以使用 Web SSO 驗證

  1. 安裝宣告感知應用程式的網頁代理程式。

  2. 下載並安裝無法從執行 ADFS 及 Microsoft Windows SharePoint Services 3.0 之 Windows Server 2003 R2 電腦上的 SharePoint Services 3.0,呼叫角色提供者與成員資格提供者 (https://go.microsoft.com/fwlink/?linkid=145397&clcid=0x404) (機器翻譯) 中所述的 ADFS Hotfix。Windows Server 2003 Service Pack 2 (SP2) 中將隨附此 Hotfix。

  3. 安裝 Windows SharePoint Services 3.0,設定伺服器陣列中的所有服務和伺服器,然後建立新的 Web 應用程式。根據預設,這個 Web 應用程式會被設定來使用 Windows 驗證,而且會成為內部網路使用者用來存取網站的進入點。在本文使用的範例中,網站名稱是 [http://trey-moss]。

  4. 在另一個區域中擴充您在步驟 2 中建立的 Web 應用程式。在 SharePoint 管理中心網站中的 [應用程式管理] 頁面上,依序按一下 [建立或擴充 Web 應用程式]**** 和 [擴充現有的 Web 應用程式],然後請執行下列動作:

    1. 新增主機標頭。這是 DNS 名稱,外部網路中的使用者將以這個名稱來識別該網站。在此範例中,其名稱為 [extranet.treyresearch.net]****。

    2. 將區域變更為 [外部網路]。

    3. 提供網站一個主機標頭名稱,您要將它設定在 DNS 中,以供外部網路使用者解析。

    4. 按一下 [使用 Secure Sockets Layer (SSL)],並將連接埠號碼變更為 443。ADFS 需要將該網站設定為使用 SSL。

    5. 在 [負載平衡 URL]**** 方塊中,刪除字串 [:443]。網際網路資訊服務 (IIS) 會自動使用連接埠 443,因為您在上一個步驟已指定連接埠號碼。

    6. 完成頁面上的其餘步驟,以完成擴充 Web 應用程式。

  5. 在 [備用存取對應 (AAM)] 頁面上,確認 URL 類似下表。

    內部 URL 區域 區域的公用 URL

    http://trey-moss

    預設值

    http://trey-moss

    https://extranet.treyresearch.net

    外部網路

    https://extranet.treyresearch.net

  6. 新增 SSL 憑證至 IIS 中的外部網路網站。請確定這個 SSL 憑證是發給 [extranet.treyresearch.net],因為這是當用戶端存取網站時所使用的名稱。

  7. 請執行下列作業,將 Web 應用程式上的外部網路區域的驗證提供者設定為使用網頁 SSO:

    1. 在伺服器陣列的管理中心網站上,於 [應用程式管理] 頁面中,按一下 [驗證提供者]****。

    2. 按一下頁面右上角的 [變更],然後選取要啟用網頁 SSO 的 Web 應用程式。

    3. 在這個 Web 應用程式的兩個對應區域清單中 (兩者皆應為 Windows),按一下外部網路區域的 [Windows]**** 連結。

    4. 在 [驗證類型] 區段中,按一下 [網頁單一登入]****。

    5. 在 [成員資格提供者名稱] 方塊中,輸入

      SingleSignOnMembershipProvider2

      請記下這個值;您會將此值新增到 web.config 檔案中 <membership> 區段的 name 元素,您稍後會在此程序中編輯這個檔案。

    6. 在 [角色管理員名稱] 方塊中,輸入

      SingleSignOnRoleProvider2

      請記下這個值;您會將此值新增到 web.config 檔案中 <roleManager> 區段的 name 元素,您稍後會在此程序中編輯這個檔案。

    7. 請確定 [啟用用戶端整合] 設定是設為 [否]****。

    8. 按一下 [儲存]。

您的外部網路 Web 應用程式現在已設為使用網頁 SSO。然而,這個時候無法存取網站,因為沒有人有這個網站的權限。下一個步驟會指派權限給使用者,讓他們可以存取此網站。

注意

選取網頁 SSO 作為驗證提供者之後,就會自動為 IIS 中的 SharePoint 網站啟用匿名驗證 (不需要使用者動作)。網站必須要有此設定,才能只使用宣告來存取。

允許使用者存取外部網路網站

  1. 在使用 Windows 驗證的預設區域上,使用文字編輯器來開啟網站的 web.config 檔案。

  2. 在 <system.web> 節點的任何地方新增下列項目。

    <membership>

    <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://fs-server/adfs/fs/federationserverservice.asmx" />

    </providers>

    </membership>

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

    <providers>

    <remove name="AspNetSqlRoleProvider" />

    <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://fs-server/adfs/fs/federationserverservice.asmx" />

    </providers>

    </roleManager>

  3. 變更 [fs-server] 的值,以反映您的資源同盟伺服器 ([adfsresource.treyresearch.net]****)。請確定您已經在 [管理中心驗證提供者] 頁面上輸入正確的成員資格提供者及角色管理員名稱。將這個項目新增至 web.config 時,使用 Windows 驗證之預設區域網站上的 [人員選擇] 就能夠知道 ADFS 提供者,因此就能解析 ADFS 宣告。這樣可以讓您授與網站上的 ADFS 宣告權限。

  4. 請執行下列作業,以授與網站的 ADFS 宣告存取權:

    1. 導覽至以網站管理員身分來使用 Windows 驗證之預設區域上的網站。

    2. 按一下 [網站動作] 功能表,指向 [網站設定]****,然後按一下 [進階權限]。

    3. 按一下 [新增]****,然後按一下 [新增使用者]。

    4. 若要新增使用者宣告,請在 [使用者 / 群組]**** 區段中,指定其電子郵件地址或使用者主要名稱。如果 UPN 和電子郵件宣告都是從同盟伺服器傳送過來的,則 SharePoint 將會使用 UPN 來確認成員資格提供者。因此,如果您要使用電子郵件,則必須停用同盟伺服器中的 UPN 宣告。如需詳細資訊,請參閱<使用 UPN 及電子郵件宣告>。

    5. 若要新增群組宣告,請在 [使用者 / 群組] 區段中,輸入您要 SharePoint 網站使用的宣告名稱。例如,在同盟伺服器上建立一個名為 [Adatum Contributers]**** 的組織群組宣告。將宣告名稱 [Adatum Contributers] 新增到 Sharepoint 網站,就像新增 Windows 使用者或群組一樣。您可以指派 [主成員 [參與]]**** 給這個宣告,則使用此群組宣告來存取 SharePoint 網站的任何使用者,都會有這個網站的參與者存取權。

    6. 選取適當的權限等級或 SharePoint 群組。

    7. 按一下 [確定]。

  5. 使用您選擇的文字編輯器來開啟外部網路網站的 web.config 檔案,並且在 <configSections> 節點中新增下列項目。

    <sectionGroup name="system.web">

    <section name="websso" type="System.Web.Security.SingleSignOn.WebSsoConfigurationHandler, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null" />

    </sectionGroup>

  6. 新增下列項目至 <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" />

    注意

    在 web.config 檔案的 <httpModules> 節點中,ADFS 驗證模組應始終指定在 Sharepoint SPRequest 模組的後面。最安全的作法是將它新增為該區段的最後一個項目。

  7. 在 <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" />

    </providers>

    </membership>

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

    </providers>

    </roleManager>

    <websso>

    <authenticationrequired />

    <auditlevel>55</auditlevel>

    <urls>

    <returnurl>https://your_application</returnurl>

    </urls>

    <fs>https://fs-server/adfs/fs/federationserverservice.asmx</fs>

    <isSharePoint />

    </websso>

    注意

    將 [fs-server] 的值變更為您的同盟伺服器電腦,並變更 [your_application] 的值,以反映外部網路 Web 應用程式的 URL。

  8. 以具有外部網路網站權限的 ADFS 使用者身分,瀏覽至 [https://extranet.treyresearch.net] 網站。

關於使用管理中心

您也可以使用管理中心原則來授與權限給 ADFS 使用者,但最好不要使用該方法,原因如下:

  • 依原則來授與權限是非常粗糙的作業。它讓使用者 (或群組) 在每個網站中 (在整個 Web 應用程式上的每個網站集合中) 都有一組相同的權限。這個方法應該要非常審慎地使用;在這個特定案例中,我們可以授與存取權給 ADFS 使用者,而不使用這個方法。

  • 將網站用在外部網路環境之後,很有可能就是由內部使用者負責授與網站和內容的存取權。因為只有伺服器陣列管理員有管理中心網站的存取權,所以內部使用者可以從使用 Windows 驗證之預設區域網站來新增 ADFS 宣告是最合理的。

  • 當您使用不同的提供者來擴充 Web 應用程式時,可以將其中一或數個 Web 應用程式設定為可以從使用該 Web 應用程式的各種提供者中尋找使用者及群組。在本案例中,我們設定網站來使用 Windows 驗證的方法,是允許該網站的使用者選取其他 Windows 使用者、Windows 群組及 ADFS 宣告,而且全都從一個網站來選取。

使用人員選擇

人員選擇不能執行萬用字元搜尋來搜尋角色。如果您有一個名為 Readers 的網頁 SSO 角色提供者,並在 [人員選擇] 搜尋對話方塊中輸入 Read,這將不會找到您的宣告。如果您輸入 Readers,就找得到您的宣告。這並不是程式設計問題,您只是不能使用角色提供者來執行萬用字元搜尋。

根據預設,命令列可執行檔 (如 stsadm.exe) 無法解析 ADFS 宣告。例如,您可能會想要使用 stsadm.exe –o adduser 命令,將新的使用者新增到外部網路網站。若要啟用 Stsadm (或其他可執行檔) 來解析使用者,請執行下列作業來建立新的 config 檔:

  • 在 stsadm.exe 所在的相同目錄中 (%programfiles%\Common Files\Microsoft Shared Debug\Web Server Extensions\12\BIN),建立一個名為 stsadm.exe.config 的新檔案。在 stsadm.exe.config 檔案中新增下列項目:

    <configuration>

    <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://fs-server/adfs/fs/federationserverservice.asmx" />

    </providers>

    </membership>

    <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://fs-server/adfs/fs/federationserverservice.asmx" />

    </providers>

    </roleManager>

    </system.web>

    </configuration>

    注意

    將 [fs-server] 的值變更為您的資源同盟伺服器 ( [adfsresource.treyresearch.net])。

使用電子郵件及 UPN 宣告

若要設定是否要讓同盟伺服器傳送電子郵件及 UPN 宣告至 Windows SharePoint Services 3.0,請執行下列程序。

設定同盟伺服器上的電子郵件及 UPN 宣告

  1. 從同盟伺服器上的 [系統管理工具],開啟 ADFS 嵌入式管理單元。

    注意

    您也可以在 [執行] 對話方塊中輸入 ADFS.MSC,以開啟 ADFS 嵌入式管理單元。

  2. 選取您的 Windows SharePoint Services 3.0 應用程式節點 (您的應用程式應該已經新增至節點清單)。

  3. 在右邊的宣告清單中,在 [電子郵件] 按一下滑鼠右鍵,再選取 [啟用]**** 或 [停用]。

  4. 在右邊的宣告清單中,在 [UPN]**** 按一下滑鼠右鍵,再選取 [啟用] 或 [停用]****。

    注意

    如果啟用了 UPN 和電子郵件,Windows SharePoint Services 3.0 會將 UPN 用來執行使用者宣告確認。因此,在設定 Windows SharePoint Services 3.0 時,請注意您輸入的使用者宣告。另外,也請注意,唯有當同盟伺服器所接受的 UPN 字尾與電子郵件字尾相同時,UPN 宣告的運作才會一致。這是因為成員資格提供者係以電子郵件為基礎。因為在設定 UPN 宣告時,有這樣的複雜性,所以建議以電子郵件作為成員資格驗證的使用者宣告設定。

使用群組及組織群組宣告

在 Windows SharePoint Services 3.0 中,若要指派權限給 Active Directory 群組,可以將其新增至 SharePoint 群組,或直接新增至權限等級。指定之使用者在網站上的權限等級計算方式,以使用者所屬的 Active Directory 群組、使用者所屬的 SharePoint 群組,以及使用者直接加入的所有權限等級為依據。

當您在 Windows SharePoint Services 3.0 中將 ADFS 用為角色提供者時,程序是不一樣的。網頁 SSO 提供者沒辦法直接解析 Active Directory 群組,而是利用組織群組宣告來解析成員資格。當您搭配 Windows SharePoint Services 3.0 來使用 ADFS 時,必須在 ADFS 中建立一組的組織群組宣告。然後,您可以將多個 Active Directory 群組與 ADFS 組織群組宣告建立關聯。

若要讓群組宣告使用最新版的 ADFS,您需要在 ADFS 伺服器上的 IIS 中,為 ADFS 應用程式編輯 web.config 檔案。

開啟 web.config 檔案,並將 <getGroupClaims /> 新增至 <System.Web> 節點中的 <FederationServerConfiguration> 節點,如下列範例所示。

<configuration>
     <system.web>
          <FederationServerConfiguration>
               <getGroupClaims />
          </FederationServerConfiguration>
     </system.web>
</configuration>

在 Adatum (帳戶樹系) 中,執行下列作業:

  1. 建立一個名為 Trey SharePoint Readers 的 Active Directory 群組。

  2. 建立一個名為 Trey SharePoint Contributors 的 Active Directory 群組。

  3. 新增 Alansh 至 Readers 群組,並新增 Adamcar 至 Contributors 群組。

  4. 建立一個名為 Trey SharePoint Readers 的組織群組宣告。

  5. 建立一個名為 Trey SharePoint Contributors 的組織群組宣告。

  6. 在 Active Directory 帳戶儲存區按一下滑鼠右鍵,然後按一下 [新的群組宣告解壓縮]。

    1. 選取 Trey SharePoint Readers 組織群組宣告,然後將它與 Trey SharePoint Readers Active Directory 群組建立關聯。

    2. 重複步驟 6,然後建立 Trey SharePoint Contributors 群組宣告與 Trey SharePoint Contributors Active Directory 群組的關聯性。

  7. 在 [Trey Research 帳戶夥伴] 按一下滑鼠右鍵,然後建立傳出的宣告對應:

    1. 選取 Trey SharePoint Reader 宣告,然後對應至傳出的宣告 adatum-trey-readers。

    2. 選取 Trey SharePoint Contributor 宣告,然後對應至傳出的宣告 adatum-trey-contributors。

注意

宣告對應名稱必須經過組織之間的同意,而且必須完全相符。

在 Trey Research 端啟動 ADFS.MSC,然後請執行下列動作:

  1. 建立一個名為 Adatum SharePoint Readers 的組織群組宣告。

  2. 建立一個名為 Adatum SharePoint Contributors 的組織群組宣告。

  3. 為您的宣告建立內送的群組對應:

    1. 在 Adatum 帳戶夥伴按一下滑鼠右鍵,然後按一下 [連入群組宣告對應]。

    2. 選取 Adatum SharePoint Readers,然後將其對應至內送的宣告名稱 adatum-trey-readers。

    3. 選取 Adatum SharePoint Contributors,然後將其對應至內送的宣告名稱 adatum-trey-contributors。

  4. 用滑鼠右鍵按一下 Windows SharePoint Services 3.0 Web 應用程式,然後在 Reader 和 Contributor 宣告上,按一下 [啟用]****。

以網站管理員身分瀏覽至 Trey Research 端的 [http://trey-moss] 網站,然後請執行下列動作:

  1. 按一下 [網站動作]**** 功能表,指向 [網站設定],然後按一下 [人員與群組]****。

  2. 若尚未選取,請按一下您的網站的成員群組。

  3. 按一下 [新增],然後按一下工具列上的 [新增使用者]****。

  4. 按一下 [使用者 / 群組] 方塊旁的通訊錄圖示。

  5. 在 [人員選擇] 對話方塊的 [尋找]**** 方塊中,輸入

    Adatum SharePoint Readers

    在 [授與權限] 區段中,選取 [訪客 [讀取者]]**** 的 SharePoint 群組首頁

  6. 在 [尋找] 方塊中輸入

    Adatum SharePoint Contributors

    在 [授與權限] 區段中,選取 [成員 [參與]] 的 SharePoint 群組首頁****。

下載本書

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

請參閱 Windows SharePoint Services 可下載的叢書上提供的完整叢書清單。