2012-03-23 85 views
-2

方法1
浏览器定向到服务提供商。服务提供商检查是否设置了cookie,如果没有,则重定向浏览器到身份提供商,身份提供商(IdP)验证用户并将ID重定向到服务提供商(SP)。 SP采用该ID并在浏览器中将其设置为会话cookie,并将用户重定向到服务。下一次,如果用户在同一会话中再次请求服务,SP会检查cookie并直接重定向到服务。

方法2
浏览器指向服务提供商。服务提供商重定向到IdP。 IdP检查它的cookie,如果cookie不存在,IdP认证用户并在浏览器中设置会话cookie。重定向SP的正面回应。 SP将用户重定向到服务。下一次用户请求会话中的服务时,浏览器将被定向到服务提供商。服务提供商重定向到IdP.IdP检查它的cookie,如果存在,它会向SP发送正面响应。这两种方法哪一种更适合SAML体系结构

回答

-1

我不相信这些都是有效的SAML实现。通常在SAML中,身份信息通过HTTP POST或SOAP Web服务进行通信(请参阅:http://en.wikipedia.org/wiki/Security_Assertion_Markup_Language#SAML_2.0_bindings)。 Cookie不用于“认证”用户。

我们有一个Web应用程序,它使用HTTP POST中传递的SAML 2.0 XML来验证用户身份。我们客户的员工通过防火墙侧的身份提供者访问我们的应用程序。

+0

:如果不使用cookie,那么用什么来验证用户? HTTP是一个无状态的协议吗?谁将跟踪用户认证的令牌? – suraj 2012-05-26 04:52:01

+0

您的应用可以使用cookie来记住已认证的用户,但这不是SAML的工作原理。身份提供者(真正知道用户是谁的其他服务器)通过POST或通过SOAP发送SAML XML。一旦你的应用程序(源代码提供者)有了它,它就可以用cookie来维护用户的会话。 – 2012-05-28 00:32:16

0

我很确定Guanxi执行Shibboleth(SAML2配置文件)并且几乎可以确定Shibboleth itself可以简化为你的“方法1”。

您最好检查一些现有的SAML2配置文件实现。

相关问题