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 認証の最小リスナー設定

sasl.enabled.mechanisms=OAUTHBEARER 
1

listeners=CLIENT://0.0.0.0:9092 
2

listener.security.protocol.map=CLIENT:SASL_PLAINTEXT 
3

listener.name.client.sasl.enabled.mechanisms=OAUTHBEARER 
4

sasl.mechanism.inter.broker.protocol=OAUTHBEARER 
5

inter.broker.listener.name=CLIENT 
6

listener.name.client.oauthbearer.sasl.server.callback.handler.class=io.strimzi.kafka.oauth.server.JaasServerOauthValidatorCallbackHandler 
7

listener.name.client.oauthbearer.sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required \ 
8

  oauth.valid.issuer.uri="https://AUTH-SERVER-ADDRESS" \ 
9

  oauth.jwks.endpoint.uri="https://AUTH-SERVER-ADDRESS/jwks" \ 
10

  oauth.username.claim="preferred_username"  \ 
11

  oauth.client.id="kafka-broker" \ 
12

  oauth.client.secret="kafka-secret" \ 
13

  oauth.token.endpoint.uri="https://AUTH-SERVER-ADDRESS/token" ; 
14

listener.name.client.oauthbearer.sasl.login.callback.handler.class=io.strimzi.kafka.oauth.client.JaasClientOauthLoginCallbackHandler  
15
Copy to Clipboard Toggle word wrap

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.idoauth.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 リスナー設定

sasl.enabled.mechanisms=
listeners=REPLICATION://kafka:9091,CLIENT://kafka:9092 
1

listener.security.protocol.map=REPLICATION:SSL,CLIENT:SASL_PLAINTEXT 
2

listener.name.client.sasl.enabled.mechanisms=OAUTHBEARER
inter.broker.listener.name=REPLICATION
listener.name.replication.ssl.keystore.password=KEYTSTORE-PASSWORD 
3

listener.name.replication.ssl.truststore.password=TRUSTSTORE-PASSWORD
listener.name.replication.ssl.keystore.type=JKS
listener.name.replication.ssl.truststore.type=JKS
listener.name.replication.ssl.endpoint.identification.algorithm=HTTPS 
4

listener.name.replication.ssl.secure.random.implementation=SHA1PRNG 
5

listener.name.replication.ssl.keystore.location=PATH-TO-KEYSTORE 
6

listener.name.replication.ssl.truststore.location=PATH-TO-TRUSTSTORE 
7

listener.name.replication.ssl.client.auth=required 
8

listener.name.client.oauthbearer.sasl.server.callback.handler.class=io.strimzi.kafka.oauth.server.JaasServerOauthValidatorCallbackHandler
listener.name.client.oauthbearer.sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required \
  oauth.valid.issuer.uri="https://AUTH-SERVER-ADDRESS" \
  oauth.jwks.endpoint.uri="https://AUTH-SERVER-ADDRESS/jwks" \
  oauth.username.claim="preferred_username" ; 
9
Copy to Clipboard Toggle word wrap

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 接続を使用する必要があります。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat