でauth service
jwt トークンの有効性をチェックするがありreq.headers.Authorization
、エンティティに対して CRUD 操作を行う別の API サービスがありcustomer
、その API サービスへのすべてのリクエストで有効な JWT が必要になります。そして、これらすべてが に包まれていkubernetes cluster + istio
ます。私が現在していることはこのようなものです
- クライアントは
POST /customer
JWT を次のように要求しています。headers.Authorization
- バックエンドの
POST /customer
API サービスはauth service
、JWT を渡して有効性を確認することで と通信します。 - 有効でない場合は、トークン エラー応答を返します。
- 有効な場合は、顧客の作成操作を実行し、データをデータベースに保存します
これは正常に機能していますが、すべてのエンドポイントでこれを繰り返していることがわかりauth checks
ました。もちろん、同じサービスにミドルウェアをセットアップして、着信要求が に到達する前に傍受してチェックを実行できますcontroller
。
サービス自体に書き込むのではなく、このmiddleware
アプローチを実現できるかどうか疑問に思っていました。istio
私が達成したいこと
- クライアントは
POST /customer
JWT を次のように要求しています。headers.Authorization
- はこの
istio sidecar(?)/ingress gateway
リクエストをキャッチし、それを認証サービスに送信 (リダイレクト) して、宛先に渡す前に最初にチェックします。 - 有効でない場合は、トークン エラー応答を返します。
- 有効な場合は、元の宛先に渡します
istioはこれを行うことができますか? Authorizationに関する istio ドキュメントを読みましたが、ここで達成したいことを説明しているとは思いません