适用于HATEOAS / REST API的认证方法
最近我一直在阅读一些有关HATEOAS在HTTP JSON REST API中的实现(因为我做了一个),并且我理解链接和操作等的一般概念,并且定义了许多不同的格式,例如HAL, JSON API等。
我不明白的是HATEOAS / REST和身份验证之间的关系是什么,或者让它成为一个更具体的问题,“适当的”HATEOAS / REST API使用什么类型的身份验证?
显然,它应该是无状态的,就像JWT令牌或类似的东西,但是有没有任何标准和/或规则/指导方针,或认证完全不同的主题?
编辑:
为了进一步阐明,我的问题不是我在挑选要实现的认证时遇到问题,而是我不知道API认证需要什么,才能够将其称为REST / HATEOAS API。
所以 (假设的) 情景将是:创建一个可以被称为REST / HATEOAS的API,并且获得1,000,000美元。 制定一个小规模协议违规错误并获得$ 0。 意思是,目标不是做什么最有意义,最有效率或者开发人员和/或用户有什么益处,而只是为了100%REST / HATEOAS而不是毫无疑问的影子。
就像你说的,你应该以独立的方式来看待认证。
确实,基于令牌的身份验证系统实现使用的价值代币在基于HTTP的API的无状态世界中确实很适合,所以这可能是针对大多数常见场景的建议。 但是,您应该研究您的方案的特定要求以达成最终决定,也许有更简单的选项可用,如API密钥。
请记住,如果您选择基于令牌的方法,那么以后还有很多事情要考虑。 如果您没有定义应用程序获取访问令牌的方式,那么您的API没有什么用处,并且有很多方法可以解决这个问题,例如:
您可以推出自己的系统,并定义您自己的流程,了解如何获取令牌,然后由API使用以执行认证
⤷ ( 不推荐 ,耗时且容易出错)
实施符合可用身份验证标准(如OpenID Connect和OAuth 2.0)的身份提供商/授权服务器系统
⤷ (耗时且复杂,但通过遵循标准,您不太可能陷入困境,并且还会获得互操作性)
将身份验证委派给Auth0等第三方身份验证提供程序
⤷ (容易上手,取决于使用量,它会花费你的钱而不是时间)
披露 :我是一名Auth0工程师。
链接地址: http://www.djcxy.com/p/41025.html