4.4. ユーザー名を抽出する時の JsonPath クエリーの OAuth 2.0 サポート
Kafka クラスターで OAuth 2.0 認証を使用するには、OAUTH 認証メカニズムを使用してリスナー設定を指定します。リスナーのプロパティーを設定するときに、JsonPath クエリーを使用して、使用されている認可サーバーからユーザー名を抽出できるようになりました。JsonPath クエリーを使用して、oauth.username.claim プロパティーおよび oauth.fallback.username.claim プロパティーのリスナーにユーザー名抽出オプションを指定できます。これにより、ネストされたデータ構造内の特定の値にアクセスして、トークンからユーザー名を抽出できます。たとえば、JSON トークンデータ構造内の ユーザー情報 データ構造内にユーザー名が含まれているとします。
次の例は、イントロスペクションエンドポイントを使用してトークン検証を設定するときに、プロパティーに JsonPath クエリーがどのように指定されるかを示しています。
イントロスペクションエンドポイントを使用したトークン検証の設定
# ...
listener.name.client.oauthbearer.sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required ;
# ...
oauth.username.claim="['user.info'].['user.id']" \
oauth.fallback.username.claim="['client.info'].['client.id']" \
# ...
- 1
- トークンの実際のユーザー名が含まれるトークン要求 (またはキー)。ユーザー名は、ユーザーの識別に使用される principal です。
userNameClaimの値は、使用される認可サーバーによって異なります。 - 2
- 認可サーバーは、通常ユーザーとクライアントの両方を識別する単一の属性を提供しない場合があります。クライアントが独自の名前で認証される場合、サーバーによって クライアント ID が提供されることがあります。リフレッシュトークンまたはアクセストークンを取得するために、ユーザー名およびパスワードを使用してユーザーが認証される場合、サーバーによってクライアント ID の他に ユーザー名 が提供されることがあります。プライマリーユーザー ID 属性が使用できない場合は、このフォールバックオプションで、使用するユーザー名クレーム (属性) を指定します。
Kafka ブローカーの OAuth 2.0 サポートの設定 を参照してください。