4.9.4. Authentication
要进行身份验证,您可以使用:
- 基于加密连接上的 X.509 证书的 TLS 客户端身份验证
- 支持的 Kafka SASL(简单身份验证和安全层)机制
- 基于 OAuth 2.0 令牌的身份验证
4.9.4.1. TLS 客户端身份验证
TLS 客户端身份验证只能用于已使用 TLS 加密的连接。要使用 TLS 客户端身份验证,可以向代理提供带有公钥的信任存储。这些密钥可用于验证连接到代理的客户端。信任存储应以 Java 密钥存储(JKS)格式提供,并且应包含证书颁发机构的公钥。所有由信任存储中包含的其中一个认证机构签名的公钥和私钥的客户端都将被验证。truststore 的位置使用字段 ssl.truststore.location
进行设置。如果信任存储受密码保护,应在 ssl.truststore.password
属性中设置密码。例如:
ssl.truststore.location=/path/to/keystore/server-1.jks ssl.truststore.password=123456
配置信任存储后,必须使用 ssl.client.auth
属性启用 TLS 客户端身份验证。此属性可以设置为以下三个不同值之一:
none
- TLS 客户端身份验证已关闭。(默认值)
requested
- TLS 客户端身份验证是可选的。将要求客户端使用 TLS 客户端证书进行身份验证,但可以选择不要这样做。
required
- 客户端需要使用 TLS 客户端证书进行身份验证。
当客户端使用 TLS 客户端身份验证进行身份验证时,经过身份验证的主体名称是与经过身份验证的客户端证书的区分名称。例如:具有可分辨名称 CN=someuser
的证书用户将使用以下主体 CN=someuser,OU=Unknown,O=Unknown,L=Unknown,ST=Unknown,C=Unknown
进行身份验证。如果不使用 TLS 客户端身份验证,并且禁用 SASL,则主体名称为 ANONYMOUS
。