手机小说网站源码,wordpress免费企业模板下载,山东泰安网络科技有限公司,福州手机建站模板EMQ X 中的认证指的是当一个客户端连接到 EMQ X 的时候#xff0c;通过服务器端的配置来控制客户端连接服务器的权限。
EMQ X 的认证支持包括两个层面#xff1a;
MQTT 协议本身在 CONNECT 报文中指定用户名和密码#xff0c;EMQ X 以插件形式支持基于 Username、 ClientI…EMQ X 中的认证指的是当一个客户端连接到 EMQ X 的时候通过服务器端的配置来控制客户端连接服务器的权限。
EMQ X 的认证支持包括两个层面
MQTT 协议本身在 CONNECT 报文中指定用户名和密码EMQ X 以插件形式支持基于 Username、 ClientID、HTTP、JWT、LDAP 及各类数据库如 MongoDB、MySQL、PostgreSQL、Redis 等多种形式的认证。
在传输层上TLS 可以保证使用客户端证书的客户端到服务器的身份验证并确保服务器向客户端验证服务器证书。也支持基于 PSK 的 TLS/DTLS 认证。
认证方式
EMQ X 支持使用内置数据源(文件、内置数据库)、JWT、外部主流数据库和自定义 HTTP API 作为身份认证数据源。
连接数据源、进行认证逻辑通过插件实现的每个插件对应一种认证方式使用前需要启用相应的插件。
客户端连接时插件通过检查其 username/clientid 和 password 是否与指定数据源的信息一致来实现对客户端的身份认证。
EMQ X 支持的认证方式
内置数据源
Username 认证
Cliend ID 认证
使用配置文件与 EMQ X 内置数据库提供认证数据源通过 HTTP API 进行管理足够简单轻量。
外部数据库
LDAP 认证
MySQL 认证
PostgreSQL 认证
Redis 认证
MongoDB 认证
外部数据库可以存储大量数据同时方便与外部设备管理系统集成。
其他
HTTP 认证
JWT 认证
JWT 认证可以批量签发认证信息HTTP 认证能够实现复杂的认证鉴权逻辑。
更改插件配置后需要重启插件才能生效部分认证鉴权插件包含 ACL 功能
认证结果
任何一种认证方式最终都会返回一个结果
认证成功经过比对客户端认证成功
认证失败经过比对客户端认证失败数据源中密码与当前密码不一致
忽略认证(ignore)当前认证方式中未查找到认证数据无法显式判断结果是成功还是失败交由认证链下一认证方式或匿名认证来判断。
匿名认证
EMQ X 默认配置中启用了匿名认证任何客户端都能接入 EMQ X。没有启用认证插件或认证插件没有显式允许/拒绝(ignore)连接请求时EMQ X 将根据匿名认证启用情况决定是否允许客户端连接。
配置匿名认证开关
# etc/emqx.conf
## Value: true | false
allow_anonymous true生产环境中请禁用匿名认证。
注意我们需要进入到容器内部修改该配置然后重启EMQ X服务。
# etc/plugins/emqx_auth_mysql.conf## 不加盐仅做哈希处理
auth.mysql.password_hash sha256## salt 前缀使用 sha256 加密 salt 密码 拼接的字符串
auth.mysql.password_hash salt,sha256## salt 后缀使用 sha256 加密 密码 salt 拼接的字符串
auth.mysql.password_hash sha256,salt## pbkdf2 with macfun iterations dklen
## macfun: md4, md5, ripemd160, sha, sha224, sha256, sha384, sha512
## auth.mysql.password_hash pbkdf2,sha256,1000,20如何生成认证信息 为每个客户端分用户名、Client ID、密码以及 salt(盐)等信息。 使用与 MySQL 认证相同加盐规则与哈希方法处理客户端信息得到密文。 将客户端信息写入数据库客户端的密码应当为密文信息。