谁将设置由凭证信息组成的saml cookie

时间:2017-10-04 04:04:52

标签: java single-sign-on saml adfs idp

我正在浏览SAML doc。考虑applicatin1将发送登录请求,它将联系IDP进行身份验证,Idp会对用户进行身份验证。 假设我是第一次登录,在这种情况下,IDP要求输入用户名密码,并保存用户名密码,下次不会要求输入用户名密码。

我有些疑惑。

  1. 由于在saml中不同的应用程序可以使用相同的用户名密码登录,IDP如何保存用户名和密码,我将其读取存储在cookie中,但cookie被重新命名为一个应用程序,我们无法在不同的应用程序之间传递cookie。如何处理?

  2. 我们是否需要编写代码来创建cookie来保存用户名密码,或者saml / idp api会处理它。

1 个答案:

答案 0 :(得分:0)

当我开发SAML IdP时,登录名存储在一个cookie中,只要用户回到IdP,该cookie就会被解析。例如用户转到SP1,重定向到IdP,使用用户名/密码登录,IdP为其自己的域设置cookie,将用户重定向到SP1。用户然后转到SP2,重定向到IdP。 IdP看到cookie,解析用户,会话没有过期,因此从会话加载用户信息并将用户重定向到SP2。

不是IdP如何记住用户的重要位(它可以做到这一点,但它喜欢,因为SP永远不会看到登录)。重要的是IdP发送给SP的属性。因此,相同的用户登录可能导致从同一IdP登录事件发送到SP1和SP2的完全不同的属性。

在SP上,它取决于应用程序对属性的作用。例如,它可以创建一个JSESSIONID,并在其上挂起来自IdP的SAML断言。如果用户在JSESSIONID超时内返回,SP将只使用这些属性。如果超时已超时,则SP会将用户重定向到IdP,但如果IdP cookie未过期,则用户无需再次登录IdP,属性将以静默方式发送给SP。 / p>