nacos-server鉴权开启及 客户端连接

nacos-server鉴权开启及 客户端连接

这里主要介绍 nacos2.2.1 及以后的版本,有以下几点

  1. 写这篇文章时,最新版本为2.3.2
  2. Nacos从2.1.0版本开始,支持通过SPI的方式注入鉴权相关插件,并在application.properties配置文件中选择某一种插件实现作为实际鉴权服务
  3. 2.2.2版本之前的Nacos默认控制台,无论服务端是否开启鉴权,都会给一个登录页,默认用户名和密码都是nacos。
  4. 2.2.3版本后,Nacos可支持关闭开源控制台,并引导到用户自定义的Nacos控制台,具体看官方; 查看官方

1. nacos-server 的配置文件

关键配置信息
如果开启持久化,需要脚本的,在config文件夹下,mysql-schema.sql 这个脚本

// 默认路径一般不修改
server.servlet.contextPath=/nacos
// 默认无需修改
server.error.include-message=ALWAYS
// 端口,自行修改
server.port=8848 
// *************** 配置信息***************#
// 持久化配置信息
spring.datasource.platform=mysql
// 指定DB信息
db.num=1
// 地址
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123!@#

// hikariCP默认配置,可自行修改
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2

// Metrics for elastic search
management.metrics.export.elastic.enabled=false

//  Metrics for influx
management.metrics.export.influx.enabled=false

// *************** 日志配置 ***************#
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i

server.tomcat.basedir=file:.
//  The ignore urls of auth
nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-ui/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**

// 鉴权方法 默认nacos  也支持 ldap,后面可自行配置
nacos.core.auth.system.type=nacos

// 开启鉴权, 这个默认是关闭,2.2.3以后无需登录即可登录管理界面,以前还是需要使用 用户名和密码登录(默认都是nacos)
nacos.core.auth.enabled=true

nacos.core.auth.caching.enabled=true
nacos.core.auth.enable.userAgentAuthWhite=false
// 2.2.1以前默认值:k->serverIdentity,v->security;2.2.1 以后无默认,2.2.1  如果不配置,无法启动,但是 2.2.3 以后 不配置也可启动
nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=security

nacos.core.auth.plugin.nacos.token.cache.enable=false
nacos.core.auth.plugin.nacos.token.expire.seconds=18000
// 2.1.0 版本前 字段及其默认值 nacos.core.auth.default.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789 ;之后 无默认值,且必须使用 原字符串长度 大于32位 经过Base64加密后的字符串,如上面的默认值 加密后为:VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=;这里就使用这个默认值,自行按照此规定进行配置,否则 开启鉴权后 无法启动

nacos.core.auth.plugin.nacos.token.secret.key=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=

#*************** Istio Related Configurations ***************#
// If turn on the MCP server:
nacos.istio.mcp.server.enabled=false

secret.key版本默认值规则
nacos.core.auth.default.token.secret.key2.1.0 之前SecretKey012345678901234567890123456789012345678901234567890大于 32位长度的字符
nacos.core.auth.plugin.nacos.token.secret.key2.1.0 之后大于32位长度的字符 使用 Base64机密后的字符

==这是白名单的设置,用于 open-api 访问时使用,使用方式:请求时放到 header 中, 这样就可以不用使用 token 了 ==

nacos.core.auth.server.identity.key/value版本默认值规则
nacos.core.auth.server.identity.key2.2.1 之前serverIdentity必须配置,否则无法启动
可以配置任意值
nacos.core.auth.server.identity.key2.2.1 之后可不配置
如果开启了鉴权,必须配置,任意值
nacos.core.auth.server.identity.value2.2.1 之前security必须配置,否则无法启动,
可以配置任意值
nacos.core.auth.server.identity.value2.2.1 之后可不配置

如果开启了鉴权,必须配置,任意值

postman 测试时 如下图 (上面自己配置的值)
在这里插入图片描述

auth 鉴权版本默认值控制台,默认用户名密码都是nacos值=true值=false
nacos.core.auth.enabled2.2.2 之前false127.0.0.1:8848/nacos必须登录必须登录
nacos.core.auth.enabled2.2.2 之后false127.0.0.1:8848/nacos必须登录无需登录
是否可关闭控制台版本是否
不支持2.3.0 之前
nacos.console.ui.enabled2.3.0 之后true-开启
false- 关闭

2. server 启动及登录页面配置

  • 登录界面
    在这里插入图片描述

  • 添加用户
    在这里插入图片描述

  • 添加角色
    在这里插入图片描述

  • 添加权限
    在这里插入图片描述

  • 添加命名空间
    在这里插入图片描述

3. spring cloud 项目中 使用nacos 时的配置

spring:
  cloud:
    nacos:
      discovery:
        enabled: true
        server-addr: 127.0.0.1:8848
        namespace: c3bc4329-2c06-42cf-8b76-00c77205280f # 如果不填,默认是 public
        group: eid-group # 如果不填,默认是 default_group
        username: m1  # 控制台中添加 的用户名称和密码,记得给对应的 namespace 权限,否则无法连接
        password: miller


注意上面的namespace 是这里
在这里插入图片描述

open-api 的使用

看官网地址:open-api指南
注意 分 2.x (v2) 和 1.x (v1)

  • 2.x 兼容 1.x 的api
  • 但是注意部分 参数名称不一样,如 2.x中 命名空间Id :namespaceId,1.x中:tenant

开启鉴权后,访问权限有2种,

  1. 一种是 使用 配置文件中的白名单 nacos.core.auth.server.identity.keynacos.core.auth.server.identity.value ;使用方法,上面截图中已经给了

  2. 使用accessToken,获取accessToken 的方法
    在这里插入图片描述

  3. accessToken 使用方法,举例:获取配置信息,具体接口看官网 在这里插入图片描述

  • 22
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值