Jasny-SSOPHP 单点登录解决方案
PHP版单点登录 (兼容Ajax)
Jasny\SSO是一种相对简单的单点登录(SSO)实现解决方案。使用SSO,登录到单个网站将验证所有联属网站的身份.
实现原理
一共分为3个角色:
-
Client - 用户的浏览器
-
Broker - 用户访问的网站
-
Server - 保存用户信息和凭据的地方
每个Broker有一个ID和密码。Broker和Server事先已知道的。
当Client访问Broker时,它会创建一个随机令牌,该令牌存储在cookie中。然后,Broker将Client重定向到Server,传递Broker的ID和令牌。Server使用Broker的ID、密码和令牌创建哈希。此哈希用于创建指向用户会话的链接。创建链接后,Server会将Client重定向回Broker。
Broker可以使用令牌(来自cookie)、自己的ID和密码创建相同的链接哈希。在执行请求时,它会传递具有会话ID的请求。
Server将注意到会话ID是链接并使用链接的会话。因此,Broker和Client使用相同的会话。当另一个Broker加入时,它也将使用相同的会话。
有关更深入的解释,请阅读Wiki。
评论