是SAML令牌缓存/在浏览器上存储任何地方?(Are SAML tokens cache/store

2019-08-03 00:27发布

场景:

  1. 浏览器(用户)的服务提供商(SP)请求的资源。
  2. SP重定向(SAML请求)给身份提供者(IDP)。
  3. 由于这是第一次登录时,用户给出了(IDP)他/她的有效凭证。
  4. 的IdP然后重定向浏览器(与SAML响应,其包括SAML令牌)到SP页。

我有两个问题:

A.在第4步,做浏览器存储或缓存SAML响应和/或SAML令牌?

B.如果是,什么样的事情(属性?超时?协议?)不让我走存储SAML令牌。 然后在它的应对到另一台计算机(有一个新的会话),并使用该令牌登录到同一SP?

Answer 1:

答案是“之类的”重新缓存。 在你的情况下,响应将通过POST发送到来自浏览器的服务提供商。 因此,浏览器可以“缓存”的帖子包含SAML响应数据。 所以,就像在浏览器中的任何其他POST事件,如果用户足够的时间使用后退按钮登录到SP要回POST事件后,POST数据可以被重新发送到SP。

有几件事情,有助于保持从被劫持的回应 -

  1. 各方之间使用HTTPS
  2. NotBefore和NotOnOrAfter属性的SP执行
  3. 的一次性使用标准SP执行(在SP必须确保响应不是在其有效期内重新使用。如果有效性窗口之外接收到所述消息,则SP应该丢弃消息)


Answer 2:

该IDP通常存储在客户端浏览器识别SAML会议会话cookie。 该会话cookie的盗窃可能是没有更多的保护,那么任何其他会话cookie。

使用在SP和IDP之间的通信HTTPS将提供保护会话劫持的很大。



Answer 3:

对于质疑,它可能取决于您使用的浏览器。

对于问题B,有防止从被重复使用SAML响应几种机制:

  1. SubjectConfirmationData有属性NotBefore和NotOnOrAfter指定的时间框架的SAML断言是有效的。 因此,该SAML声明不能被这个时间帧之外使用。
  2. SubjectConfirmationData有属性InResponseTo指定SAML断言对于发放SAML请求。 因此,该SAML声明不能用于其他SAML请求。
  3. SP必须保证SAML断言没有被维护一套使用SAML断言的重播。

你可以阅读第4.1.4.3和SAML配置文件规范的4.1.4.5。



Answer 4:

我知道这老了,但答案是肯定的浏览器中存储的SAML令牌作为一个cookie。 (典型值)你可以看到它在你的浏览器的cookie列表中,通过诸如Fiddler,SAML示踪FF等各种业务/会话督察



文章来源: Are SAML tokens cache/stored anywhere on the browser?
标签: saml saml-2.0