删除 Cookie 后,Chrome 从哪里获取我的身份?

删除 Cookie 后,Chrome 从哪里获取我的身份?

我试图弄清楚在向身份提供商 (带有证书身份验证的 SAML) 进行身份验证时,Google CHrome 从哪里获取我的身份。我尝试过:

删除所有 cookies、保存的密码和缓存文件

从我的个人存储中删除我的个人证书(我用来验证身份的证书)

在 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 会话上下文。

为了深入了解 Chrome 中 SAML 身份验证的工作原理,我建议安装SAML 消息解码器插件。这将为您提供有关 SAML 请求和响应的线索。在请求中,您应该检查saml2p:身份验证请求saml2:颁发者我会看看断言消费者服务URL目的地在请求中识别它来自哪里。

你还需要检查样本:响应而且它发行人。通过发行人值,您将了解 IdP 已做出的响应,并且在主题在有效载荷会话中,您将看到如何识别用户。 SAML 请求 SAML 响应

相关内容