假设我们有许多(无状态的、基于 HTTP 的)(微)服务和一堆“守护进程”,它们通过实际使用所述服务来进行各种后台处理。
现在,我想有一种方法让服务和守护进程能够相互验证和授权。例如,执行订单全文索引的守护进程需要:
- 对Orders、Customers(本身需要对Companies服务具有只读访问权限)和Inventory服务的只读访问权限
- 对OrdersSearch服务的读写访问权限,以便能够更新全文索引。
还有一些应用程序,它们“代表”用户操作。例如,Inventory Web 应用程序需要对Inventory服务的读写权限,但Inventory服务本身需要验证操作应用程序的用户的权限。
说了这么多,我如何实现我刚才描述的?我不想使用庞大的企业框架或标准。根据我的阅读,两足 OAuth2 是我需要的,但我不确定。
我正在考虑建立一个授权服务,该服务将用于回答诸如“嘿,我是库存服务。现在打电话给我的客户服务对我有什么权限?”,但这在分发方面有两个主要弱点共享的秘密。