机器到机器的REST认证



如果您有多个rest式web服务运行在不同的子域(accounts.site.com, training.site.com等)上,当一个服务需要使用另一个服务时,什么是好的身份验证机制?

人工身份验证很容易,因为他们提供登录凭据并获得JSON Web令牌,然后在每个请求中发送该令牌以对他们进行身份验证。

一台有用户名和密码的机器看起来很奇怪,所以我想知道有什么行之有效的方法来解决这个问题?

这取决于…从服务的角度来看,其他服务只是一个REST客户端,所以让我们坚持使用这些术语。

  • 如果你想用你的REST客户端访问不同的用户帐户,那么你必须通过服务注册你的客户端,你将获得一个API密钥。用户可以为该API密钥赋予特权,因此如果服务用户允许,您可以以服务用户的名义执行操作。
  • 另一方面,如果您的客户端只想访问自己的帐户,那么它只是服务的普通用户,它可以像其他用户一样拥有用户名和密码。

最新更新