认证到的Symfony 2.0从外部系统(Authentication into Symfony 2

2019-09-19 09:06发布

我是比较新的Symfony2的。 我已经建立了使用Symfony2中的内置安全机制的系统从数据库中验证用户身份。 让我们称这个系统“B”

有在asp.net使用相同的凭据(我曾从该系统复制的用户表)在不同的服务器上的应用程序。 让我们称这个系统“A”。 是否有可能在用户点击的ASP应用程序,它会将其重定向到Symfony2的应用程序的链接,并自动,而无需重新输入他们的登录凭证验证他们的身份呢?

我对编程系统“A”有限的控制。 是否有可能具有单个/静态/预定义的加密的用户可以从系统中的被用于在系统B(当然提供作为一个数据参数的用户的类型,所以我可以限制在系统B的用户来验证用户凭证他/她的授权任务)。 一旦通过验证,用户应该能够直接与如同它们在使用系统B的登录页面已记录的Symfony2的应用程序进行交互。

在更清晰的术语,这里是事件的流程:

  1. 到ASP.NET系统用户登录。
  2. 在链接上用户点击重定向到Symfony2的应用
  3. 用户将自动通过验证系统会根据他对Symfony2的应用角色访问

请注意,我不能保持Symfony的服务器上的用户数据库。 我只会有关于不同的用户类型的信息。

我看着成Symfony2的方法自定义身份验证提供,但我不知道这是否会解决完全重定向客户/用户对Symfony2的应用目的。 它看起来更像是一个Web服务的身份验证方法,但我可能是错的。

SAML是一个更好的选择来实现这一目标?

Answer 1:

首先,这是一个排序解决的问题的。 喜欢的东西的OAuth是有原因的存在。 我建议尝试煮了自己的解决方案(和处理的安全后果)之前在寻找这一点。

但是,为了回答你的问题:

在我看来,有这样做没有能够改变系统中的“A”的东西没有安全的方式。 不知何故,Symfony的应用程序需要能够得到系统的“A”一些高度未猜测的散列令牌,以便它可以与它进行身份验证。 还有什么是不安全的。

理想情况下,你会作出这样的将用户导向到Symfony的应用程序对系统“A”创建用户的用户名和会话什么哈希的形式,并与用户发送沿URL将其重定向到Symfony的应用程序(即当PARAMS:像http://symfony-app.com/login?token=[the really long, un-guessable hash] )。 系统“B”将存储在数据库中的哈希值的有限时间内,你的Symfony的应用程序将针对哈希验证。



文章来源: Authentication into Symfony 2.0 from an external System