第83章 KafkaClientAuthenticationOAuth スキーマリファレンス


使用先: KafkaBridgeSpecKafkaConnectSpecKafkaMirrorMaker2ClusterSpecKafkaMirrorMakerConsumerSpecKafkaMirrorMakerProducerSpec

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

OAuth クライアント認証を設定するには、type プロパティーを oauth に設定します。

OAuth 認証は、以下のオプションのいずれかを使用して設定できます。

  • クライアント ID およびシークレット
  • クライアント ID およびリフレッシュトークン
  • アクセストークン
  • ユーザー名およびパスワード
  • TLS

クライアント ID およびシークレット

認証で使用されるクライアント ID およびクライアントシークレットとともに、tokenEndpointUri プロパティーで認可サーバーのアドレスを設定できます。OAuth クライアントは OAuth サーバーに接続し、クライアント ID およびシークレットを使用して認証し、Kafka ブローカーとの認証に使用するアクセストークンを取得します。clientSecret プロパティーで、クライアントシークレットを含む Secret へのリンクを指定します。

クライアント ID とクライアントシークレットの設定例

authentication:
  type: oauth
  tokenEndpointUri: https://<auth_server_address>/<path_to_token_endpoint>
  clientId: my-client-id
  clientSecret:
    secretName: my-client-oauth-secret
    key: client-secret
Copy to Clipboard Toggle word wrap

必要に応じて、scopeaudience を指定できます。

クライアント ID およびリフレッシュトークン

OAuth クライアント ID およびリフレッシュトークンとともに、tokenEndpointUri プロパティーで OAuth サーバーのアドレスを設定できます。OAuth クライアントは OAuth サーバーに接続し、クライアント ID とリフレッシュトークンを使用して認証し、Kafka ブローカーとの認証に使用するアクセストークンを取得します。refreshToken プロパティーで、リフレッシュトークンが含まれる Secret へのリンクを指定します。

クライアント ID とリフレッシュトークンの設定例

authentication:
  type: oauth
  tokenEndpointUri: https://<auth_server_address>/<path_to_token_endpoint>
  clientId: my-client-id
  refreshToken:
    secretName: my-refresh-token-secret
    key: refresh-token
Copy to Clipboard Toggle word wrap

アクセストークン

Kafka ブローカーとの認証に使用されるアクセストークンを直接設定できます。この場合、tokenEndpointUri は指定しません。accessToken プロパティーで、アクセストークンが含まれる Secret へのリンクを指定します。または、accessTokenLocation プロパティーを使用して、トークンファイルへのパスを指定します。

アクセストークンのみの設定例

authentication:
  type: oauth
  accessToken:
    secretName: my-access-token-secret
    key: access-token
Copy to Clipboard Toggle word wrap

マウントされたファイルを指定するアクセストークン設定の例 (サービスアカウント)

authentication:
  type: oauth
  accessTokenLocation: `/var/run/secrets/kubernetes.io/serviceaccount/token`
Copy to Clipboard Toggle word wrap

ユーザー名およびパスワード

OAuth のユーザー名とパスワードの設定では、OAuth リソースオーナーのパスワード付与 メカニズムを使用します。このメカニズムは非推奨であり、クライアント認証情報 (ID とシークレット) を使用できない環境での統合を有効にするためにのみサポートされています。アクセス管理システムが別のアプローチをサポートしていない場合、または認証にユーザーアカウントが必要な場合は、ユーザーアカウントの使用が必要になることがあります。

典型的なアプローチは、クライアントアプリケーションを表す認可サーバーに特別なユーザーアカウントを作成することです。次に、ランダムに生成された長いパスワードと非常に限られた権限セットをアカウントに与えます。たとえば、アカウントは Kafka クラスターにのみ接続できますが、他のサービスを使用したり、ユーザーインターフェイスにログインしたりすることはできません。

まず、リフレッシュトークンメカニズムの使用を検討してください。

tokenEndpointUri プロパティーで、認証に使用されるクライアント ID、ユーザー名、およびパスワードと共に、認可サーバーのアドレスを設定できます。OAuth クライアントは OAuth サーバーに接続し、ユーザー名、パスワード、クライアント ID、およびオプションでクライアントシークレットを使用して認証し、Kafka ブローカーでの認証に使用するアクセストークンを取得します。

passwordSecret プロパティーで、パスワードが含まれる Secret へのリンクを指定します。

通常、パブリック OAuth クライアントを使用して clientId も設定する必要があります。機密 OAuth クライアントを使用している場合は、clientSecret も設定する必要があります。

パブリッククライアントでのユーザー名とパスワードの設定例

authentication:
  type: oauth
  tokenEndpointUri: https://<auth_server_address>/<path_to_token_endpoint>
  username: my-username
  passwordSecret:
    secretName: my-password-secret-name
    password: my-password-field-name
  clientId: my-public-client-id
Copy to Clipboard Toggle word wrap

機密クライアントでのユーザー名とパスワードの設定例

authentication:
  type: oauth
  tokenEndpointUri: https://<auth_server_address>/<path_to_token_endpoint>
  username: my-username
  passwordSecret:
    secretName: my-password-secret-name
    password: my-password-field-name
  clientId: my-confidential-client-id
  clientSecret:
    secretName: my-confidential-client-oauth-secret
    key: client-secret
Copy to Clipboard Toggle word wrap

必要に応じて、scopeaudience を指定できます。

TLS

HTTPS プロトコルを使用して OAuth サーバーにアクセスする場合、信頼される認証局によって署名された証明書を使用し、そのホスト名が証明書に記載されている限り、追加の設定は必要ありません。

