私はカフカから始めています。
メッセージを生成するときにヘッダーを渡すことができることがわかりました。
伝統的に、ユーザーが何らかのリモート oidc idp を介してログインし、トークンを受け取る Web クライアント (単一ページ アプリ) があります。次に、そのトークンはヘッダーを介しAuthentication: Bearer token-here
て RESTful バックエンドに送信され、そこでトークンの有効性がチェックされ、ペイロードが処理されてデータベースなどに保存され、何かが返されるかどうかが判定されます。
今、Apache Kafka があります。REST プロキシがあります。ヘッダーを REST プロキシに渡してメッセージを生成したり、消費したりできますが、「RESTful JSON API を保護する」部分に関心があります。
現在、Kafka を使用していない場合、どのリクエストがバックエンドに送信されるかをフィルタリングする oidc プロキシ (keycloak を使用、つまり keycloak-gatekeeper) を使用するか、バックエンド内のミドルウェア機能としてトークンの検証を行う oidc クライアントを使用しています。 . いずれにせよ、無効なリクエストは Kafka のように「ログに記録」されないと思います。
oidc トークンの検証とリクエストのフィルタリングは、Kafka/Confluent エコシステムのどこに適合しますか?
Confluent REST Proxy と通信する SPA があるとします。ログインしているユーザーの中にはメッセージを投稿したい人もいれば、ログインしていないユーザーは投稿できないはずです。
Kafka および/またはそのツールは、そのシナリオにどのように対処しますか?