JWT

JSON Web Token(JWT)は、サーバーアプリケーションでユーザーを識別するために使用される認証トークンの一種です。JWTにはクライアントの呼び出し元に関する情報が含まれており、クライアントセッションアーキテクチャの一部として使用できます。JSON Web Key Set(JWKS)には、受信するJWTの検証に使用される暗号化キーが含まれています。

Istioの認証APIを使用して、サービスのJWTポリシーを構成できます。

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 リポジトリをご覧ください。