Nacos 服务端开启鉴权后,客户端必须在连接配置中显式指定 username 和 password 参数才能正常注册和发现服务。该配置适用于 Spring Cloud Alibaba 及原生 Java 客户端,配置错误会导致客户端请求被服务端拒绝并返回 403 状态码。
先说结论:客户端需在配置中心或代码中补充账号密码信息,并确保服务端用户已创建。
- 适合:Nacos 1.2 及以上版本开启 auth 后的生产环境
- 先准备:确认服务端 nacos.core.auth.enabled 已开启且账号已创建
- 验收:客户端日志无 403 报错且控制台显示在线实例
命令速用版
客户端配置核心参数如下,根据客户端类型选择对应配置方式:
# Spring Cloud Alibaba (application.yml)
spring:
cloud:
nacos:
username: your_username
password: your_password
# 原生 Java Client (Properties)
properties.put("username", "your_username");
properties.put("password", "your_password");为什么会这样
服务端开启鉴权后,所有写操作和部分读操作都需要携带有效的身份令牌。
Nacos 的鉴权机制基于 Token,服务端开启 nacos.core.auth.enabled 配置后,会拦截未携带合法 Token 的请求。客户端配置账号密码后,会在首次连接时向服务端发起登录请求获取 Token,后续请求携带该 Token 进行身份验证。若客户端未配置账号密码,无法获取 Token,服务端会直接返回 403 Forbidden 错误。
分步处理
步骤 1:确认服务端鉴权状态
检查 Nacos 服务端配置文件 application.properties,确认以下配置已开启:
nacos.core.auth.enabled=true
步骤 2:创建服务端用户
登录 Nacos 控制台,进入权限控制页面,创建新的用户账号并分配角色(如 ROLE_ADMIN 或 ROLE_READ)。默认账号 nacos/nacos 仅在初始未修改密码时可用,生产环境建议新建账号。
步骤 3:客户端配置账号密码
在客户端项目的配置文件中添加 username 和 password。Spring Cloud Alibaba 项目通常在 bootstrap.yml 或 application.yml 中配置;原生 Java 项目需在创建 NamingService 或 ConfigService 时传入 Properties 对象。
步骤 4:重启客户端应用
配置修改后需重启客户端应用使配置生效,确保客户端重新发起登录请求获取新 Token。
怎么验证是否生效
检查客户端日志
观察客户端启动日志,搜索关键词 login 或 auth。若成功,通常会看到类似 login success 的信息;若失败,会抛出 com.alibaba.nacos.api.exception.NacosException: Error while requesting server, return code is 403 异常。
检查服务端控制台
登录 Nacos 控制台,查看服务管理列表。若客户端配置正确,能看到对应服务的健康实例数大于 0;若配置错误,实例列表为空或显示离线。
常见坑
默认密钥未修改
Nacos 默认 Token 密钥 key 是公开已知的,生产环境开启鉴权后,务必修改服务端 nacos.core.auth.default.token.secret.key 配置,否则存在 Token 伪造风险。
特殊字符未转义
若密码中包含特殊字符(如@、#),在 YAML 配置文件中可能需要使用单引号包裹,避免被解析为注释或格式错误。
版本兼容性
Nacos 1.2 版本引入鉴权,2.x 版本鉴权机制有所调整。客户端 SDK 版本建议与服务端版本保持兼容,避免协议不一致导致登录失败。
常见问题
客户端报错 403 Forbidden 是什么原因?
通常是客户端未配置账号密码或账号密码错误,导致无法获取合法 Token。
Nacos 默认的管理员账号是什么?
默认账号为 nacos,默认密码为 nacos,生产环境建议修改或删除默认账号。
配置密码后是否需要加密存储?
配置文件中的密码建议加密存储,Spring Cloud 支持使用 Jasypt 等工具对配置项进行加密。
参考来源
- Nacos 官方文档,用户指南 - 权限控制,https://nacos.io/zh-cn/docs/v2/guide/user/auth.html
- Spring Cloud Alibaba 官方文档,Nacos Config 使用指南,https://sca.aliyun.com/docs/overview/