4.9.4. 認証
認証には、以下を使用できます。
- 暗号化接続の X.509 証明書に基づいた TLS クライアント認証
- サポートされる Kafka SASL (Simple Authentication and Security Layer) メカニズム
- OAuth 2.0 のトークンベースの認証
4.9.4.1. TLS クライアント認証
TLS クライアント認証は、すでに TLS 暗号化を使用している接続でのみ使用できます。TLS クライアント認証を使用するには、公開鍵のあるトラストストアをブローカーに提供できます。これらのキーは、ブローカーに接続するクライアントを認証するために使用できます。トラストストアは Java Keystore (JKS) 形式で提供され、認証局の公開鍵が含まれている必要があります。トラストストアに含まれる認証局のいずれかによって署名された公開鍵および秘密鍵を持つクライアントは、すべて認証されます。トラストストアの場所は、フィールド ssl.truststore.location
を使用して設定されます。トラストストアがパスワードで保護される場合、ssl.truststore.password
プロパティーでパスワードを設定する必要があります。以下に例を示します。
ssl.truststore.location=/path/to/keystore/server-1.jks ssl.truststore.password=123456
トラストストアが設定したら、ssl.client.auth
プロパティーを使用して TLS クライアント認証を有効にする必要があります。このプロパティーは、3 つの異なる値のいずれかに設定できます。
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
になります。