JSON Web Token(JWT)は、サーバーアプリケーションでユーザーを識別するために使用される認証トークンの一種です。JWTにはクライアントの呼び出し元に関する情報が含まれており、クライアントセッションアーキテクチャの一部として使用できます。JSON Web Key Set(JWKS)には、受信するJWTの検証に使用される暗号化キーが含まれています。
Istioの認証APIを使用して、サービスのJWTポリシーを構成できます。
この例では、ホームページ( /
)とPodヘルスチェック( /_healthz
)を除く、すべての frontend
サービスのルートにJWTが必要です。
Istioポリシーで、frontendのサイドカープロキシにマウントされるテスト公開鍵( jwksUri
)へのパスを指定します。認証されていないリクエストはすべて、Envoyから 401-Unauthorized
ステータスを受け取ります。
apiVersion: "authentication.istio.io/v1alpha1"
kind: "Policy"
metadata:
name: "frontend-jwt"
spec:
targets:
- name: frontend
origins:
- jwt:
issuer: "testing@secure.istio.io"
jwksUri: "https://raw.githubusercontent.com/istio/istio/release-1.2/security/tools/jwt/samples/jwks.json"
trigger_rules:
- excluded_paths:
- exact: /_healthz
- exact: /
principalBinding: USE_ORIGIN
詳細とインタラクティブな例を試すには、Istio ドキュメントとistio-samples リポジトリをご覧ください。