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

宣告驗證不驗證使用者 (SharePoint 2013)

SharePoint 2013
 

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

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

摘要:由於 SharePoint 2013 建議使用者以宣告式驗證來存取 Web 應用程式,因此本文說明您可以用來疑難排解宣告式使用者驗證嘗試失敗的工具和技巧。

當使用者嘗試連接至 Web 應用程式時,記錄檔會記錄失敗的驗證事件。如果您使用 Microsoft 提供的工具,並使用系統化的方法來檢查失敗,就可以了解有關宣告式驗證的一般問題,並加以解決。

成功存取 SharePoint 資源需要驗證及授權。當您使用宣告時,驗證會確認安全性憑證是否有效。授權會依據安全性憑證中的宣告組,以及為資源設定的權限,確認可允許存取資源。

若要判斷是否為驗證或授權造成存取問題,請仔細查看瀏覽器視窗中的錯誤訊息。

  • 如果錯誤訊息指出使用者沒有網站的存取權,則表示驗證成功,而授權失敗。若要疑難排解授權問題,請嘗試下列解決方案:

    • 使用安全性聲明標記語言 (SAML) 宣告式驗證時,授權失敗最常見的原因,就是權限是指派給使用者的 Windows 帳戶 (網域\使用者),而不是使用者的 SAML 身分宣告。

    • 確認使用者或使用者所屬的群組已設定為使用適當的權限。如需詳細資訊,請參閱<SharePoint 2013 的使用者權限與權限等級>。

    • 使用本文中的工具和技巧來判斷使用者安全性憑證中的宣告組,這樣您就可以將其與所設定的權限做比較。

  • 如果訊息指出驗證失敗,則您有驗證問題。如果資源包含在使用宣告式驗證的 SharePoint Web 應用程式中,請使用本文中的資訊開始疑難排解。

下列是 Microsoft 提供的主要疑難排解工具,可收集 SharePoint 2013 中宣告驗證的詳細資訊:

  • 使用統一記錄系統 (ULS) 記錄檔來取得驗證交易的詳細資料。

  • 使用管理中心來確認 SharePoint Web 應用程式和區域的使用者驗證設定詳細資料,以及設定 ULS 記錄的層級。

  • 如果您是使用 Active Directory Federation Services 2.0 (AD FS) 做為安全性聲明標記語言 (SAML) 宣告驗證的同盟提供者,您可以使用 AD FS 記錄來判斷 AD FS 發行至網頁用戶端電腦之安全性憑證中的宣告。

  • 使用 Network Monitor 3.4 來擷取及檢查使用者驗證網路流量的詳細資料。

下列程序會設定 SharePoint 2013,以記錄宣告驗證嘗試的最高資訊量。

  1. 從管理中心,按一下 [快速啟動] 上的 [監視],然後按一下 [設定診斷記錄]。

  2. 在類別清單中,展開 [SharePoint Foundation],然後選取 [驗證授權] 和 [宣告驗證]。

  3. 在 [回報至事件記錄的最低緊急事件] 中,選取 [詳細資訊]。

  4. 在 [回報至追蹤記錄的最低緊急事件] 中,選取 [詳細資訊]。

  5. 按一下 [確定]。

在未執行宣告驗證疑難排解的情況下,若要最佳化效能,請遵循下列步驟,將使用者驗證記錄設為其預設值。

  1. 從管理中心,按一下 [快速啟動] 上的 [監視],然後按一下 [設定診斷記錄]。

  2. 在類別清單中,展開 [SharePoint Foundation],然後選取 [驗證授權] 和 [宣告驗證]。

  3. 在 [回報至事件記錄的最低緊急事件] 中,選取 [資訊]。

  4. 在 [回報至追蹤記錄的最低緊急事件] 中,選取 [中等]。

  5. 按一下 [確定]。

