Answers:
我将使用一个中央的统一身份验证系统,并且对每个微服务都有单独的权限/状态(有点像我尚不能在该堆栈交换站点上投票,但是使用中央堆栈交换身份验证系统时我可能会出现堆栈溢出)。我当前的项目之一将在不久的将来使用这种方法,这将是很好的。先前的开发工作涉及创建符合HIPPA的系统,这需要第二级的授权/身份验证,而从法律上独立但在功能上不可分割的组件中进行菊花链授权非常耗时。与简单的oauth登录或具有appid和x-auth标头的api相比,调试过程所涉及的乐趣要少得多。
使用哪种方法取决于开发路线图的特定要求,但是我将在可能的情况下选择更简单的方法,以避免过多的开销和开发时间/精力。
每个微服务都不必执行自己的身份验证,但确实需要执行自己的授权。
这是完全合理的。我假设毫无疑问,中央身份验证。但是授权非常令人困惑。
考虑到微服务的数量可以增长到成百上千,中央授权服务应仅负责列出权限,而不验证这些权限。各个微服务可能必须采用不同的方法来验证权限。
这项中央授权服务可能需要从不同的服务中获取模型,并以不同的方式进行决策,因此一开始看起来可能很简单。但是以后可能会很混乱。