通过HTTP Auth的Api凭证,好主意?

时间:2016-06-27 03:52:17

标签: api security http request http-authentication

我正在为自己的服务开发Web API。由于API将仅限于一组特殊用户,因此我需要验证凭据。

我在Stripe这样的支付网关中看到了很多示例,他们使用一种简单的方式对用户进行身份验证:使用https网站,他们会向用户发送“令牌”标记。通过http auth,并将请求数据作为GET / POST参数。该用户令牌为每个用户生成一个,并且可以随时重新生成。

这是一种允许访问我的API的安全方式吗?实现起来似乎很简单,但我看不出它的缺陷或者我错过了什么? 也许使用一些不对称加密更安全?

谢谢!

1 个答案:

答案 0 :(得分:1)

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

  • 登录名和密码。这是一个坏主意,因为它们不像撤销
  • 那么简单
  • 一个令牌。看看Google uses JWT如何,这是一个很好的实现。
  • a TLS client certificate。这依赖于您的应用程序(TLS)之前的层以授权特定客户端。由于API必须查询PKI以识别客户端,因此更加复杂。

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