sur*_*raj 3 saml single-sign-on
我有一个网站说www.e1.com.www.e1.com是服务提供商.每当我点击其中的服务时,我都会被重定向到身份提供商,比如www.e2.com.在此之前,在服务提供商(www.e1.com)中,我将检查是否为用户设置了任何cookie.这是第一次没有cookie,所以它会发送空的SessionId值.因此,我发送SAML请求到www.e2.com并且没有id(因为没有设置cookie .Cookie包含Id)
现在在www.e2.com ieIn身份提供商,我将检查www.e1.com是否已发送任何Id值.如果为null,我将创建会话ID并将其存储在数据库中(在www.e2.com中).然后我将浏览器重定向到我的身份验证页面,其中将询问用户的姓名和密码,因此他将进行身份验证.如果身份验证成功,我将使用包含会话ID的SAML响应将浏览器重定向到服务提供商(www.e1.com).
现在在Service Provider中,SessionId值将存储在Cookie中,浏览器将被重定向到消费者服务页面(用户想要访问的服务页面).
现在,如果同一用户想要从同一服务提供商(在会话中)访问某些其他服务,浏览器显然会在Cookie中发送SessionId以及请求SAML.身份提供者将检查其数据库中的SessionId值,如果它在其数据库中,那么它将直接访问用户的服务而不输入登录凭证,因为用户已经为会话进行了身份验证.
这是使用SAML实现单点登录的正确方法吗?或者
如果这种方法有缺陷,你能解释一下这些缺陷吗?
提前致谢 :)
小智 15
你的理解不太正确:)
这是流程:
用户尝试访问SP上的受保护资源.SP检查用户是否具有本地(和经过身份验证的会话).如果不是,它会生成<AuthRequest>包含随机ID 的SAML .然后,SP使用此AuthnRequest将用户重定向到IDP.
IDP将检查用户是否具有本地经过身份验证的会话.如果没有,它将验证用户IDP将发送AuthResponse
回SP,其inReplyTo属性与SP发送的id匹配.AuthnRequest
然后,SP将创建本地会话.除非a)会话到期或b)SP收到SingleLogout来自IDP 的消息,否则对SP的后续请求将不涉及IDP.
| 归档时间: |
|
| 查看次数: |
6091 次 |
| 最近记录: |