在AuthnRequest中使用ForceAuthn = true时,重新身份验证的提示(在我的情况下为通过智能卡的客户端证书)在Internet Explorer 11和Edge中按预期工作,但在Chrome中不起作用。 Chrome浏览器只是在没有任何提示的情况下登录我。
我检查了Chrome中所有可能的设置,尝试了在AuthnRequest中找到的所有设置(设置了显式的AuthnContextClassRef和/或AuthnContextDeclRef),但是我无法使其正常工作。
有人对我有什么想法要检查/搜索吗?
我什至在第一次登录后就删除了chrome中的cookie,但chrome仍然在第二次登录时登录了我
答案 0 :(得分:0)
很抱歉这么晚回复。 一种可能的解释是,如果IdP不支持AuthnContextClassRef中提供的身份验证上下文,并且服务提供者存在缺陷并且不检查SAML响应StatusCode。
例如,如果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请求和响应?并检查该请求是否实际上是有效的XML?