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 になります。