1.13.2.3. JSON Web トークンを使用したアクセスの制限
JSON Web Token (JWT) を使用してメッシュにアクセスできる内容を制限できます。認証後に、ユーザーまたはサービスはそのトークンに関連付けられたルート、サービスにアクセスできます。
ワークロードでサポートされる認証方法を定義する RequestAuthentication
リソースを作成します。以下の例では、http://localhost:8080/auth/realms/master
で実行される JWT を受け入れます。
apiVersion: "security.istio.io/v1beta1" kind: "RequestAuthentication" metadata: name: "jwt-example" namespace: bookinfo spec: selector: matchLabels: app: httpbin jwtRules: - issuer: "http://localhost:8080/auth/realms/master" jwksUri: "http://keycloak.default.svc:8080/auth/realms/master/protocol/openid-connect/certs"
次に、同じ namespace に AuthorizationPolicy
リソースを作成し、作成した RequestAuthentication
リソースと連携させます。以下の例では、要求を httpbin
ワークロードに送信する際に、JWT は Authorization
ヘッダーになければなりません。
apiVersion: "security.istio.io/v1beta1" kind: "AuthorizationPolicy" metadata: name: "frontend-ingress" namespace: bookinfo spec: selector: matchLabels: app: httpbin action: DENY rules: - from: - source: notRequestPrincipals: ["*"]