即使在您啟用 ULS 記錄的最高層級之後,SharePoint 2013 還是沒有將宣告組記錄在其收到的安全性憑證中。如果您將 AD FS 用於 SAML 宣告驗證,則可以啟用 AD FS 記錄,並使用事件檢視器來檢查 SharePoint 2013 發行之安全性憑證的宣告。

  1. 在 AD FS 伺服器上,從事件檢視器按一下 [檢視],然後按一下 [顯示分析與偵錯記錄檔]。

  2. 在事件檢視器主控台樹狀目錄中,展開 [應用程式及服務記錄檔/AD FS 2.0 追蹤]。

  3. 以滑鼠右鍵按一下 [偵錯],然後按一下 [啟用記錄]。

  4. 開啟 %ProgramFiles%\Active Directory Federation Services 2.0 資料夾。

  5. 使用 [記事本] 來開啟 Microsoft.IdentityServer.ServiceHost.Exe.Config 檔案。

  6. 依序按一下 [編輯] 和 [尋找],輸入 <source name=&quot;Microsoft.IdentityModel&quot; switchValue="Off">,然後按一下 [確定]。

  7. switchValue="Off" 變更為 switchValue="Verbose"

  8. 依序按一下 [檔案] 和 [儲存],然後結束 [記事本]。

  9. 在 [服務] 嵌入式管理單元中,以滑鼠右鍵按一下 [AD FS 2.0 服務],然後按一下 [重新啟動]。

您現在可以在 AD FS 伺服器上使用事件檢視器,從 [應用程式及服務記錄檔/AD FS 2.0 追蹤/偵錯] 節點來檢查宣告的詳細資料。尋找事件識別碼為 1001 的事件。

您也可以列舉 HttpModule 或網頁組件,或是透過 OperationContext 宣告。如需詳細資訊,請參閱如何在 SharePoint 2010 中的宣告增強時間取得所有使用者宣告。SharePoint 2010 的此資訊也適用於SharePoint 2013。

下列步驟可協助您判斷宣告驗證嘗試失敗的原因。

若要取得驗證嘗試失敗的詳細及確切資訊,您必須在 SharePoint ULS 記錄檔中尋找。這些記錄檔儲存在 %CommonProgramFiles%\Microsoft Shared\Web Server Extensions\15\LOGS 資料夾中。

您可以手動在 ULS 記錄檔中尋找失敗的驗證嘗試,或是使用 ULS 記錄檔檢視器來尋找。

  1. 向使用者取得產生失敗驗證嘗試的使用者帳戶名稱。

  2. 在執行 SharePoint Server 或 SharePoint Foundation 的伺服器上,尋找 %CommonProgramFiles%\Microsoft Shared\Web Server Extensions\15\LOGS 資料夾。

  3. LOGS 資料夾中,按一下 [修改日期],以依日期排序資料夾,最新的在上面。

  4. 重試驗證工作

  5. LOGS 資料夾視窗中,按兩下清單頂端的記錄檔,以在 [記事本] 中開啟該檔案。

  6. 在 [記事本] 中,依序按一下 [編輯] 和 [尋找],輸入驗證授權宣告驗證,然後按一下 [尋找下一筆]。

  7. 按一下 [取消],然後閱讀 [訊息] 欄的內容。

若要使用 ULS 檢視器,下載ULS 檢視器從並將其儲存到資料夾執行SharePoint Server或SharePoint Foundation的伺服器上。安裝之後,遵循下列步驟來尋找失敗的驗證嘗試。

  1. 在執行 SharePoint Server 或 SharePoint Foundation 的伺服器上,從儲存所在的資料夾按兩下 Ulsviewer

  2. 在 [ULS 檢視器] 中,按一下 [檔案],指向 [開啟來源],然後按一下 [ULS]。

  3. 在 [設定 ULS 執行階段摘要] 對話方塊中,確認 [使用預設記錄檔目錄中的 ULS 摘要] 中已指定 %CommonProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\15\LOGS 資料夾。如果沒有,則按一下 [使用即時摘要的目錄位置],並且在 [記錄檔位置] 中指定 %CommonProgramFiles%\Microsoft Shared\Web Server Extensions\15\LOGS 資料夾

    針對 %CommonProgramFiles%,請將 CommonProgramFiles 環境變數的值替換為執行 SharePoint Server 或 SharePoint Foundation 的伺服器。例如,如果該位置為 C 磁碟機,則 %CommonProgramFiles% 設為 C:\Program Files\Common Files。

  4. 按一下 [確定]。

  5. 按一下 [編輯],然後按一下 [修改篩選]。

  6. 在 [篩選條件] 對話方塊的 [欄位] 中,按一下 [類別]。

  7. 在 [值] 中,輸入 [驗證授權] 或 [宣告驗證],然後按一下 [確定]。

  8. 重複驗證嘗試。

  9. 從 [ULS 檢視器] 視窗中,按兩下所顯示的字行,以檢視 [訊息] 部分。