OAuth サーバーで自己署名証明書または信頼されていない認証局によって署名された証明書を使用する場合は、tlsTrustedCertificates プロパティーを使用してそれらが含まれるシークレットを指定します。証明書は X.509 形式である必要があります。

TLS 証明書を指定する設定例

authentication:
  type: oauth
  tokenEndpointUri: https://<auth_server_address>/<path_to_token_endpoint>
  clientId: my-client-id
  refreshToken:
    secretName: my-refresh-token-secret
    key: refresh-token
  tlsTrustedCertificates:
    - secretName: oauth-server-ca
      pattern: "*.crt"
Copy to Clipboard Toggle word wrap

OAuth クライアントはデフォルトで、OAuth サーバーのホスト名が、証明書サブジェクトまたは別の DNS 名のいずれかと一致することを確認します。必要でない場合は、ホスト名の検証を無効にできます。

TLS ホスト名検証を無効にする設定例

authentication:
  type: oauth
  tokenEndpointUri: https://<auth_server_address>/<path_to_token_endpoint>
  clientId: my-client-id
  refreshToken:
    secretName: my-refresh-token-secret
    key: refresh-token
  disableTlsHostnameVerification: true
Copy to Clipboard Toggle word wrap

83.1. KafkaClientAuthenticationOAuth スキーマプロパティー

type プロパティーは、KafkaClientAuthenticationOAuth タイプと、KafkaClientAuthenticationTls, KafkaClientAuthenticationScramSha256, KafkaClientAuthenticationScramSha512, KafkaClientAuthenticationPlain の使用を区別するための識別子です。KafkaClientAuthenticationOAuth タイプには oauth の値が必要です。

Expand
プロパティープロパティータイプ説明

type

string

oauth でなければなりません。

clientId

string

Kafka クライアントが OAuth サーバーに対する認証に使用し、トークンエンドポイント URI を使用することができる OAuth クライアント ID。

username

string

認証に使用されるユーザー名。

scope

string

認可サーバーに対して認証を行うときに使用する OAuth スコープ。一部の認可サーバーでこれを設定する必要があります。許可される値は、認可サーバーの設定によります。デフォルトでは、トークンエンドポイントリクエストを実行する場合は scope は指定されません。

audience

string

認可サーバーに対して認証を行うときに使用する OAuth オーディエンス。一部の認可サーバーでは、オーディエンスを明示的に設定する必要があります。許可される値は、認可サーバーの設定によります。デフォルトでは、トークンエンドポイントリクエストを実行する場合は audience は指定されません。

tokenEndpointUri

string

認可サーバートークンエンドポイント URI。

connectTimeoutSeconds

integer

認可サーバーへの接続時のタイムアウト (秒単位)。設定しない場合は、実際の接続タイムアウトは 60 秒になります。

readTimeoutSeconds

integer

認可サーバーへの接続時の読み取りタイムアウト (秒単位)。設定しない場合は、実際の読み取りタイムアウトは 60 秒になります。

httpRetries

integer

最初の HTTP リクエストが失敗した場合に試行する最大再試行回数。設定されていない場合、デフォルトでは再試行は行われません。

httpRetryPauseMs

integer

失敗した HTTP リクエストを再試行するまでの一時停止。設定されていない場合、デフォルトでは一時停止せず、ただちにリクエストを繰り返します。

clientSecret

GenericSecretSource

Kafka クライアントが OAuth サーバーに対する認証に使用し、トークンエンドポイント URI を使用することができる OAuth クライアントシークレットが含まれる OpenShift シークレットへのリンク。

passwordSecret

PasswordSecretSource

パスワードを保持する Secret への参照。

accessToken

GenericSecretSource

認可サーバーから取得したアクセストークンが含まれる OpenShift シークレットへのリンク。

refreshToken

GenericSecretSource

認可サーバーからアクセストークンを取得するために使用できるリフレッシュトークンが含まれる OpenShift シークレットへのリンク。

tlsTrustedCertificates

CertSecretSource 配列

OAuth サーバーへの TLS 接続の信頼済み証明書。

disableTlsHostnameVerification

boolean

TLS ホスト名の検証を有効または無効にします。デフォルト値は false です。

maxTokenExpirySeconds

integer

アクセストークンの有効期間を指定の秒数に設定または制限します。これは、認可サーバーが不透明なトークンを返す場合に設定する必要があります。

accessTokenIsJwt

boolean

アクセストークンを JWT として処理すべきかどうかを設定します。認可サーバーが不透明なトークンを返す場合は、false に設定する必要があります。デフォルトは true です。

enableMetrics

boolean

OAuth メトリックを有効または無効にします。デフォルト値は false です。

includeAcceptHeader

boolean

認可サーバーへのリクエストに Accept ヘッダーを設定するかどうか。デフォルト値は true です。

accessTokenLocation

string

認証に使用するアクセストークンを含むトークンファイルへのパス。

clientAssertion

GenericSecretSource

クライアント用に手動で設定したクライアントアサーションを含む OpenShift シークレットへのリンク。

clientAssertionLocation

string

認証に使用するクライアントアサーションを含むファイルへのパス。

clientAssertionType

string

クライアントアサーションのタイプ。設定されていない場合、clientAssertion または clientAssertionLocation のいずれかが設定されていると、この値はデフォルトで urn:ietf:params:oauth:client-assertion-type:jwt-bearer になります。

saslExtensions

map

SASL 拡張パラメーター。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat