在AuthnRequest中使用ForceAuthn = true时,重新验证的提示(在我的情况下,通过智能卡的客户端证书)在Internet Explorer 11和Edge中按预期工作,但在Chrome中不起作用。 Chrome只是在没有任何提示的情况下登录我。
我检查了Chrome中的所有可能设置,我尝试了在AuthnRequest中找到的所有内容(设置显式的AuthnContextClassRef和/或AuthnContextDeclRef),但我无法使其正常工作。
有没有人知道我要检查/搜索什么?
我甚至在第一次登录后删除了chrome中的cookie,但是在第二次登录时我仍然使用chrome登录
很抱歉这么晚回复。一种可能的解释是,如果IdP不支持AuthnContextClassRef中给出的认证上下文,并且服务提供商存在缺陷并且不检查SAML响应状态代码。
例如,如果IdP不接受密码,您发送:
<samlp:RequestedAuthnContext Comparison="exact">
<saml:AuthnContextClassRef>
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
</saml:AuthnContextClassRef>
</samlp:RequestedAuthnContext>
IdP将回应:
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Responder">
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:NoAuthnContext" />
</samlp:StatusCode>
</samlp:Status>
然后SP必须拒绝。
您是否在Chrome中使用SAML跟踪插件跟踪了SAML请求和响应?并检查Request是否真的是有效的XML?