第12章 KafkaListenerAuthenticationCustom スキーマリファレンス


GenericKafkaListener で使用

KafkaListenerAuthenticationCustom スキーマプロパティーの全リスト

リスナーのカスタム認証を設定します。

カスタム認証を設定するには、type プロパティーを custom に設定します。カスタム認証では、Kafka でサポートされているあらゆるタイプの認証が使用できます。

カスタム OAuth 認証の設定例

spec:
  kafka:
    config:
      principal.builder.class: SimplePrincipal.class
    listeners:
      - name: oauth-bespoke
        port: 9093
        type: internal
        tls: true
        authentication:
          type: custom
          sasl: true
          listenerConfig:
            oauthbearer.sasl.client.callback.handler.class: client.class
            oauthbearer.sasl.server.callback.handler.class: server.class
            oauthbearer.sasl.login.callback.handler.class: login.class
            oauthbearer.connections.max.reauth.ms: 999999999
            sasl.enabled.mechanisms: oauthbearer
            oauthbearer.sasl.jaas.config: |
              org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required ;
          secrets:
            - name: example
Copy to Clipboard Toggle word wrap

sasl および tls の値を使用して、リスナーにマップするプロトコルを判別するプロトコルマップが生成されます。

  • SASL = True, TLS = True SASL_SSL
  • SASL = False, TLS = True SSL
  • SASL = True, TLS = False SASL_PLAINTEXT
  • SASL = False, TLS = False PLAINTEXT

シークレットは、Kafka ブローカーノードのコンテナー内の /opt/kafka/custom-authn-secrets/custom-listener-<listener_name>-<port>/<secret_name> にマウントされます。たとえば、設定例ではマウントされたシークレット (example) は /opt/kafka/custom-authn-secrets/custom-listener-oauth-bespoke-9093/example にあります。

12.1. カスタムプリンシパルビルダーの設定

Kafka クラスター設定でカスタムプリンシパルビルダーを設定できます。ただし、プリンシパルビルダーは以下の要件に依存します。

  • 指定されたプリンシパルビルダークラスがイメージに存在している。独自に構築する に、すでに存在しているかどうかを確認します。必要なクラスを使用して、Streams for Apache Kafka イメージを再ビルドする必要があります。
  • 他のリスナーが oauth タイプ認証をしていない。これは、OAuth リスナーが独自のプリンシパルビルダーを Kafka 設定に追加するためです。
  • 指定したプリンシパルビルダーが、Streams for Apache Kafka と互換性がある。

カスタムプリンシパルビルダーは、認証用のピア証明書をサポートしている必要があります。Streams for Apache Kafka は、Kafka クラスターの管理にピア証明書を使用するためです。

注記

Kafka のデフォルトのプリンシパルビルダークラス は、ピア証明書の名前を基にしたプリンシパルのビルドをサポートします。カスタムプリンシパルビルダーは、SSL ピア証明書の名前を使用して user タイプのプリンシパルを指定する必要があります。

次の例は、Streams for Apache Kafka の OAuth 要件を満たすカスタムプリンシパルビルダーを示しています。

カスタム OAuth 設定のプリンシパルビルダーの例

public final class CustomKafkaPrincipalBuilder implements KafkaPrincipalBuilder {

    public KafkaPrincipalBuilder() {}

    @Override
    public KafkaPrincipal build(AuthenticationContext context) {
        if (context instanceof SslAuthenticationContext) {
            SSLSession sslSession = ((SslAuthenticationContext) context).session();
            try {
                return new KafkaPrincipal(
                    KafkaPrincipal.USER_TYPE, sslSession.getPeerPrincipal().getName());
            } catch (SSLPeerUnverifiedException e) {
                throw new IllegalArgumentException("Cannot use an unverified peer for authentication", e);
            }
        }

        // Create your own KafkaPrincipal here
        ...
    }
}
Copy to Clipboard Toggle word wrap

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat