我作为开发人员已经使用Oauth2已经有一段时间了,但有时我还是觉得我需要回到基础知识。我对这个主题有一个普遍的问题,特别是在使用范围时。
据我所知,范围是一种可以应用于某些API的过滤器,并且要求承载令牌拥有API所需的任何范围。从这个意义上说,它们在令牌本身之后提供额外的“保护层”。但是,我想要一些反馈是如何最好地保护需要范围的API。如果消费者从发行者获得有效的承载令牌并发现服务需要什么范围,那么阻止他们使用通过client_credentials获得的令牌(例如,在受限资源上)进行POST的最佳方法是什么?
我相信我知道一些解决方案:需要某种用户令牌,并通过业务逻辑中的授权进一步锁定资源(例如,客户只能修改自己的数据)。另一个选择可能是要求api注册和批准工作流程,因此只有“已批准”的客户端才能调用服务。与Akana和其他API Gateway产品的运作方式类似。但还有其他我缺少的东西吗?范围是否真的意味着作为一种授权机制,或者我是否误解了它们的真正目的,因为对我而言,它们看起来并不像它们提供的那么多。
提前感谢您的反馈。