對 Microsoft Entra 傳遞驗證進行疑難排解
本文章可協助您尋找有關 Microsoft Entra 傳遞驗證常見問題的疑難排解資訊。
重要
如果傳遞驗證發生使用者登入的問題,請不要在沒有可切換回的僅限雲端的混合式身分識別管理員帳戶情況下,停用此功能或解除安裝傳遞驗證代理程式。
一般問題
檢查此功能和驗證代理程式的狀態
確定您租用戶上的傳遞驗證功能仍為 [已啟用],且驗證代理程式的狀態會顯示 [作用中],而不是 [閒置中]。 您可以前往 Microsoft Entra 系統管理中心上的 [Microsoft Entra Connect] 刀鋒視窗來檢查狀態。
使用者看到的登入錯誤訊息
如果使用者無法使用傳遞驗證登入,他們可能會在 Microsoft Entra 登入螢幕中看到下列其中之一的使用者錯誤:
錯誤 | 描述 | 解決方案 |
---|---|---|
AADSTS80001 | 無法連線至 Active Directory | 請確定代理伺服器是與需要驗證其密碼且能夠連線到 Active Directory 的使用者相同的 AD 樹系成員。 |
AADSTS80002 | 連線至 Active Directory 時發生逾時 | 請檢查以確定 Active Directory 可供使用,而且正在回應代理程式的要求。 |
AADSTS80004 | 傳遞給代理程式的使用者名稱無效 | 請確定使用者嘗試以正確的使用者名稱登入。 |
AADSTS80005 | 驗證發生無法預期的 WebException | 暫時性錯誤。 請重試要求。 如果持續發生失敗,請連絡 Microsoft 支援服務。 |
AADSTS80007 | 與 Active Directory 通訊時發生錯誤 | 請檢查代理程式記錄以取得詳細資訊,並確認 Active Directory 如預期般運作。 |
使用者收到無效的使用者名稱/密碼錯誤
使用者的內部部署 UserPrincipalName (UPN) 與使用者的雲端 UPN 不同時,可能會發生這個情況。
若要確認是此問題,請先測試傳遞驗證代理程式是否正常運作:
建立測試帳戶。
在代理程式機器匯入 PowerShell 模組:
Import-Module "C:\Program Files\Microsoft Azure AD Connect Authentication Agent\Modules\PassthroughAuthPSModule\PassthroughAuthPSModule.psd1"
執行叫用 PowerShell 命令:
Invoke-PassthroughAuthOnPremLogonTroubleshooter
當系統提示您輸入認證時,請輸入用來登入 (https://login.microsoftonline.com) 的相同使用者名稱和密碼。
如果取得相同的使用者名稱/密碼錯誤,則表示傳遞驗證代理程式正常運作,問題可能是內部部署 UPN 無法路由傳送。 若要深入了解,請參閱<設定替代登入識別碼>。
重要
如果 Microsoft Entra Connect 伺服器未加入網域,而這是<Microsoft Entra Connect:必要條件>中所述的需求,便會發生無效的使用者名稱/密碼問題。
Microsoft Entra 系統管理中心中的登入失敗原因 (需要進階版授權)
如果您的租用戶有與其相關聯的 Microsoft Entra ID P1 或 P2 授權,您也可以在 Microsoft Entra 系統管理中心內查看登入活動報告。
在 [Microsoft Entra 系統管理中心] (https://portal.azure.com/) 上,流覽至 [Microsoft Entra ID] – >[登入活動],然後按一下特定使用者的登入活動。 尋找 [登入錯誤碼] 欄位。 使用下表,將該欄位的值對應至失敗的原因和解決方式:
登入錯誤碼 | 登入失敗原因 | 解決方案 |
---|---|---|
50144 | 使用者的 Active Directory 密碼已過期。 | 在內部部署的 Active Directory 中重設使用者密碼。 |
80001 | 沒有可用的驗證代理程式。 | 安裝並註冊驗證代理程式。 |
80002 | 驗證代理程式的密碼驗證要求已逾時。 | 檢查是否可以從驗證代理程式連線到您的 Active Directory。 |
80003 | 驗證代理程式收到無效的回覆。 | 如果有多位使用者發生一樣的問題,請檢查您的 Active Directory 設定。 |
80004 | 登入要求中使用的使用者主體名稱 (UPN) 不正確。 | 要求使用者以正確的使用者名稱登入。 |
80005 | 驗證代理程式:發生錯誤。 | 暫時性錯誤。 請稍後再試一次。 |
80007 | 驗證代理程式無法連線至 Active Directory。 | 檢查是否可以從驗證代理程式連線到您的 Active Directory。 |
80010 | 驗證代理程式無法將密碼解密。 | 如果問題一再出現,請安裝並註冊新的驗證代理程式。 然後解除安裝目前的代理程式。 |
80011 | 驗證代理程式無法擷取解密金鑰。 | 如果問題一再出現,請安裝並註冊新的驗證代理程式。 然後解除安裝目前的代理程式。 |
80014 | 驗證要求在超過已耗用時間上限後才回應。 | 驗證代理程式逾時。請開啟支援票證,其中包含錯誤碼、相互關聯識別碼和時間戳記,可取得更多關於此錯誤的詳細資料 |
重要
傳遞驗證代理程式透過呼叫 Win32 LogonUser API 來向 Active Directory 驗證其使用者名稱和密碼,藉以驗證 Microsoft Entra 使用者。 因此,如果您已在 Active Directory 中設定 [登入] 設定以限制工作站登入存取,您也必須將裝載傳遞驗證代理程式的伺服器新增至 [登入] 伺服器的清單。 若未這樣做,系統將會封鎖使用者登入 Microsoft Entra ID。
驗證代理程式安裝問題
發生未預期的錯誤
從伺服器收集代理程式記錄,並連絡 Microsoft 支援服務解決您的問題。
驗證代理程式註冊問題
由於連接埠遭到封鎖,驗證代理程式註冊失敗。
確認已安裝驗證代理程式的伺服器能與此處所列的服務網址和連接埠通訊。
由於權杖或帳戶授權錯誤,驗證代理程式註冊失敗。
請確定您在所有 Microsoft Entra Connect 或獨立驗證代理程式安裝和註冊作業中,使用僅限雲端的混合式身分識別管理員帳戶。 啟用 MFA 的混合式身分識別管理員帳戶有一個已知的問題,請暫時關閉 MFA (僅為了完成作業) 作為因應措施。
發生未預期的錯誤
從伺服器收集代理程式記錄,並連絡 Microsoft 支援服務解決您的問題。
驗證代理程式解除安裝問題
解除安裝 Microsoft Entra Connect 時出現的警告訊息
如果您已在租用戶上啟用傳遞驗證,但您嘗試解除安裝 Microsoft Entra Connect,則會顯示下列警告訊息:「除非您在其他伺服器上安裝有其他傳遞驗證代理程式,否則使用者將無法登入 Microsoft Entra ID。」
在您解除安裝 Microsoft Entra Connect 之前,請確認您的設定為高可用性,以避免中斷使用者登入。
與啟用此功能相關的問題
由於沒有任何可用的驗證代理程式,啟用此功能失敗。
您至少必須有一個作用中的驗證代理程式,才能在租用戶上啟用傳遞驗證。 您可以安裝 Microsoft Entra Connect 或獨立的驗證代理程式,來安裝驗證代理程式。
由於連接埠遭到封鎖,啟用功能失敗。
確認已安裝 Microsoft Entra Connect 的伺服器能與我們的服務網址和連接埠通訊,如此處所列。
由於權杖或帳戶授權錯誤,啟用功能失敗。
請確定您在啟用此功能時,使用僅限雲端的混合式身分識別管理員帳戶。 啟用 Multi-Factor Authentication (MFA) 的混合式身分識別管理員帳戶有一個已知的問題;請暫時關閉 MFA (僅為了完成作業) 作為因應措施。
收集傳遞驗證代理程式記錄
根據發生的問題類型,您需要在不同的位置尋找傳遞驗證代理程式記錄。
Microsoft Entra Connect 記錄
對於與安裝相關的錯誤,請在 %ProgramData%\AADConnect\trace-*.log
檢查 Microsoft Entra Connect 記錄。
驗證代理程式事件記錄
對於與驗證代理程式相關的錯誤,請開啟伺服器上的事件檢視器應用程式,並於 Application and Service Logs\Microsoft\AzureAdConnect\AuthenticationAgent\Admin 下查看。
如需詳細分析,請啟用「工作階段」記錄 (以滑鼠右鍵按一下事件檢視器應用程式內部,可找到此選項)。 在正常作業期間,請勿在已啟用記錄的情況下執行驗證代理程式;僅用於進行疑難排解。 僅在再次停用此記錄之後,才能看見記錄的內容。
詳細的追蹤記錄
若要針對使用者登入失敗進行疑難排解,請查看追蹤記錄,其位於 %ProgramData%\Microsoft\Azure AD Connect Authentication Agent\Trace\。 這些記錄包含使用傳遞驗證功能的特定使用者為什麼登入失敗的原因。 這些錯誤也對應到先前的登入失敗原因資料表中所示的登入失敗原因。 以下是記錄項目範例:
AzureADConnectAuthenticationAgentService.exe Error: 0 : Passthrough Authentication request failed. RequestId: 'df63f4a4-68b9-44ae-8d81-6ad2d844d84e'. Reason: '1328'.
ThreadId=5
DateTime=xxxx-xx-xxTxx:xx:xx.xxxxxxZ
您可以開啟命令提示字元並執行下列命令 (注意:請以您在記錄中看到的實際錯誤編號取代 '1328'),以取得錯誤 (前例中為 '1328') 的描述性詳細資料:
Net helpmsg 1328
傳遞驗證登入失敗記錄
如果已經啟用稽核記錄,您可以在傳遞驗證伺服器的安全性記錄檔中找到其他資訊。 查詢登入要求的簡單方法,是使用下列查詢來篩選安全性記錄檔:
<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">*[EventData[Data[@Name='ProcessName'] and (Data='C:\Program Files\Microsoft Azure AD Connect Authentication Agent\AzureADConnectAuthenticationAgentService.exe')]]</Select>
</Query>
</QueryList>
效能監視器計數器
另一種監視驗證代理程式的方法就是,追蹤每個安裝有驗證代理程式之伺服器上的特定效能監視器計數器。 使用下列全域計數器 (# PTA authentications、#PTA failed authentications 及 #PTA successful authentications) 和錯誤計數器 (# PTA authentication errors):
重要
傳遞驗證使用多個驗證代理程式,且「不」進行負載平衡,而提供了高可用性。 視您的設定而定,「並非」所有的驗證代理程式都會收到數目大約「相同」的要求。 可能某個特定的驗證代理程式完全不會收到流量。