1.内置数据源
使用配置文件与 EMQ X 内置数据库提供认证数据源,通过 HTTP API 进行管理,足够简单轻量。
2.外部数据库
- LDAP 认证
- MySQL 认证
- PostgreSQL 认证
- Redis 认证
- MongoDB 认证
外部数据库可以存储大量数据,同时方便与外部设备管理系统集成。
3.其他认证
JWT 认证可以批量签发认证信息,HTTP 认证能够实现复杂的认证鉴权逻辑。
更改插件配置后需要重启插件才能生效,部分认证鉴权插件包含 ACL 功能
4.认证结果
认证成功:经过比对客户端认证成功
认证失败:经过比对客户端认证失败,数据源中密码与当前密码不一致
忽略认证(ignore):当前认证方式中未查找到认证数据,无法显式判断结果是成功还是失败,交由认证链下一认证方式或匿名认证来判断
5.匿名认证
6.密码加盐规则与哈希方法
7.如何生成认证信息
为每个客户端分用户名、Client ID、密码以及 salt(盐)等信息
使用与 MySQL 认证相同加盐规则与哈希方法处理客户端信息得到密文
将客户端信息写入数据库,客户端的密码应当为密文信息
8.EMQ X身份认证流程
9.认证链