Certificate

刪除 cookie 後,Chrome 會從哪裡獲取我的身份?

  • December 29, 2020

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

刪除所有 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 瀏覽器上也會發生同樣的事情,請問有什麼想法嗎?

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

注意:證書身份驗證通常由 ADFS 用於外部使用者身份驗證,當 AD 不可訪問而主要身份源仍為 AD 時。

要使 Azure AD 實現 SSO,使用“ Windows 10 帳戶”的特殊載入項。在大多數情況下,許多公司都使用混合身份模式,因此 Azure AD 將使用者身份驗證用於本地 ADFS。

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

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

為了更深入地研究 SAML 身份驗證如何在 Chrome 中發生,我建議安裝SAML 消息解碼器外掛。這將為您提供有關 SAML 請求和響應的線索。在請求中,您應該檢查saml2p:AuthnRequestsaml2:Issuer。我會查看請求中的AssertionConsumerServiceURLDestination以確定它的來源。

您還需要檢查samlp:Response和它的Issuer。通過 issuer 值,您將了解 IdP 已響應的內容,並且在有效負載的主題會話中,您將看到如何辨識使用者。 SAML 請求 SAML 響應

引用自:https://serverfault.com/questions/1047879