侧边栏壁纸
博主头像
DOKI SEKAI博主等级

行动起来,活在当下

  • 累计撰写 114 篇文章
  • 累计创建 38 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

nacos安装鉴权配置

君
2024-12-24 / 0 评论 / 0 点赞 / 5 阅读 / 4933 字

在启用 Nacos 鉴权(认证与授权)功能时,你需要做一些配置。以下是根据你提供的信息,整理和解读启用鉴权后需要配置的内容:

1. 开启鉴权功能

application.yml 中配置开启鉴权功能,首先需要设置 nacos.core.auth.enabledtrue

nacos.core.auth.enabled: true

这条配置标识着 Nacos 开启了鉴权功能。

2. 配置认证系统类型

Nacos 支持两种认证系统:nacosldap。这里配置为 nacos 系统,表示使用 Nacos 自带的认证方式。如果你选择 LDAP,需要调整为 ldap

nacos.core.auth.system.type: nacos

3. 配置自定义密钥

开启鉴权后,Nacos 使用 JWT 令牌进行用户认证。为了生成有效的 JWT 令牌,需要配置一个自定义的密钥。这个密钥是用于签发和验证 JWT 令牌的。以下是如何配置自定义的密钥:

nacos.core.auth.plugin.nacos.token.secret.key: SecretKey012345678901234567890123456789012345678901234567890123456789

自定义密钥注意事项:

  • 密钥长度必须不少于32个字符。
  • 为了确保安全,应该使用 Base64 编码的密钥。
  • 默认情况下,Nacos 2.2.0.1 版本及以后,token.secret.key 默认是空的,因此必须手动添加。
  • 在生产环境中,建议更换文档中提供的默认密钥,防止泄漏。
  • 所有 Nacos 集群节点间的密钥必须保持一致,密钥不一致可能会导致 403 invalid token 错误。

4. 配置服务端身份识别

在集群模式下,为了保证各个节点之间的安全通信,需要配置自定义的认证Key和Value,来进行节点间身份识别。Nacos 默认关闭了使用 user-agent 进行放行请求的功能,因此需要我们手动配置身份验证标识:

nacos.core.auth.server.identity.key: Id-Key
nacos.core.auth.server.identity.value: Id-Value
  • nacos.core.auth.server.identity.key: 配置自定义身份识别的 key,不能为空。
  • nacos.core.auth.server.identity.value: 配置自定义身份识别的 value,不能为空。

5. 关闭 user-agent 放行功能

Nacos 在早期版本中通过 user-agent: nacos-server 的请求头来判断并放行一些请求,然而这导致了潜在的安全问题。因此,默认情况下,在启用鉴权后,这个功能被关闭。

nacos.core.auth.enable.userAgentAuthWhite: false

完整示例配置

结合上面的配置项,下面是一个完整的 application.yml 配置示例:

nacos.core.auth.enabled: true
nacos.core.auth.system.type: nacos

# 自定义密钥用于生成JWT令牌
nacos.core.auth.plugin.nacos.token.secret.key: SecretKey012345678901234567890123456789012345678901234567890123456789

# 关闭使用user-agent判断服务端请求并放行的功能
nacos.core.auth.enable.userAgentAuthWhite: false

# 配置自定义身份识别的key和value,用于集群通信
nacos.core.auth.server.identity.key: Id-Key
nacos.core.auth.server.identity.value: Id-Value

小结

  1. 开启鉴权功能:通过 nacos.core.auth.enabled=true 启用鉴权。
  2. 认证系统类型:可以选择 nacosldap
  3. 自定义密钥:配置 nacos.core.auth.plugin.nacos.token.secret.key 用于生成 JWT 令牌。
  4. 集群通信身份识别:配置自定义的认证 Key 和 Value 来识别集群节点。
  5. 关闭 user-agent 放行:禁用默认的 user-agent 放行机制,增加安全性。

这些配置确保了 Nacos 启用鉴权后,能够使用 JWT 令牌进行安全认证,并且在集群环境中进行安全的节点间通信。

0

评论区