适用于HATEOAS / REST API的身份验证方法

时间:2016-10-24 02:39:56

标签: rest authentication hateoas

最近我在HTTP JSON REST API中读了一些关于HATEOAS实现的内容(因为我创建了一个),我理解了链接和操作的一般概念等等,并且定义了许多不同的格式,例如作为HAL,JSON API等

我不明白的是,HATEOAS / REST与身份验证之间的关系是什么,或者使其成为一个更具体的问题,什么类型的身份验证应该是正确的" HATEOAS / REST API使用?

显然,它应该是无状态的,比如JWT令牌或者类似的东西,但是有没有任何标准和/或规则/指南或认证是完全不同的主题?

修改

为了进一步澄清,我的问题不是我在选择要实现的身份验证时遇到问题,但我不知道API身份验证需要什么才能将其称为REST / HATEOAS API。

所以(假设的)场景将是:创建一个API,可以说在每个单词的意义上都是REST / HATEOAS并获得$ 1,000,000。制定一个违反协议的小错误并获得$ 0。意思是,目标不是做最有意义的事情,最有效率或者开发者和/或用户有什么好处,而只是成为100%的REST / HATEOAS,超越了疑点。

1 个答案:

答案 0 :(得分:0)

就像你说的那样,你应该以独立的方式看待身份验证。

基于令牌的令牌实现的基于令牌的身份验证系统确实非常适合基于HTTP的API的无状态世界,所以这可能是建议给出最常见的场景。但是,您应该查看场景的特定要求以做出最终决定,也许有更简单的选项可用,如API密钥。

请记住,如果您选择基于令牌的方法,此后还有很多需要考虑的事项。如果您没有为应用程序定义获取访问令牌的方法,那么您的API将没有多大用处,并且您可以通过多种方式解决此问题,例如:

  • 您可以滚动自己的系统并定义自己的流程,了解如何获取令牌,然后由API使用以执行身份验证。 不推荐,耗时且容易出错)

  • 实施符合OpenID ConnectOAuth 2.0等可用身份验证标准的身份提供商/授权服务器系统 (耗时且复杂,但通过遵循标准,您不太可能陷入困境,并且您还将获得互操作性)

  • 将身份验证委派给第三方身份验证提供程序,如Auth0
    (很容易上手,具体取决于使用量会花费你的钱而不是时间)

披露:我是Auth0工程师。