[alibaba/nacos]nacos鉴权问题

2023-12-12 702 views
2

我们采用nacos服务端版本是2.2.3。且只部署了一台nacos,且只有一个命名空间,且只有一个分组。 客户端(多个)均采用默认账号/密码(nacos/nacos)注册到服务端。 那某个客户端的账号密码就可以登录到服务端,可以操作其他客户端的配置文件。 我们现在的需求是: 1.每个客户端的账号密码都不同 2.这个客户端的账号/密码登录服务端后,只能看到自己的配置与服务列表。 请问有什么方案可以解决这个问题?

回答

6
  1. 与nacos无关,给客户端配置不同的账号密码即可。
  2. 自带的鉴权插件可以精细到命名空间级别, 不同的账号可以赋予不同的命名空间权限,这样就无法查看到无权限的命名空间下的资源列表。

如果需要精确到分组或更近一步的级别,需要自己开发鉴权插件。

1

你好,我这边列举下我们实际的场景 1.我们每个环境(uat、ver、prod)都部署一台nacos,如下图是uat环境配置 image 由图可知,我们只有一个命名空间,只有一个group,存在10+个配置文件,即存在10+多个服务,服务列表如下 image 2.权限控制 我们给每个服务单独分配了账号/密码,这个账号密码用于客户端连接服务端。 image 我们发现任意一个账号/密码登录进来都可以看到所有服务的配置文件。 3.需求:某个客户端的账号/密码进来只能看到自己服务的配置文件与服务列表 4.请问只能采用 命名空间 来区分各个客户端吗?假设采用命名空间来区分的话,我们A服务通过feigin的方式调用B服务,A与B不在同一个命名空间,会有影响不?

4

你想要的效果是在页面管理上开启隔离,但是服务发现过程消除隔离,以目前nacos服务发现的隔离维度(命名空间+分组)是满足不了你的需要的,nacos只是一个研发侧/运维侧的中间件,不是一个paas平台。

0

粒度太细了,不懂为什么隔离级别要划分到客户端这么细,难道你们是多租户客户端共享一个租户空间吗,而且隔离完用dubbo或者feign调用注册中心的时候也会隔离可能会有问题

7

对的,我们目前正在验证的方案是:管理端配置文件隔离,服务注册/发现不隔离。 方案设想:配置放在不同的命名空间,服务都放在public空间。账号/密码用一套。目前在进行源码验证过程中。

5

我们的场景是: 我们集团所有的自研产品,都放在一个nacos上,且放在一个命名空间下。客户端连接服务端都采用nacos/nacos账号密码。 这就会造成配置文件信息泄露的问题。

8

那可以配置中心和注册中心用两个账号就行,配置中心采用自己的命名空间鉴权隔离,注册中心都放在public命名空间下

1

那客户端拿着 注册中心的账号/密码登录到nacos管理端,可以看得到所有的配置文件吧

9

你注册中心只给public的权限不就行了吗,非要用管理员账号吗

1

哦哦,明白你的意思了,public其实跟后面每个命名空间是平级的。非常感谢,我马上测试一把