從宣告編碼 [訊息] 部分的非 OAuth 要求的一部分,您可以判斷驗證方法及編碼的使用者身分識別宣告編碼字串中 (範例: i:0 #.w | contoso\chris)。如需詳細資訊,請參閱SharePoint 2013 與 SharePoint 2010 宣告編碼

若要判斷如何設定 Web 應用程式或區域,以支援一或多個宣告驗證方法,請使用 SharePoint 管理中心網站。

  1. 從管理中心的快速啟動上,按一下 [應用程式管理],然後按一下 [管理 Web 應用程式]。

  2. 按一下使用者嘗試存取之 Web 應用程式的名稱,然後在功能區的 [安全性] 群組中,按一下 [驗證提供者]。

  3. 在驗證提供者清單中,按一下適當的區域 (例如 [預設])。

  4. 在 [編輯驗證] 對話方塊的 [宣告驗證類型] 區段中,確認宣告驗證的設定。

    • 若為 Windows 宣告驗證,請確認已選取 [啟用 Windows 驗證] 和 [整合式 Windows 驗證],而且已依需要選取 [NTLM] 或 [交涉 (Kerberos)]。若有需要,可選取 [基本驗證]。

    • 若為表單型驗證,請確認已選取 [啟用表單型驗證 (FBA)]。確認 [ASP.NET 成員資格提供者名稱] 和 [ASP.NET 角色管理員名稱] 中的值。這些值必須符合您在 web.config 檔案中,為 SharePoint 管理中心網站、Web 應用程式和 SharePoint Web Services\SecurityTokenServiceApplication 設定的成員資格提供者和角色值。如需詳細資訊,請參閱<在 SharePoint 2013 中設定宣告式 Web 應用程式的表單型驗證>。

    • 若為 SAML 型宣告驗證,請確認已選取 [信任的身分識別提供者] 和正確的信任提供者名稱。如需詳細資訊,請參閱<在 SharePoint 2013 中使用 AD FS 設定 SAML 式宣告驗證>。

    • 在 [登入頁面 URL] 區段中,確認登入頁面的選項。若為預設登入頁面,應已選取 [預設登入頁面 URL]。若為自訂登入頁面,請確認自訂登入頁面的指定 URL。若要進行確認,請複製 URL,然後嘗試使用網頁瀏覽器來加以存取。

  5. 按一下 [儲存],將變更儲存至驗證設定。

  6. 重複驗證嘗試。若為表單型或 SAML 型驗證,所預期的登入頁面是否伴隨著正確的登入選項出現?

  7. 如果驗證仍失敗,請檢查 ULS 記錄檔,以判斷驗證設定變更之前與之後的驗證嘗試是否有任何差異。

檢查記錄檔和 Web 應用程式設定之後,確認下列項目:

  • 網頁用戶端電腦上的網頁瀏覽器可支援宣告。如需詳細資訊,請參閱<在 SharePoint 2013 中規劃瀏覽器支援>。

  • 若為 Windows 宣告驗證,請確認下列項目:

    • 使用者發出驗證嘗試的來源電腦是主控 SharePoint Web 應用程式之伺服器的相同網域成員,或是主控伺服器所信任之網域的成員。

    • 使用者發出驗證嘗試的來源電腦已登入其 Active Directory 網域服務 (AD DS) 網域。在網頁用戶端電腦上的命令提示字元或 SharePoint 2013 管理命令介面中,輸入 nltest /dsgetdc: /force,以確定其可存取網域控制站。如果沒有列出任何網域控制站,請疑難排解網頁用戶端電腦與 AD DS 網域控制站之間缺乏探索能力及連線能力的問題。

    • 執行 SharePoint Server 或 SharePoint Foundation 的伺服器已登入其 AD DS 網域。在執行 SharePoint Server 或 SharePoint Foundation 之伺服器上的命令提示字元或 SharePoint 2013 管理命令介面中,輸入 nltest /dsgetdc: /force,以確定其可存取網域控制站。如果沒有列出任何網域控制站,請疑難排解執行 SharePoint Server 或 SharePoint Foundation 之伺服器與 AD DS 網域控制站之間缺乏探索能力及連線能力的問題。

  • 若為表單型驗證,請確認下列項目:

    • 所設定之 ASP.NET 成員資格和角色提供者的使用者認證正確。

    • 網路上有主控 ASP.NET 成員資格和角色提供者的系統可供使用。

    • 自訂登入頁面正確地收集和傳達使用者的認證。若要測試是否正確,請將 Web 應用程式設定為暫時使用預設登入頁面,並確認運作正常。

  • 若為 SAML 型宣告驗證,請確認下列項目:

    • 所設定之身分識別提供者的使用者認證正確。

    • 網路上有做為同盟提供者 (例如 AD FS) 和身分識別提供者 (例如 AD DS 或協力廠商身分識別提供者) 的系統可供使用。

    • 自訂登入頁面正確地收集和傳達使用者的認證。若要測試是否正確,請將 Web 應用程式設定為暫時使用預設登入頁面,並確認運作正常。

使用HttpWatchFiddler之類的工具來分析下列類型的 HTTP 流量:

  • 在網頁用戶端電腦與執行 SharePoint Server 或 SharePoint Foundation 的伺服器之間

    例如,您可以監視執行 SharePoint Server 或 SharePoint Foundation 之伺服器傳送的 HTTP 重新導向訊息,以將同盟伺服器 (例如 AD FS) 的位置通知網頁用戶端電腦。

  • 在網頁用戶端電腦與同盟伺服器 (例如 AD FS) 之間

    例如,您可以監視網頁用戶端電腦傳送的 HTTP 訊息,以及同盟伺服器的回應,其中可能包含安全性憑證及其宣告。

注意事項 附註:
如果您使用 Fiddler,可能會需要三個驗證提示後失敗的驗證嘗試。若要防止此表現方式,請參閱搭配 SAML 使用 Fiddler 及 SharePoint,以取得過去三種驗證提示

使用網路流量工具,例如Network Monitor 3.4,以擷取及分析網頁用戶端電腦、 執行SharePoint Server或SharePoint Foundation,伺服器與在其SharePoint Server或SharePoint Foundation依賴宣告驗證系統之間的流量。

注意事項 附註:
在許多情況下,宣告式驗證會使用超文字傳輸通訊協定安全 HTTPS 型的連線,加密的電腦之間所寄送郵件。您不能看到沒有增益集或副檔名的輔助工具的網路流量工具加密郵件的內容。例如,網路監視器的您必須安裝並設定網路監視器解密專家。或者更容易以嘗試解密 HTTPS 郵件、 使用 Fiddler 之類的工具在伺服器上主控SharePoint Server或SharePoint Foundation,其可以在未加密的 HTTP 訊息報告的。

網路流量的分析可顯示下列項目:

  • 在宣告驗證程序中,在相關電腦之間傳送的確切通訊協定與訊息組合。回覆訊息可能包含錯誤狀況資訊,可用來判斷額外的疑難排解步驟。

  • 要求訊息是否有相對應的回覆。傳送多次但未收到回覆的要求訊息,可能表示網路流量未到達其目的地。在此情況下,請檢查封包路由問題、路徑中的封包篩選裝置 (例如防火牆) 或目的地的封包篩選 (例如本機防火牆)。

  • 是否嘗試過多種宣告方法,以及哪些方法失敗。

若為 Windows 宣告驗證,您可以擷取及分析下列電腦之間的流量:

  • 網頁用戶端電腦與執行 SharePoint Server 或 SharePoint Foundation 的伺服器

  • 執行 SharePoint Server 或 SharePoint Foundation 的伺服器與其網域控制站

若為表單型驗證,您可以擷取及分析下列電腦之間的流量:

  • 網頁用戶端電腦與執行 SharePoint Server 或 SharePoint Foundation 的伺服器

  • 執行 SharePoint Server 或 SharePoint Foundation 的伺服器與 ASP.NET 成員資格和角色提供者

若為 SAML 型宣告驗證,您可以擷取及分析下列電腦之間的流量:

  • 網頁用戶端電腦與執行 SharePoint Server 或 SharePoint Foundation 的伺服器

  • 網頁用戶端電腦與其身分識別提供者 (例如 AD DS 網域控制站)

  • 網頁用戶端電腦與同盟提供者 (例如 AD FS)

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