代码之家  ›  专栏  ›  技术社区  ›  h3ct0r

通过HTTP认证的Api凭据,好主意吗?

  •  0
  • h3ct0r  · 技术社区  · 9 年前

    我正在为自己的服务开发web API。由于API将被限制为一组特殊用户,所以我需要验证凭据。

    我看到了许多来自支付网关(如Stripe)的示例,它们使用一种简单的方法来验证用户:使用https网站,它们通过httpauth发送用户“令牌”,请求数据作为GET/POST参数。此用户令牌为每个用户生成一个,可以随时重新生成。

    这是允许访问我的API的安全方法吗?它看起来很容易实现,但我看不到其中的缺陷,或者可能我遗漏了什么? 也许使用非对称密码更安全?

    谢谢

    1 回复  |  直到 9 年前
        1
  •  1
  •   WoJ    9 年前

    为了进行身份验证,您必须向API提供API和用户之间共享的内容。可能是:

    • 登录名和密码。这是一个坏主意,因为它们不容易撤销
    • 象征。看看如何 Google uses JWT ,这是一个很好的实现。
    • TLS client certificate 。这依赖于应用程序(TLS)前面的层来授权特定客户端。由于API必须查询PKI才能识别客户机,因此安装起来更加复杂。

    我会选择基于令牌的身份验证。为了拥有一个功能控制台,客户端可以在其中获取令牌,这需要做一些工作,但最终它会更好地与身份验证标准保持一致(并且如果有需要,还可以灵活地使用客户端oAuth)