在Nacos中开启鉴权方法

1. 修改配置文件

编辑 conf/application.properties(或 application.properties/application.yml,视你部署方式而定),添加以下配置:

1
2
3
4
5
6
7
8
9
10
11
# 开启鉴权
nacos.core.auth.enabled=true

# token 密钥(建议换成强随机值)
nacos.core.auth.plugin.nacos.token.secret.key=MySecretKey123!

# token 有效期(单位:秒,默认 18000 = 5 小时)
nacos.core.auth.plugin.nacos.token.expire.seconds=18000

# 是否只支持 nacos 自身的用户体系
nacos.core.auth.system.type=nacos

⚠️ 注意:

  • secret.key 一旦修改,所有节点必须保持一致,否则集群鉴权会失败。
  • 部署 集群 时,要确保配置文件一致。

2. 添加用户

Nacos 默认没有开启用户体系,开启鉴权后需要登录账号才能操作。

  • conf/nacos-mysql.sql 中有默认用户表结构:

    • users(用户信息表)
    • roles(角色表)
    • permissions(权限表)
  • Nacos 默认提供了一个超级管理员账号:

用户名: nacos
密码: nacos

(生产环境请及时修改密码)

也可以通过 控制台API 新建用户和角色:

1
2
3
4
5
# 创建用户
curl -X POST 'http://127.0.0.1:8848/nacos/v1/auth/users?username=test&password=123456'

# 给用户分配角色
curl -X POST 'http://127.0.0.1:8848/nacos/v1/auth/roles?username=test&role=ROLE_ADMIN'

3. 重启 Nacos

修改完配置文件后,重启 Nacos 服务。
现在访问控制台 http://127.0.0.1:8848/nacos 就会要求登录。


4. 验证

  • 访问 Nacos 控制台时会要求输入用户名密码。
  • 用错误用户登录会提示 403 Forbidden
  • 通过客户端配置 username/password 后,正常获取配置和服务发现。

🔥 建议:

  • 生产环境 一定要更改默认账号密码。
  • 使用 HTTPS 部署 Nacos,防止 token/密码泄露。
  • 若接入外部认证系统(如 LDAP、OAuth2),需要使用 Nacos 2.2+ 的 SPI 认证扩展