4.10.2.2. Kafka クラスターでの OAuth 2.0 認証設定
Kafka クラスターで OAuth 2.0 認証を使用するには、Kafka server.properties ファイルで Kafka クラスターのリスナー設定を有効にします。最小設定が必要です。また、TLS が inter-broker 通信に使用される TLS リスナーを設定することもできます。
以下を使用して、認可サーバーによるトークン検証用にブローカーを設定できます。
- 署名済みの JWT 形式のアクセストークンと組み合わせた JWKS エンドポイント
- イントロスペクション エンドポイント
ここに示す最小設定では、グローバル リスナー設定が適用されます。これは、ブローカー間通信がアプリケーションクライアントと同じリスナーを経由することを意味します。
特定のリスナーに対して OAuth 2.0 設定を有効にするには、TLS リスナー設定の例に示されている sasl.enabled.mechanisms の代わりに listener.name.client.sasl.enabled.mechanisms を指定します。
JWKS エンドポイントを使用した OAuth 2.0 認証の最小リスナー設定
- 1
- SASL を介した認証情報交換の SASL メカニズムとして OAUTHBEARER を有効にします。
- 2
- 接続するクライアントアプリケーションのリスナーを設定します。システム
hostnameはアドバタイズされたホスト名として使用されます。これは、再接続するためにクライアントが解決する必要があります。CLIENTはリスナーの名前です。 - 3
- リスナーのチャネルプロトコルを指定します。
SASL_SSLは TLS 用です。暗号化されていない接続 (TLS なし) にはSASL_PLAINTEXTが使用されますが、TCP 接続層での盗聴のリスクがあります。 - 4
- CLIENT リスナーの SASL として OAUTHBEARER を指定します。クライアント名 (
CLIENT) は通常、listenersプロパティーでは大文字で、listener.nameプロパティー (listener.name.client) では小文字で、listener.name.client.*プロパティーの一部である場合は小文字で指定されます。 - 5
- OAUTHBEARER をブローカー間通信用の SASL として指定します。
- 6
- inter-broker 通信のリスナーを指定します。仕様は、有効な設定のために必要です。
- 7
- クライアントリスナーで OAuth 2.0 認証を設定します。
- 8
- クライアントおよび inter-broker 通信の認証設定を設定します。
oauth.client.id、oauth.client.secret、およびauth.token.endpoint.uriプロパティーは inter-broker 設定に関連するものです。 - 9
- 有効な発行者 URI。この発行者が発行するアクセストークンのみが受け入れられます。例: https://AUTH-SERVER-ADDRESS/auth/realms/REALM-NAME
- 10
- JWKS エンドポイント URL。例: https://AUTH-SERVER-ADDRESS/auth/realms/REALM-NAME/protocol/openid-connect/certs
- 11
- トークンの実際のユーザー名が含まれるトークン要求 (またはキー)。ユーザー名は、ユーザーの識別に使用される principal です。値は、使用される認証フローと承認サーバーによって異なります。
- 12
- すべてのブローカーで同じ Kafka ブローカーのクライアント ID。これは、
kafka-brokerとして承認サーバーに登録されたクライアントです。 - 13
- すべてのブローカーで同じ Kafka ブローカーのシークレット。
- 14
- 承認サーバーへの OAuth 2.0 トークンエンドポイント URL。実稼働環境では、常に HTTPS を使用してください。例: https://AUTH-SERVER-ADDRESS/auth/realms/REALM-NAME/protocol/openid-connect/token
- 15
- inter-broker 通信の OAuth2.0 認証を有効にします (これにのみ必要です)。
OAuth 2.0 認証の TLS リスナー設定
- 1
- inter-broker 通信とクライアントアプリケーションには、個別の設定が必要です。
- 2
- REPLICATION リスナーが TLS を使用し、CLIENT リスナーが暗号化されていないチャネルで SASL を使用するように設定します。実稼働環境では、クライアントは暗号化されたチャンネル (
SASL_SSL) を使用できます。 - 3
ssl.プロパティーは TLS 設定を定義します。- 4
- 乱数ジェネレーターの実装。設定されていない場合は、Java プラットフォーム SDK デフォルトが使用されます。
- 5
- ホスト名の検証。空の文字列に設定すると、ホスト名の検証はオフになります。設定されていない場合、デフォルト値は HTTPS で、サーバー証明書のホスト名の検証を強制します。
- 6
- リスナーのキーストアへのパス。
- 7
- リスナーのトラストストアへのパス。
- 8
- (inter-broker 接続に使用される) TLS 接続の確立時に REPLICATION リスナーのクライアントがクライアント証明書で認証する必要があることを指定します。
- 9
- OAuth 2.0 の CLIENT リスナーを設定します。承認サーバーとの接続はセキュアな HTTPS 接続を使用する必要があります。