Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
实施Symfony2单点登录_Symfony_Single Sign On - Fatal编程技术网

实施Symfony2单点登录

实施Symfony2单点登录,symfony,single-sign-on,Symfony,Single Sign On,我对Symfony2中的有一个基本的了解。现在,我正在尝试为多域网站实现单点登录功能 SSO概念本身相当简单: 域A是cookie域;用户可以登录此域 当登录域B时,用户被重定向到域A,其中请求了A。用户需要域a上的会话才能获取此密码 获得OTP后,用户返回域B,域B将OTP与域A上的会话相匹配 如果匹配,将为域B创建一个会话。该会话将根据域a上的会话对从此点开始的每个后续请求进行验证 实现域A的防火墙/身份验证可以像通常那样完成。据我所知,我需要: 为域B设置防火墙 为此防火墙创建一个侦

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

SSO概念本身相当简单:

  • 域A是cookie域;用户可以登录此域
  • 当登录域B时,用户被重定向到域A,其中请求了A。用户需要域a上的会话才能获取此密码
  • 获得OTP后,用户返回域B,域B将OTP与域A上的会话相匹配
  • 如果匹配,将为域B创建一个会话。该会话将根据域a上的会话对从此点开始的每个后续请求进行验证
实现域A的防火墙/身份验证可以像通常那样完成。据我所知,我需要:

  • 为域B设置防火墙
  • 为此防火墙创建一个侦听器,以某种方式将用户重定向到域a(更具体地说:请求OTP的uri)
  • 创建处理OTP并为域B创建会话的
  • 创建另一个侦听器,根据域A上的会话检查会话有效性
然而,我真的可以使用一些技巧来指导如何捆绑完成这项工作。如果有人能帮我,那就太好了


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

为了获得多域SSO,您可以实现SAML解决方案。看一看simplesamlphp软件,并在本扩展中介绍symfony1


要解决OTP问题,您可以使用LinOTP2 witch与simplesamlphp兼容:

如果您能让它运行起来,这听起来像是一个很棒的捆绑包:-)@richsage查看我自己的答案:)