疑難排解 Microsoft Entra 無縫單一登入
這篇文章可協助您尋找有關 Microsoft Entra 無縫單一登入 (無縫 SSO) 常見問題的疑難排解資訊。
已知問題
- 在某些情況下,啟用無縫 SSO 最久可能需要 30 分鐘。
- 如果您在租用戶上將「無縫 SSO」停用再重新啟用,使用者將必須等到他們的已快取 Kerberos 票證到期 (有效期通常為 10 小時) 之後,才能使用單一登入體驗。
- 如果無縫 SSO 成功,使用者就沒有機會選取 [讓我保持登入]。
- 支援在 16.0.8730.xxxx 版和更新版本的 Microsoft 365 Win32 用戶端 (Outlook、Word、Excel 和其他產品) 使用非互動式流程。 不支援其他版本;在那些版本中,使用者將輸入其使用者名稱 (但不輸入密碼) 來登入。 針對 OneDrive,您必須啟用 OneDrive 無訊息設定功能 以獲得無訊息登入體驗。
- 在 Firefox 的私用瀏覽模式中,無法使用無縫 SSO。
- Internet Explorer 在開啟「增強保護」模式時也無法使用無縫 SSO。
- 不再支援 Microsoft Edge (舊版)
- iOS 和 Android 上的行動瀏覽器無法使用無縫 SSO。
- 如果使用者是 Active Directory 中過多群組的成員之一,該使用者的 Kerberos 票證可能會太大而無法處理,並且會導致無縫式 SSO 失敗。 Microsoft Entra HTTPS 要求可以有大小上限為 50 KB 的標頭;Kerberos 票證必須小於該限制,才能容納其他 Microsoft Entra 成品 (通常是 2 - 5 KB),例如 Cookie。 建議您降低使用者的群組成員資格,然後再試一次。
- 如果您正在同步處理 30 個或更多的 Active Directory 樹系,便無法透過 Microsoft Entra Connect 啟用無縫 SSO。 您可以在租用戶上手動啟用此功能,以解決這個問題。
- 將 Microsoft Entra 服務 URL (
https://autologon.microsoftazuread-sso.com
) 新增至信任的網站區域而非近端內部網路區域,會「阻止使用者登入」。 - 無縫 SSO 支援 Kerberos 的 AES256_HMAC_SHA1、AES128_HMAC_SHA1 和 RC4_HMAC_MD5 加密類型。 建議將 AzureADSSOAcc$ 帳戶的加密類型設為 AES256_HMAC_SHA1,或使用其中一個相對的 AES 類型。相對 RC4 以取得新增的安全性。 加密類型會儲存在 Active Directory 帳戶的 msDS-SupportedEncryptionTypes 屬性中。 如果 AzureADSSOAcc$ 帳戶加密類型設為 RC4_HMAC_MD5,而您想要將其變更為其中一個 AES 加密類型,請務必先依相關問題下之常見問題集文件所述,變換 AzureADSSOAcc$ 帳戶的 Kerberos 解密金鑰,否則不會發生無縫 SSO。
- 如有多個樹系具有樹系信任,則在其中一個樹系啟用 SSO,就會在所有信任的樹系中啟用 SSO。 如果您在已啟用 SSO 的樹系中啟用 SSO,您會收到錯誤,指出該樹系已啟用 SSO。
- 啟用無縫 SSO 的原則長度限制為 25600 個字元。 這項限制適用於原則所包含的全部項目,包括您想要啟用無縫 SSO 的樹系名稱。 如果您的環境有很多樹系,就可能會遇到字元限制。 如果您的樹系彼此之間互相信任,則僅在一個樹系上啟用無縫 SSO 即足夠。 例如,如果您有 contoso.com 和 fabrikam.com,而且兩者互相信任,則您可以只在 contoso.com 啟用無縫 SSO,即同時適用於 fabrikam.com。 如此一來,您就可以減少在原則中啟用的樹系數量,避免達到原則字元限制。
檢查功能的狀態
確認您租用戶端的無縫 SSO 功能仍為 [已啟用]。 您可以移至 [Microsoft Entra 系統管理中心](https://portal.azure.com/) 窗格中的 [身分識別]>[混合式管理]>[Microsoft Entra 連線]>[連線同步] 窗格來檢查狀態。
一路按一下來查看已針對「無縫 SSO」啟用的所有 AD 樹系。
Microsoft Entra 系統管理中心上的登入失敗原因 (需要進階授權)
如果您的租用戶有與其相關聯的 Microsoft Entra ID P1 或 P2 授權,您也可以在 Microsoft Entra 系統管理中心內查看 Microsoft Entra ID 內的 登入活動報告。
流覽至 [Microsoft Entra 系統管理中心](https://portal.azure.com/),然後選取特定使用者的登入活動,流覽至 [身分識別]>[監視與健康情況]>[登入]。 尋找 [登入錯誤碼] 欄位。 使用下表,將該欄位的值對應至失敗原因和解決方式:
登入錯誤碼 | 登入失敗原因 | 解決方法 |
---|---|---|
81001 | 使用者的 Kerberos 票證太大。 | 降低使用者的群組成員資格,並再試一次。 |
81002 | 無法驗證使用者的 Kerberos 票證。 | 請參閱為檢查清單疑難排解。 |
81003 | 無法驗證使用者的 Kerberos 票證。 | 請參閱為檢查清單疑難排解。 |
81004 | Kerberos 驗證嘗試失敗。 | 請參閱為檢查清單疑難排解。 |
81008 | 無法驗證使用者的 Kerberos 票證。 | 請參閱為檢查清單疑難排解。 |
81009 | 無法驗證使用者的 Kerberos 票證。 | 請參閱為檢查清單疑難排解。 |
81010 | 無縫式 SSO 失敗,因為使用者的 Kerberos 票證已過期或無效。 | 使用者需要從您公司網路內部已加入網域的裝置登入。 |
81011 | 無法根據使用者 Kerberos 票證中的資訊找到使用者物件。 | 使用 Microsoft Entra Connect 將使用者資訊同步至 Microsoft Entra ID。 |
81012 | 嘗試登入 Microsoft Entra ID 的使用者與登入裝置的使用者不同。 | 使用者需要從不同的裝置登入。 |
81013 | 無法根據使用者 Kerberos 票證中的資訊找到使用者物件。 | 使用 Microsoft Entra Connect 將使用者資訊同步至 Microsoft Entra ID。 |
疑難排解檢查清單
使用下列檢查清單,為無縫 SSO 問題疑難排解︰
- 請務必在 Microsoft Entra Connect 上已啟用無縫 SSO 功能。 如果您無法啟用此功能 (例如,因為連接埠已封鎖),請確定您已完成所有必要條件。
- 如果您已在租用戶上同時啟用 Microsoft Entra Join 和無縫 SSO,請確認該問題與 Microsoft Entra Join 無關。 如果裝置既已向 Microsoft Entra ID 註冊也加入網域,則來自 Microsoft Entra 加入的 SSO 優先順序會高於無縫 SSO。 使用來自「Microsoft Entra 加入」的 SSO 時,使用者會看到指出「已連線到 Windows」的登入圖格。
- 確定 Microsoft Entra URL (
https://autologon.microsoftazuread-sso.com
) 是使用者內部網路區域設定的一部分。 - 確定公司裝置已加入 Active Directory 網域。 裝置「不」需要加入 Microsoft Entra,無縫 SSO 就可運作。
- 確定使用者已透過 Active Directory 網域帳戶登入裝置。
- 確定使用者帳戶是來自已設定無縫 SSO 的 Active Directory 樹系。
- 確定裝置已連線到公司網路。
- 確定裝置的時間已經與 Active Directory 和網域控制站的時間同步,且彼此的時間差不到五分鐘。
- 請確認在您想要啟用無縫 SSO 的每個 AD 樹系中,
AZUREADSSOACC
電腦帳戶存在且已啟用。 如果電腦帳戶已遭刪除或遺失,您可以使用 PowerShell Cmdlet 來重新建立它們。 - 從命令提示字元使用
klist
命令,列出裝置上現有的 Kerberos 票證。 確認是否有核發給AZUREADSSOACC
電腦帳戶的票證。 使用者的 Kerberos 票證有效期通常為 10 個小時。 您的 Active Directory 可能有不同的設定。 - 如果您在租用戶上將「無縫 SSO」停用再重新啟用,使用者將必須等到他們的已快取 Kerberos 票證到期之後,才能使用單一登入體驗。
- 使用
klist purge
命令從裝置中清除現有的 Kerberos 票證,然後再試一次。 - 若要判斷是否有 JavaScript 相關問題,請檢閱瀏覽器的主控台記錄 (在 [開發人員工具] 底下)。
- 檢閱網域控制站記錄。
網域控制站記錄
如果網域控制站已啟用成功稽核,則每次使用者透過無縫 SSO 登入時,系統都會在事件記錄中記錄一個安全性項目。 您可以使用下列查詢來尋找這些安全性事件。 (請查看與電腦帳戶 AzureADSSOAcc$ 有關連的事件 4769。)
<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">*[EventData[Data[@Name='ServiceName'] and (Data='AZUREADSSOACC$')]]</Select>
</Query>
</QueryList>
手動重設該功能
如果疑難排解無法解決問題,您可以在租用戶上手動重設此功能。 請在執行 Microsoft Entra Connect 的內部部署伺服器上依照下列步驟操作。
步驟 1:匯入無縫 SSO PowerShell 模組
- 首先,下載並安裝 Azure AD PowerShell。
- 瀏覽至
%programfiles%\Microsoft Azure Active Directory Connect
資料夾。 - 使用此命令匯入無縫 SSO PowerShell 模組:
Import-Module .\AzureADSSO.psd1
。
步驟 2:取得已啟用無縫 SSO 的 Active Directory 樹系清單
- 以系統管理員身分執行 PowerShell。 在 PowerShell 中,呼叫
New-AzureADSSOAuthenticationContext
。 出現提示時,請輸入租使用者的混合式身分識別系統管理員認證。 - 呼叫
Get-AzureADSSOStatus
。 此命令會提供已啟用這項功能的 Active Directory 樹系清單 (查看 [網域] 清單)。
步驟 3:已設定此功能的每個 Active Directory 樹系,均停用無縫 SSO
呼叫
$creds = Get-Credential
。 出現提示時,輸入預定 Active Directory 樹系的網域管理員認證。注意
您必須以 SAM 帳戶名稱格式 (contoso\johndoe 或 contoso.com\johndoe) 輸入網域系統管理員認證使用者名稱。 我們會利用使用者名稱的網域部分,使用 DNS 來尋找網域系統管理員的網域控制站。
注意
使用的網域系統管理員帳戶不得為「受保護的使用者」群組的成員。 若是如此,作業會失敗。
呼叫
Disable-AzureADSSOForest -OnPremCredentials $creds
。 此命令會從此特定 Active Directory 樹系的內部部署網域控制站中移除AZUREADSSOACC
電腦帳戶。注意
如有任何原因無法存取 AD 內部部署,您可以略過步驟 3.1 和 3.2,改為呼叫
Disable-AzureADSSOForest -DomainFqdn <Domain name from the output list in step 2>
。您已設定此功能的每個 Active Directory 樹系,均重複上述步驟。
步驟 4:為每個 Active Directory 樹系啟用無縫 SSO
呼叫
Enable-AzureADSSOForest
。 出現提示時,輸入預定 Active Directory 樹系的網域管理員認證。注意
您必須以 SAM 帳戶名稱格式 (contoso\johndoe 或 contoso.com\johndoe) 輸入網域系統管理員認證使用者名稱。 我們會利用使用者名稱的網域部分,使用 DNS 來尋找網域系統管理員的網域控制站。
注意
使用的網域系統管理員帳戶不得為「受保護的使用者」群組的成員。 若是如此,作業會失敗。
已設定此功能的每個 Active Directory 樹系,均重複上述步驟。
步驟 5:啟用租用戶上的功能
若要在租用戶開啟此功能,請呼叫 Enable-AzureADSSO -Enable $true
。