kafka认证方式
kafka具有三种大类认证方式,SSL、SASL、Delegation Token三种认证。其中SSL是证书验证,于SSL的认证主要是指Broker和客户端的双路认证,Broker和客户端互相认对方的证书。SASL是主要使用的几种方式。以下是对于几种方式的详细介绍。
认证方式介绍
SASL/GSSAPI:kerberos认证方式,一般使用随机密码的keytab认证方式,密码是加密的,也是企业里使用最多的认证方式;
SASL/PLAIN:这种方式其实就是一个账号/密码的认证方式,不过它有很多缺陷,比如用户名密码是存储在文件中,不能动态添加,密码明文等等!好处是足够简单;
SASL/SCRAM:针对SASL/PLAIN方式的不足而提供的另一种认证方式。这种方式的用户名/密码是存储中zookeeper的,因此能够支持动态添加用户。该种认证方式还会使用sha256或sha512对密码加密,安全性相对会高一些,在0.10.2版本引入;
SASL/OAUTHBEARER:是基于OAuth 2.0的认证框架,实现较为复杂,目前业内应该较少使用。
注:主要是server_jass文件和client_jaas文件配置内容的不一样。
SSL方式的jaas文件配置
server端:SASL/GSSAPI(kerberos方式)
Jaas文件:SASL/PLAIN方式(账号密码方式,明文)
server端:SASL/SCRAM方式
代码连接方式
kereros(GSSAPI)
添加参数:SASL/ PLAIN
Delegation Token
基于Delegation Token的认证是一种轻量级的认证机制,使用Delegation Token Broker和客户端在作认证的时候,能够直接使用这个token,不是每次都去KDC获取对应的ticket或传输Keystore文件,是对SASL认证机制的补充。