大家好,我是君哥。
最近 Nacos 发布了第一个 3.0 版本 Nacos 3.0-ALPHA,这个版本主要改进点在于安全性和标准化的提升。
API 接口的调用方可能有很多类型,我们看下图,业务系统1 中服务 A 的一个 API 接口被多个系统和服务调用:
我们日常接触的系统中,一个 API 可能会有下列的调用情况:
- 被同一个系统内的其他服务调用。
- 被不同系统的服务调用。
- 被公司内部的运维系统调用。
- 被控制台通过命令调用。
- 被可视化页面调用。
- 被公司外部的三方系统调用。
系统内部、系统间、运维控制台、可视化页面、三方调用这个接口时,如果使用相同的认证机制和接口文档,显然是不合适的,有很大的安全隐患。
在 Nacos 3.0 之前,Nacos 把 API 分为两类,一类是系统间调用的,一类是供运维人员管理使用的。这样分类比较粗,无法满足安全认证的需求。
在 Nacos 3.0-ALPHA 版本中,对 API 进行了更加精细的分类,主要分为了四类,参考下图:
这种 API 设计方式变得更加灵活,可以满足不用用户和场景的需求。
基于这种 API 划分方式,Nacos 3.0-ALPHA 版本提出了不同的认证方式:
- 对于集群内部访问和运维人员访问的 API,默认使用 ServerIdentity 做身份验证。
- 对于 Nacos 控制台 UI 访问的 API,默认使用用户名和密码进行身份和权限认证。
- 对于客户端和应用程序访问的 API,默认不开启安全认证。
这样对 API 的设计,不仅可以满足 API 调用的安全性要求,对易用性也有了很大提升。在我们平时 API 的设计和管理中,可以作为一个参考。