实现Symfony2单点登录

时间:2012-04-12 13:24:12

标签: symfony single-sign-on

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

SSO概念本身很简单:

  • 域A是cookie域;人们可以登录此域名
  • 登录域B时,用户将被重定向到域A,其中请求One-time password。用户需要在域A上进行会话才能获得此密码。
  • 获取OTP后,用户返回到域B,域O将匹配域A上的会话。
  • 如果匹配,将为域B创建会话。对于此时的每个后续请求,将针对域A上的会话验证会话。

为域A实施防火墙/身份验证可以像往常一样完成。根据我的理解,我需要:

  • 为域B设置防火墙
  • 为此防火墙创建一个侦听器,以某种方式将用户重定向到域A(更具体:请求OTP的uri)
  • 创建一个处理OTP的authentication provider并为域B创建会话
  • 创建另一个侦听器,根据域A上的会话检查会话有效性

但是我真的可以使用一些关于如何在捆绑中执行此操作的提示。如果有人能在这里帮助我,那就太好了。

另外,我还不确定如何实现OTP,或者如何比较两个会话,并确保它们都有效。这将在稍后发生,我需要首先使用此工作流程。

1 个答案:

答案 0 :(得分:2)

要获得多域SSO,您可以实施SAML解决方案。看看simplesamlphp软件和symfony1 https://github.com/chtitux/sfSAMLPlugin

的扩展名

要解决OTP问题,您可以使用例如LinOTP2与simplesamlphp兼容:https://github.com/lsexperts/simplesamlphp-linotp

相关问题