注意:自2024年9月26日起,停止 Nacos 开发版实例新购,存量实例仍然可以正常使用。如有其他疑问,请 提交工单 联系我们。
一、操作场景
| 参数 | 含义 |
| ConsoleAuthEnabled | 默认开启 Nacos 控制台鉴权能力,你在控制台创建服务/配置默认启用读写操作鉴权。为了你的访问安全性,该开关不支持关闭。 |
| SdkAuthEnabled | 是否开启 Nacos 客户端鉴权,默认关闭。打开此开关后,客户端需要配置用户名与密码才能获取服务及配置,没有配置用户名与密码的客户端将无法获取服务及配置信息,请谨慎操作。 |
二、前提条件
已创建引擎。
三、操作步骤
1. 登录 TSF 控制台。
2. 在左侧导航栏,单击 Nacos,进入 Nacos 注册中心页面。
3. 单击目标实例的“ID/名称”,进入实例详情页面。
4. 在页面上方选择参数配置页签,单击左上角的修改参数,在参数值列下方修改对应的参数值。
5. 单击保存,完成参数修改。
注意:说明:
注意:当你变更客户端鉴权开关时,无需等待实例重启,60秒内即可生效。
四、鉴权说明
注意:说明:
注意:Nacos 控制台和客户端的访问方式请参见 访问控制。
·控制台鉴权开关:默认开启,所有 HTTP 请求到 Nacos 服务端,将会进行身份验证,必要时进行被操作资源的权限验证。
·客户端鉴权开关:默认关闭,不需要用户名和密码即可进行服务注册、配置获取。
当你开启客户端鉴权开关时,你注册到 Nacos 上的服务需要进行认证相关的处理。
注意:说明:
注意:TSF 已为你打通腾讯云账号与 Nacos 账号体系,你既可以使用 Nacos 账号的用户名与密码,也可以使用腾讯云账号的 secretID 和 secretKey(具体请见 访问密钥)进行操作。
·Nacos Client Java SDK 鉴权
在构建 Properties 类时,需传入 Nacos 用户名和密码。
properties.put(PropertyKeyConst.SERVER_ADDR, "${TSE Nacos 客户端接入地址}");properties.put(PropertyKeyConst.USERNAME, "${username}");properties.put(PropertyKeyConst.PASSWORD, "${password}");// 注册中心NamingService namingService = NamingFactory.createNamingService(properties);// 配置中心ConfigService configService = ConfigFactory.createConfigService(properties);
·OpenAPI
·鉴权
首先需要使用用户名和密码登录 Nacos。
curl -X POST '127.0.0.1:8848/nacos/v1/auth/login' -d 'username=nacos&password=nacos'
若用户名和密码正确,返回信息如下:
{"accessToken":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYwNTYyOTE2Nn0.2TogGhhr11_vLEjqKko1HJHUJEmsPuCxkur-CfNojDo","tokenTtl":18000,"globalAdmin":true}
接下来进行配置信息或服务信息时,应当使用该 accessToken 鉴权,在 URL 后添加参数 accessToken={accessToken},其中{accessToken} 为登录时返回的 token 信息,例如:
curl -X GET '127.0.0.1:8848/nacos/v1/cs/configs?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYwNTYyMzkyM30.O-s2yWfDSUZ7Svd3Vs7jy9tsfDNHs1SuebJB4KlNY8Q&dataId=nacos.example.1&group=nacos_group' curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYwNTYyMzkyM30.O-s2yWfDSUZ7Svd3Vs7jy9tsfDNHs1SuebJB4KlNY8Q&port=8848&healthy=true&ip=11.11.11.11&weight=1.0&serviceName=nacos.test.3&encoding=GBK&namespaceId=n1'
·Spring Cloud Alibaba 鉴权
#通用设置spring.cloud.nacos.username=${username}spring.cloud.nacos.password=${password}#注册中心spring.cloud.nacos.discovery.username=${username}spring.cloud.nacos.discovery.password=${password}#配置中心spring.cloud.nacos.config.username=${username}spring.cloud.nacos.config.password=${password}
·Dubbo 鉴权
dubbo.registry.address=nacos://${TSE Nacos 客户端接入地址}:8848?username=${username}&password=${password}