【问题标题】:application authentication API应用认证API
【发布时间】:2016-03-21 01:43:14
【问题描述】:

我是一名学生,我正在实习。对不起我的英语不好

情况

2 个人正在为消息系统构建后端。有实际的和传递的消息。主后端包含来自所有消息的所有数据。此后端仅将实际消息推送到仅包含实际警报的小型后端的数据库。这些实际警报由 api 提供给多个前端,例如应用程序。

我需要对 api 网关进行研究,以使外部开发人员可以访问迷你后端中的数据。这些开发人员只需要注册或请求一个帐户,以便我们知道哪个应用程序/开发人员与我们的 api 连接。我们没有拥有用户帐户的最终用户。

API 需要可扩展,因为在未来(几个月内)该系统将取代旧系统。当前系统在发送紧急消息/警报时需要在几分钟内处理超过 5.000.000 个请求。

我的问题

我在 Google 上搜索了很多有关身份验证方法的信息,并阅读了有关 OAuth2 的信息。这仅对使用用户帐户对最终用户进行身份验证是必需的?我没有,所以我认为 OAuth 对于我的情况来说很复杂。但是,当我查看多个 API 网关(如 Mulesoft、Amazon API 网关等)的文档时,我总是通过 OAuth 而不是简单的身份验证令牌系统或其他东西返回。

请参阅this 链接,然后查看创建客户端注册流程。这使用 OAuth 还是我理解错误?

现在我的问题

  • 是否有默认方法(例如 google 或 facebook)用于通过 API 密钥对外部应用程序进行身份验证?以及这个方法/框架/idunno 是如何被调用的?

  • 我可以/需要使用 OAuth 执行此操作吗?

一些可以满足我的愿望的示例 API 网关会很棒!

【问题讨论】:

    标签: api authentication oauth-2.0 jwt aws-api-gateway


    【解决方案1】:

    这里是 Amazon Api Gateway 团队。

    我们的服务支持满足简单用例的原生 API 密钥。您是否对在客户端访问您的 API 时对客户端进行身份验证的简单机制感兴趣?一些限制是管理大量密钥更加困难,并且实际上没有对特定后端资源的任何授权,通常只有访问 API 的身份验证。

    http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-api-keys.html

    OAuth 更适合新用户注册的动态用户群,并且您希望能够随着时间的推移控制现有用户的访问权限。当用户拥有只有他们应该能够访问的个人数据时,它也很有用。

    杰克

    【讨论】:

    • 您好,感谢您的回答,您对“更适合动态用户群”是什么意思?我们希望外部开发人员需要创建一个帐户。此帐户链接到一个 API 密钥,该密钥可以访问我们的服务 (API)。因此,当我正确理解您时,我需要 OAuth 吗?您的文档中描述的 API 密钥系统无法实现这一点?
    • 我想我的意思是 Api 密钥是静态的,您必须自己管理创建/配置/分发这些密钥。 Api Keys 也可以分发给多个客户端。 OAuth 是一种管理临时令牌的不同解决方案,可用于对后端数据库中的特定用户进行身份验证。如果您想从本质上向您的服务分发静态访问密钥,那么在我看来,Api Keys 将适用于您的用例。
    • 还有什么要考虑的,Api Keys 和您的用户身份之间的关系必须由您的服务管理,对吧?如果您打算使用 Api 密钥在后端识别您的用户(一直传递 Api 密钥),那么我会说 OAuth 将是一个更安全的解决方案,因为用户必须对自己进行身份验证才能获得令牌,然后使用该令牌在有限的时间内。如果没有,如果您只是将 Api Keys 用作客户端的随机密钥,并且没有将它们用作标识符,那么 Api Keys 是完美的。
    • 谢谢,我想我使用 API 密钥。在我们的情况下,数据是公开的,但我们希望在用户提出许多请求或对我们的数据做坏事时阻止用户。我们还将监控谁提出了多少请求等。感谢您的详细解释,正是我需要的!
    猜你喜欢
    • 2019-01-16
    • 2015-07-07
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 2014-08-13
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多