3.5. OAuth 2.0 認証の改良
Audience および Scope の設定
承認サーバーからトークンを取得する際に、clientAudience
および clientScope
プロパティーを設定できるようになりました。プロパティーの値は、audience
および scope
パラメーターとしてトークンエンドポイントに渡されます。どちらのプロパティーも、Kafka
カスタムリソースの OAuth 2.0 認証リスナー設定で設定されます。
以下のシナリオで、このプロパティーを使用します。
- ブローカー間認証用のアクセストークンを取得する場合
clientId
およびシークレット
を使用した OAuth 2.0 over PLAIN クライアント認証のクライアントの名前具体的には、アクセストークンを取得するために、PLAIN コールバックが承認サーバーで最初に
clientID
(ユーザー名として) とsecret
(パスワードとして) を変換した場合に、audience
およびscope
をリクエストに含めることができるようになりました。
これらのプロパティーは、クライアントがトークンとトークンのコンテンツを取得できるかどうかに影響します。リスナーによって課されるトークン検証ルールには影響を与えません。
client Audience および client
Scope
プロパティーの設定例
# ... authentication: type: oauth # ... clientAudience: AUDIENCE clientScope: SCOPE
承認サーバーは、JWT アクセストークンで aud
(audience) クレームを提供することがあります。オーディエンスチェックが有効な場合、Kafka ブローカーは aud
クレームにブローカーの clientId
が含まれていないトークンを拒否します。オーディエンスチェックを有効にするには、oauth
リスナー設定で checkAudience
オプションを true
に設定します。オーディエンスチェックはデフォルトで無効になっています。
「Configuring OAuth 2.0 support for Kafka brokers」および「KafkaListenerAuthenticationOAuth schema reference」を参照してください。
Kafka Connect および Kafka Bridge へのaudience
の指定
それぞれのカスタムソースで、Kafka Connect または Kafka Bridge の OAuth クライアント認証を設定するときに、audience
オプションを指定できるようになりました。これまでのリリースでは、これらのリソースに対して scope
オプションのみがサポートされていました。
「KafkaClientAuthenticationOAuth schema reference」を参照してください。
OAuth 2.0 over PLAIN でトークンエンドポイントを必要としない
OAuth 2.0 の PLAIN 認証に「クライアント ID および secret」メソッドを使用する場合に、The tokenEndpointUri
オプションが不要になりました。
トークンエンドポイント URI が指定された OAuth 2.0 over PLAIN の 設定例
# ... authentication: type: oauth # ... enablePlain: true tokenEndpointUri: https://OAUTH-SERVER-ADDRESS/auth/realms/external/protocol/openid-connect/token
tokenEndpointUri
が指定されていない場合、リスナーは以下を処理します。
-
username
パラメーターをアカウント名として。 -
password
パラメーターを検証のために承認サーバーに渡される raw アクセストークンとして (OAUTHBEARER 認証の場合と同じ動作)。
OAuth 2.0 over PLAIN 認証の「long-lived access token」メソッドの動作は変更されません。このメソッドを使用する場合は The tokenEndpointUri
は必要ありません。
「OAuth 2.0 authentication mechanisms」を参照してください。