共用方式為


宣告驗證不會驗證 SharePoint Server 中的使用者

適用於:yes-img-132013 yes-img-16 2016yes-img-19 2019yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

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

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

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

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

    • 當您使用安全性判斷提示標記語言 (SAML) 宣告式驗證時,授權失敗最常見的原因是許可權已指派給使用者的 Windows 帳戶, (網域\使用者) ,而不是使用者的 SAML 身分識別宣告。

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

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

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

疑難排解工具

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

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

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

  • 如果您使用 Active Directory 同盟服務 2.0 (AD FS) 作為安全性判斷提示標記語言 (SAML) 型宣告驗證的同盟提供者,您可以使用 AD FS 記錄來判斷 AD FS 對 Web 用戶端電腦發出的安全性令牌中的宣告。

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

設定使用者驗證的 ULS 記錄層級

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

若要為 SharePoint Server 設定使用者驗證記錄的最大量

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

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

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

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

  5. 選取 [確定]

若要在未執行宣告驗證疑難解答時將效能優化,請遵循下列步驟,將使用者驗證記錄設定為其預設值。

若要為 SharePoint Server 設定使用者驗證記錄的預設量

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

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

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

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

  5. 選取 [確定]

設定 AD FS 記錄

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

啟用 AD FS 記錄

  1. 在AD FS 伺服器上,從 [事件檢視器],選取 [檢視],然後選取 [顯示分析和偵錯記錄]

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

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

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

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

  6. 選取 [編輯],選 取 [尋找],輸入 <來源名稱=“Microsoft.IdentityModel” 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。

宣告使用者驗證的疑難排解方法

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

步驟 1:判斷失敗的驗證嘗試詳細資料

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

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

手動尋找失敗的驗證嘗試

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

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

  3. [LOGS] 資料夾中,選取 [修改日期 ] 以依日期排序資料夾,並在頂端選取最新的 。

  4. 再次嘗試驗證工作。

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

  6. [記事本] 中,依序選取 [編輯]、[尋找]、[驗證授權] 或 [宣告驗證] ,然後選取 [尋找下一步]

  7. 選取 [取消],然後讀取 [ 訊息] 資料 行的內容。

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

使用 ULS 檢視器來尋找失敗的驗證嘗試

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

  2. ULS 查看器中,選取 [檔案],指向 [ 開啟來源],然後選取 [ULS]

  3. 在 [設定 ULS 運行時間摘要] 對話框中,確認 [使用默認記錄檔目錄的 ULS 摘要] 中指定了 %CommonProgramFiles% \Common Files\Microsoft Shared\Web Server Extensions\16\LOGS 資料夾\Common Files\Microsoft Shared\Web Server Extensions\15\LOGS 資料夾。 如果沒有,請選取 [使用目錄位置進行即時摘要],並在記錄檔位置中指定 %CommonProgramFiles% \Microsoft Shared\Web Server Extensions\16\LOGS 資料夾\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 要求,從 Message 部分的宣告編碼部分中,您可以從宣告編碼字串 (例如:i:0#.w|contoso\chris) 判斷驗證方法和所編碼的使用者身分識別。

步驟 2:檢查設定需求

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

確認 Web 應用程式或區域的驗證設定

  1. 從管理中心,選取 [快速啟動] 上的 [應用程式 管理 ],然後選取 [ 管理 Web 應用程式]

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

  3. 在驗證提供者清單中,選取適當的區域 (例如 預設) 。

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

  • For Windows claims authentication, verify that Enable Windows Authentication and Integrated Windows authentication are selected, and that either NTLM or Negotiate (Kerberos) is selected as needed. 視需要選取 [基本身份驗證 ]。

  • For forms-based authentication, verify that Enable Forms Based Authentication (FBA) is selected. Verify the values in ASP.NET Membership provider name and ASP.NET Role manager name. 這些值必須符合您在 SharePoint 管理中心網站、Web 應用程式和 SharePoint Web Services\SecurityTokenServiceApplication 的 web.config 檔案中設定的成員資格提供者和角色值。 For more information, see Configure forms-based authentication for a claims-based web application in SharePoint Server.

  • For SAML-based claims authentication, verify that Trusted identity provider and the correct trusted provider name are selected. For more information, see Configure SAML-based claims authentication with AD FS in SharePoint Server.

  • In the Sign In Page URL section, verify the option for the sign-in page. For a default sign-in page, Default Sign In Page should be selected. For a custom sign-in-page, verify the specified URL of the custom sign-in page. To verify it, copy the URL, and then attempt to access it using a web browser.

  1. 取 [儲存 ] 以儲存驗證設定的變更。

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

  3. 如果驗證仍然失敗,請檢查ULS記錄,以判斷在驗證組態變更之前和之後驗證嘗試之間是否有任何差異。

步驟 3:要檢查的更多專案

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

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

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

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

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

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

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

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

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

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

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

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

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

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

步驟 4:使用 Web 偵錯工具來監視及分析網路流量

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

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

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

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

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

注意事項

[!附註] 如果您使用 Fiddler,在要求三次驗證提示之後,驗證嘗試就會失敗。 若要防止此行為,請參閱使用 Fiddler 搭配 SAML 和 SharePoint 以通過三次驗證提示

步驟 5:擷取及分析驗證網路流量

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

注意事項

[!附註] 在許多情況下,宣告驗證會使用超文字安全傳輸通訊協定 (HTTPS) 連線,這種連線會將在電腦之間傳送的訊息加密。 您必須要有增益集或擴充選項的協助,才能以網路流量工具查看加密訊息的內容。 例如,針對網路監視器,您必須安裝和設定 專家到網路監視器。 另一個嘗試將 HTTPS 訊息解密的較簡單方法,就是在主控 SharePoint Server 或 SharePoint Foundation 的伺服器上使用 Fiddler 之類的工具,可針對未解密的 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)

另請參閱

其他資源

Configure forms-based authentication for a claims-based web application in SharePoint Server

Configure SAML-based claims authentication with AD FS in SharePoint Server