16

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

SSO 概念本身相当简单:

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

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

  • 为域 B 设置防火墙
  • 为该防火墙创建一个侦听器,以某种方式将用户重定向到域 A(更具体地说:请求 OTP 的 uri)
  • 创建处理 OTP 并为域 B 创建会话的身份验证提供程序
  • 创建另一个侦听器,根据域 A 上的会话检查会话有效性

但是,我真的可以使用一些技巧来说明如何在捆绑中执行此操作。如果有人可以在这里帮助我,那就太好了。

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

4

1 回答 1

2

In order to get multidomain SSO you can implement a SAML solution. Take a look on simplesamlphp software and in this extension for symfony1 https://github.com/chtitux/sfSAMLPlugin

To resolve the OTP issue you can use for example LinOTP2 witch is compatible with simplesamlphp: https://github.com/lsexperts/simplesamlphp-linotp

于 2012-04-13T06:50:15.217 回答