我们在VBulletin论坛上有很多用户.现在我想在同一个用户群的轨道上写几个更多的应用程序.到目前为止,VBulletin正在处理所有身份验证和会话管理.什么是为我的用户提供SSO的最佳方式onVBulletin和我正在编写的rails应用程序
我正在使用v Bulletin和自定义应用程序进行单点登录过程.我可以使用cookie登录Vb.我可以访问所有.但是当访问发送"私人消息"时.它说
"您已关闭私信.在您通过编辑选项打开私信之前,您可能无法发送私信."
是否所有权限都设置在"数据源"表中?
谢谢大师
理想情况下,您的两个站点是公共域的子域(例如forum.example.com
和rails.example.com
),或共享相同的域(www.example.com
.)其中一个站点将是主要的身份验证器,并设置一个cookie(对于.example.com
公共父域的情况[注意.
之前example.com
]或者www.example.com
在共享域的情况下,以便两个应用程序都可以访问它),其中cookie包含:
该 user ID
a salt
(在登录时计算的随机值),和
a SHA-2 signature
通过三元组(user ID
+ salt
+ a shared secret key
)计算,其中共享密钥是两个站点都知道的秘密字符串.
每个站点将能够检索user ID
和salt
从cookie,然后使用shared secret key
(由两个应用程序唯一已知的)来计算SHA-2 signature
必须匹配SHA-2 signature
存储在cookie中.
如果SHA-2 signatures
匹配,则可以假定用户已通过身份验证,否则强制用户再次登录.
注销时必须销毁cookie.
小字
为了防止会话劫持,所有通过SSL加密的请求都应该通过SSL加密(使用https.)如果无法做到这一点,基于客户端的IP地址以及浏览器类型和版本(用户代理)的散列应该是可能在登录时计算并存储在cookie中.在提供每个请求之前,应该根据客户端的IP地址和用户代理重新检查它.基于哈希的方法是通过默默无闻的安全性,可以被愚弄; 此外,每当不同的代理或出口节点(具有不同的IP地址)转发请求时,您的系统可能会踢出从代理池后面或使用TOR访问互联网的用户.