1

如果这已得到回答,我深表歉意,但我已经搜索了几个小时,但仍然不太明白。这一个具体的问题,而不是“哪个是最好的”问题。

具体问题以斜体表示。

我创建了一个 RESTful API,起初它是完全开放的。然而,该组织现在决定创建一个第一方移动应用程序来消费和(在某种程度上)更新数据。

我正在调查身份验证框架 (oAuth2),但不确定 oAuth2 是否是实现我们目标的正确方法。并且,如果是,哪些授权授予适用于哪组用户。

我们的目标是:

  • 允许用户完全通过 oAuth 2 提供商(twitter、facebook、google)在第一方应用程序中登录和创建帐户。这些用户可以通过第一方应用访问最大的数据集。
  • 为用户分配不同的角色(管理员、版主等)。
  • 允许其他应用程序注册、接收令牌凭据,并具有有限的写入访问权限或对数据的扩展访问权限。这将打开它们以创建第三方应用程序或研究系统。
  • 最后,我们希望保持一些数据完全开放,不需要身份验证。

那么,我是否正确假设我们要设置一个 oAuth2 *Server*(授权和资源服务器)?

如果是这样,哪些授权授予适用于上述情况?

最后一个问题:对于使用第一方应用程序的用户,该应用程序是否负责登录并保留他们的访问凭据?API 服务器不提供 html,并且是 100% RESTful。它是否需要提供登录表单?

4

1 回答 1

1

如果您需要根据各种 OAuth2 社交登录对 API 用户进行身份验证授权,您确实需要某种 API 服务器或服务,您可以在其中定义您的用户和组/角色以及基于您的用户可用的范围规则。

一些云托管选项包括:

如果您与上述服务集成,您可以让该服务负责对用户进行身份验证,并确保每个用户调用都首先检查该服务的权限,然后再继续执行任何操作。

于 2017-07-30T21:46:08.393 回答