Php Symfony 2中具有多个相同用户名的安全性

Php Symfony 2中具有多个相同用户名的安全性,php,security,symfony,entity-relationship,Php,Security,Symfony,Entity Relationship,我会更清楚地解释我的问题: 我正在为一个用Symfony 2设计的网站站点工作。每个访问者都可以在一个网站上注册(由另一个网站动态创建),当然这个访问者也可以登录这个网站 我希望访问者可以在几个网站上注册,使用相同的用户名。因此,最终会有许多注册用户在多个网站上使用相同的用户名 事实上,要登录,安全性只需检查用户名和密码,我想通过检查访客想要登录的当前网站id来扩展此控件以允许连接 因此,当用户在动态网站上发送登录表单时,我想检查网站id,搜索附加的用户名,检查密码并登录此网站 这是我的全部财产

我会更清楚地解释我的问题: 我正在为一个用Symfony 2设计的网站站点工作。每个访问者都可以在一个网站上注册(由另一个网站动态创建),当然这个访问者也可以登录这个网站

我希望访问者可以在几个网站上注册,使用相同的用户名。因此,最终会有许多注册用户在多个网站上使用相同的用户名

事实上,要登录,安全性只需检查用户名和密码,我想通过检查访客想要登录的当前网站id来扩展此控件以允许连接

因此,当用户在动态网站上发送登录表单时,我想检查网站id,搜索附加的用户名,检查密码并登录此网站

这是我的全部财产:

Website
========
id
title

User
========
id
username
password
email
salt
website_id
总之,几个用户可以有相同的用户名,但在不同的网站上。(相比之下,一个网站不能有几个相同的用户名),我不知道在这种情况下如何实现安全性


有解决方案吗?

您需要一个非站点特定的集中式身份验证/凭据列表,然后将站点帐户链接到凭据,或者需要能够将多个帐户关联在一起。换句话说,您需要查找所有具有相同名称的帐户,并向用户提供将这些帐户“链接”在一起的选项。当然,为了安全起见,在建立链接之前,用户需要验证对链接帐户的访问权限,以便知道您没有授予他们访问一个名称相同但不属于此人的帐户的权限。

谢谢您的回答,事实上,网站是真正独立的,我不想关联用户的帐户(对于不知道自己在网络平台上注册的用户来说,这并不实际),所以第二个选择是禁止。但是你能不能解释一下你的第一个想法:o?好吧,集中式身份验证系统可以是CAS、LDAP甚至Facebook登录之类的任何东西。这是多个服务的单点登录的想法。好的,我认为在这种情况下创建集中身份验证是唯一的方法,我想我没有其他选择,谢谢!