刪除 Cookie 後,Chrome 從哪裡取得我的身分?

刪除 Cookie 後,Chrome 從哪裡取得我的身分?

我試圖弄清楚 Google CHrome 在向身份提供者進行身份驗證時從哪裡獲取我的身份(帶有證書身份驗證的 SAML) 我嘗試過的操作:

刪除所有cookie、已儲存的密碼、快取文件

從我的個人儲存中刪除我的個人憑證(我進行身份驗證的憑證)

在 Firefox 上,這足以讓 IDP 將我註銷,並在我刷新頁面時再次提示我輸入證書,但在 Chrome 上,它只會讓我重新登入!

在 chrome://password-manager-internals/ 上,我可以看到載入密碼的過程(我不知道是哪一個,因為我輸入的唯一密碼是用於解密我刪除的使用者憑證的密碼!):

Message: PasswordAutofillAgent::DidStartProvisionalLoad
PasswordManager::DidNavigateMainFrame: false
The new state of the UI: 0
Message: PasswordAutofillAgent::SendPasswordForms
only_visible: false
Security origin: https://ADFS-IDP/
Number of all forms: 1
Message: PasswordAutofillAgent::SendPasswordForms
only_visible: true
Security origin: https://ADFS-IDP/
Number of all forms: 1
Form found on page: {
    Action : https://ADFS-IDP/ ,
    Form name or ID :
}
Form is visible: false
Some control elements not associated to a form element are visible: false
Message: PasswordManager::CreatePendingLoginManagers
Message: PasswordManager::OnPasswordFormsRendered
Message: PasswordManager::IsAutomaticSavePromptAvailable
Message: No provisional save manager
HTML form for submit: {
    Action : https://ADFS-IDP/ ,
    Form name or ID :
}

我的問題是:Chrome 從哪裡獲取我的身份,而 Firefox 卻無法取得?我猜 Chrome 具有許多基於 Windows 的身份驗證功能,因為 Edge 瀏覽器上也會發生同樣的情況,請問有什麼想法嗎?

答案1

SAML 驗證使用 AD FS 或其他身分提供者進行 SAML SSO,瀏覽器本身永遠不是 IdP。事實上,Chrome 能夠取得 Windows 會話令牌並將其傳遞給服務提供者 (SP)。 SAML 本身不使用憑證作為身份,但您的 ADFS 伺服器可以。如果您的 ADFS 配置為多種方式來識別用戶,即使沒有憑證也可以。

注意:當 AD 無法存取且主要身分來源仍是 AD 時,ADFS 通常僅使用憑證驗證進行外部使用者驗證。

為了使 Azure AD 實作 SSO,需要使用特殊的加載項“Windows 10 帳戶在大多數情況下,許多公司都使用混合式身分模式,因此 Azure AD 利用對本機 ADFS 的使用者驗證。

注意:刪除憑證並已在 ADFS 上進行驗證時,您的會話令牌將保留在 Windows 會話中。

如果您在私有模式下執行 Chrome,則不會發生 SSO,因為此模式無法存取 Windows 會話上下文。

為了更深入研究 SAML 身份驗證如何在 Chrome 中發生,我建議安裝SAML訊息解碼器插入。這將為您提供 SAML 請求和回應的線索。在請求中您應該檢查saml2p:AuthnRequestsaml2:發行者。我會看看斷言消費者服務URL目的地在請求中確定它來自哪裡。

您還需要檢查樣本:回應這是發行人。透過頒發者值,您將了解 IdP 已回應的內容以及主題在有效負載的會話中,您將看到如何識別使用者。 SAML 請求 SAML 回應

相關內容