Oauth2是否适合我们的需求?

时间:2017-06-08 10:24:57

标签: java security authentication playframework oauth-2.0

1 - 现状

  • 我们有一个REST API(用Java中的Play框架2.5编码)和四个前端与它交互(两个网络应用程序:后台办公室和我们用React编码的网站,以及两个移动应用程序: Android和iOS)。
  • 一切正常,但没有用户管理。

2 - 我们想做什么

  • 我们希望添加两个角色的用户管理:用户(可以注册并登录我们的网站和我们的移动应用程序)和管理员(可以做用户可以做的所有事情以及可以登录到后台)。换句话说,管理员可以使用所有Web服务,而用户只能使用其中一些。
  • 首先,用户必须能够使用电子邮件和密码注册。
  • 第二次(这不是我们的MVP的一部分),我们希望有机会使用Google或Facebook帐户进行注册。

3 - 技术选择

  • 经过大量阅读后,我们认为认证步骤由Oauth2处理的认证是合适的选择。
  • 但是,在我们的研究过程中,我们找到了让我们犹豫不决的文章,用这些句子来说:
  

"您应该只在实际需要时才使用OAuth。如果你是   构建一个服务,您需要使用用户的私有数据   存储在另一个系统上 - 使用OAuth。如果不是 - 你可能想要   重新思考你的方法!"

     

"要明确,开发人员手中的OAuth 2.0很深   对网络安全的理解可能会带来安全感   实现。然而,在大多数开发人员手中 - 一如既往   过去两年的经验 - 2.0很可能产生   不安全的实施。"

  • 我们不会立即实施Google或Facebook身份验证,也不会对网络安全有深刻理解,因此我们质疑选择Oauth2的相关性。

4 - 实施

  • 我们已经了解了Oauth2的工作方式,并且不会因为客户端的实施而感到害怕,这似乎很简单(并且有很多项目可以帮助实现)。
  • 相反,对于服务器端,我们将不得不创建一个授权服务器,它会让我们感到害怕,因为我们不知道该怎么做。自己实现整体似乎是一项相当实质和困难的工作(我们没有找到任何使用Play Java的例子),我们害怕犯错会造成安全漏洞并且不会出现问题。 ; t想要重新发明轮子。我们找到了一些工具,如Apache Oltu或Spring Security(我已经在另一个项目中使用过),但我们不确定它们是否适合我们想要做的事情。

5 - 问题

  • Oauth2真的是我们需要的合适选择吗?
  • 如果我们选择Oauth2,我们应该怎么做才能实施?试着自己做吗?使用像Apache Oltu或Spring Security这样的工具?

提前感谢您的回答!

0 个答案:

没有答案