我是SAML-2世界的新手。 我将使用java为基于Web的产品实现SAML-2。 我的同事建议采用以下解决方案来实施SAML-2。
我只想讨论它是否有意义......
情景A:John自首次在其公司实施SSO以来首次登录
场景B:John想再次使用TMS但已关闭浏览器
我的问题 - 这是一种标准或正确的方法吗? 如果我们使用cookie来记住SAML令牌,那么如果用户清除cookie或者不想保留cookie会怎么样?在这种情况下,用户每次都会被引导到登录页面......
是否有任何资源(即书籍或在线教程)我可以为此特定目的进行调查?
请让我知道你的建议。
答案 0 :(得分:1)
您所描述的内容与联合登录在.NET平台上的工作方式非常接近。首次从Idp收到SAML2票证,但在后续请求中不涉及Idp,而是cookie。
但是,在.NET上,SAML2令牌不存储在cookie中,而是cookie包含适合.NET应用程序的形式的身份信息,以避免每次都需要重新解析和重新验证SAML2令牌。整个cookie使用只有服务器知道的密钥加密,因此用户无法篡改它。
答案 1 :(得分:0)
在您的方案B中 - 用户通常会被重定向到IDP(并且在IDP的会话仍处于活动状态时自动登录而无需任何用户交互),而不是重新使用cookie。在AFDS响应后(步骤6),应用程序通常在HTTP会话中存储有关经过身份验证的用户的信息,并在用户注销或关闭浏览器后清除所有内容。
但你的方法绝对可行。如果用户清除cookie,您只需使用ADFS初始化新的SAML身份验证请求。这里的关键是ADFS不应要求用户对每个请求进行身份验证,但只要ADFS会话保持有效,它就应该立即使用SAML令牌返回到TMS,因此用户通常只需要在一次请求中进行一次身份验证。而