【发布时间】:2017-11-14 10:42:11
【问题描述】:
tl;dr:尝试在不同的其他应用上使用一个应用的用户凭据。尝试了一个解决方案,但我遇到了障碍,正在寻找更好的想法。
--
假设我有 3 个不同的 laravel 5.4 安装,我们称它们为“App1”、“App2”和“App3”。这三个应用程序的功能完全不同,它们可以被相同的用户使用。
目前,用户正在使用 App1,他们的登录凭据和信息都保存在 App1 的数据库中。
App2 与应用 1 位于同一专用网络上,所以当我想让 App1 的用户能够使用他们现有的凭据登录 App2 时,我采用了这种方式:
- 使用 App1 的私有 IP 地址在 App2 中创建了指向 App1 数据库的数据库连接;
- 在 App2 和 bam 的用户模型上使用了这个新连接,它工作正常。
但现在我想用 App3 提供相同的可能性,但它不在同一个网络中,我开始看到我的实际解决方案的缺点。
我当然可以打开 App1 到 App3 特定 IP 地址的数据库连接并保持当前设置,但我觉得它越来越乱,我想这可能是一个安全风险(我在这方面的知识不够真的知道)。
然后我在想:API?也许护照?这实际上是我应该(并且可以)考虑的道路吗?如果是这样,实现它的简单方法是什么?
【问题讨论】:
-
最简单的方法是将 App1 的数据库打开到 App3 并使用相同的数据库进行身份验证。现在我假设您出于某些安全原因不这样做,而且我的系统管理知识不足以帮助您。但这正是我对我的一个项目所做的事情,而且效果很好。澄清“开放数据库”。我的意思是通过使其对外部网络开放或为 App3 的 IP 设置例外来使其对 App3 的服务器可用。
-
@devk 是的,这就是我对 App1 和 App2 所做的事情。这些应用程序位于同一个专用网络中,所以我认为这样的安全风险会更小,但是由于 App1 和 App3 必须通过 Internet 进行通信,我只是不确定,和你一样,我的系统管理员知识缺乏在这件事上;-)
标签: laravel laravel-5 single-sign-on