2012-04-12 189 views
16

我对Symfony2中的security concept有基本的了解。现在我正在尝试为多域网站实施单点登录功能。实现Symfony2单点登录

的SSO概念本身是相当简单:

  • 域A是Cookie域;人们可以登录该域
  • 当在域B上登录时,用户被重定向到域A,其中请求One-time password。用户需要域A上的会话才能获取此密码。
  • 获得OTP后,用户返回到域B,该域将与OTP到域A上的会话相匹配。
  • 如果匹配,将为域B创建一个会话。会话将根据从这一点开始,每个后续请求都会在域A上进行会话。

实现域A的防火墙/认证可以照常进行。在我的理解,我需要:

  • 设立域B
  • 防火墙建立这个防火墙的侦听器,以某种方式将用户重定向到域A(更具体:请求的OTP的URI)
  • 创建authentication provider一个处理一个OTP,并创建域B
  • 会话创建另一个监听器,检查对域的会话的会话效度

但是我可以真的使用一些关于如何在捆绑中做到这一点的提示。如果有人能帮助我,那会很棒。

另外,我还不确定如何实现OTP,或者如何比较两个会话,并确保它们都是有效的。那会晚一些,我需要先让这个工作流程工作。

+0

这听起来像一个伟大的包,如果你能得到它去:-) – richsage 2012-04-13 07:47:49

+1

@richsage看到我自己的回答:) – 2012-04-23 10:40:50

回答