跨多个域的身份验证

时间:2012-01-10 20:29:58

标签: cross-domain single-sign-on session-cookies

我想为以下网站提供SSO:

abc.com    
def.com

我阅读了this article,其中有一个非常基本的例子,说明如何使用主/从域设置来设置SSO。虽然这是一个非常好的阅读,但它仍然没有回答一些问题。

abc.com将成为发布身份验证cookie的主站点。

假设用户未登录任何网站。如果该网站是abc.com,我所要做的就是检查auth cookie,没问题。如果用户在def.com上,则文章中的示例将重定向到abc.com并将cookie内容(如果有)作为另一个重定向中的查询参数返回。如果cookie包含内容,则cookie将存储在def.com上。

的问题:

  1. 如果本地cookie不存在,def.com上的每个页面重新加载都会触发2次重定向。
  2. 当用户注销时,必须删除主cookie和从属cookie,并将其传播到任何其他从属站点。
  3. 当用户登录时,我必须确保在主站点和从站点上都设置了cookie。
  4. 我特别担心第1点。有没有办法解决这个问题?

    我想在ajax中进行身份验证,但如果auth cookie从abc.com返回到def.com,我需要重新加载页面。不是一个非常令人愉快的解决方案。

    是否有人拥有更好的架构?

    修改

    写下来帮助我至少在某种程度上解决了这个问题。如果在登录时为master +所有从站点设置了cookie,则点1不再是问题。

    对于任何想要改进解决方案的人来说,问题仍然存在。

0 个答案:

没有答案