すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Service Mesh:ASMSecurityPolicy での JWT 認証の設定

最終更新日:Jun 22, 2026

サービスメッシュにおける認証と権限付与を制御するために、ASMSecurityPolicy で JSON Web トークン (JWT) 認証を設定します。これにより、有効な JWT を持つリクエストのみが保護されたリソースにアクセスできるようになり、サービス間通信のセキュリティとプライバシーが向上します。

背景情報

JWT には、ユーザー情報などのデジタル署名されたクレームが含まれています。システムは署名を検証してトークンの真正性と整合性を確認し、それによってユーザーの ID を検証できます。

前提条件

操作手順

  1. ASM コンソールにログインします。左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。

  2. [メッシュ管理] ページで、対象の ASM インスタンス名をクリックします。左側のナビゲーションウィンドウで、[メッシュセキュリティセンター] > [ASMSecurityPolicy] を選択します。

  3. ASMSecurityPolicy ページで、Create をクリックします。

  4. Create ASMSecurityPolicy ダイアログボックスで、JWT を選択し、OK をクリックします。

    1. JWT Config ウィザードでパラメーターを設定し、Next をクリックします。

      パラメーター

      ASMSecurityPolicyName

      test-jwt

      Certification Rules

      発行者

      testing@secure.istio.io

      JWKS Source

      jwks

      キー

      { "keys":[ {"e":"AQAB","kid":"DHFbpoIUqrY8t2zpA2qXfCmr5VO5ZEr4RzHU_-envvQ","kty":"RSA","n":"xAE7eB6qugXyCAG3yhh7pkDkT65pHymX-P7KfIupjf59vsdo91bSP9C8H07pSAGQO1MV_xFj9VswgsCg4R6otmg5PV2He95lZdHtOcU5DXIg_pbhLdKXbi66GlVeK6ABZOUW3WYtnNHD-91gVuoeJT_DwtGGcp4ignkgXfkiEm4sw-4sfb4qdt5oLbyVpmW6x9cfa7vs2WTfURiCrBoUqgBo_-4WTiULmmHSGZHOjzwa8WtrtOQGsAFjIbno85jp6MnGGGZPYZbDAa_b3y5u-YpW7ypZrvD8BgtKVjgtQgZhLAGezMt0ua3DRrWnKqTZ0BJ_EyxOGuHJrLsn00fnMQ"}]}
    2. Workload and Match Rules ページで、Add Workload Group をクリックします。New Workload Group ダイアログボックスでパラメーターを設定し、OK をクリックします。最後に、Submit をクリックします。

      次の表に設定例を示します。

      パラメーター

      説明

      Workload Group Name

      値を test-policy に設定します。

      Workload List

      1. Add Workload をクリックします。

      2. Add Workload ダイアログボックスで、Gateway Scope を選択します。

      3. Select workloads セクションで、ターゲットワークロードを選択し、添加 アイコンをクリックして selected セクションに移動します。次に、OK をクリックします。

      Match Rule List

      次の Match Mode オプションが利用可能です:

      • Auth If Matched:ルールに一致するリクエストが成功するには、有効な JWT を携帯する必要があります。

      • Bypass Auth If Matched:ルールに一致するリクエストは、JWT なしでも、有効な JWT を携帯していても成功します。無効な JWT を持つリクエストは失敗します。

      この例では、Match ModeAuth If Matched に設定し、Matching RulesCustom Matching Rules に設定し、Add Match Rule をクリックして次のルールを設定します。

      • ルール 1:Path スイッチを有効にし、その値を /static/* に設定します。

      • ルール 2:Path スイッチを有効にし、その値を /api/* に設定します。

      Complete ページに、成功メッセージ ASMSecurityPolicy が正常に作成されました が表示されます。View YAML をクリックしてリソースの設定を確認するか、Complete をクリックして ASMSecurityPolicy ページに戻ります。

  5. JWT 認証設定が有効であることを検証します。

    1. 次のコマンドを実行してアクセスをテストします。

      curl -I http://${GATEWAY_ADDRESS}/productpage  # 200 を返します。
      curl -I http://${GATEWAY_ADDRESS}/api/v1/products/1  # 403 を返します。
      curl -I http://${GATEWAY_ADDRESS}/static/jquery.min.js  # 403 を返します。
      
      # JWT を設定します。
      TOKEN=eyJhbGciOiJSUzI1NiIsImtpZCI6IkRIRmJwb0lVcXJZOHQyenBBMnFYZkNtcjVWTzVaRXI0UnpIVV8tZW52dlEiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjQ2ODU5ODk3MDAsImZvbyI6ImJhciIsImlhdCI6MTUzMjM4OTcwMCwiaXNzIjoidGVzdGluZ0BzZWN1cmUuaXN0aW8iLCJzdWIiOiJ0ZXN0aW5nQHNlYcyVyZS5pc3Rpby5pbyJ9.CfNnxWP2tcnR9q0vxyxweaF3ovQYHYZl82hAUsn21bwQd9zP7c-LS9qd_vpdLG4Tn1A15NxfCjp5f7QNBUo-KC9PJqYpgGbaXhaGx7bEdFWjcwv3nZzvc7M__ZpaCERdwU7igUmJqYGBYQ51vr2njU9ZimyKkfDe3axcyiBZde7G6dabliUosJvvKOPcKIWPccCgefSj_GNfwIip3-SsFdlR7BtbVUcqR-yv-XOxJ3UcMI0tz3uMiiZcyPV7sNCU4KRnemRIMHVOfuvHsU60_GhGbiSFzgPTAa9WTltbnarTbxudb_YEOx12JiwYToeX0DCPb43W1tzIBxgm8NxUg
      
      # 次のリクエストはすべて 200 を返します。
      curl -I http://${GATEWAY_ADDRESS}/productpage -H "Authorization: Bearer $TOKEN"
      curl -I http://${GATEWAY_ADDRESS}/api/v1/products/1 -H "Authorization: Bearer $TOKEN"
      curl -I http://${GATEWAY_ADDRESS}/static/jquery.min.js -H "Authorization: Bearer $TOKEN"

      設定ルールによると、/api または /static で始まるパスへのリクエストが成功するには、有効な JWT を携帯する必要があります。/productpage パスへのリクエストには JWT は不要です。結果はコード内のコメントと一致しており、JWT 認証設定が有効であることが確認されます。

    2. JWT 認証設定ルールを変更します。

      1. ASMSecurityPolicy ページで、ターゲットの JWT 認証セキュリティポリシーを見つけ、Operator 列の edit をクリックします。

      2. JWT Config ウィザードで、Next をクリックします。

      3. Workload and Match Rules ページで、ターゲットのワークロードグループを見つけ、Operator 列の edit をクリックします。

      4. New Workload Group ダイアログボックスでパラメーターを変更し、OK をクリックしてから、Submit をクリックします。

        次の表に設定例を示します。

        パラメーター

        説明

        Match Mode

        Bypass Auth If Matched を選択します。

        Matching Rules

        /api/* の一致ルールを削除し、/static/* の一致ルールのみを保持します。

    3. 次のコマンドを実行して、変更された JWT 認証設定が有効であることを検証します。

      curl -I http://${GATEWAY_ADDRESS}/productpage  # 403 を返します。
      curl -I http://${GATEWAY_ADDRESS}/api/v1/products/1  # 403 を返します。
      curl -I http://${GATEWAY_ADDRESS}/static/jquery.min.js   # 200 を返します。
      
      # JWT を設定します。
      TOKEN=eyJhbGciOiJSUzI1NiIsImtpZCI6IkRIRmJwb0lVcXJZOHQyenBBMnFYZkNtcjVWTzVaRXI0UnpIVV8tZW52dlEiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjQ2ODU5ODk3MDAsImZvbyI6ImJhciIsImlhdCI6MTUzMjM4OTcwMCwiaXNzIjoidGVzdGluZ0BzZWN1cmUuaXN0aW8uaW8iLCJzdWIiOiJ0ZXN0aW5nQHNlY3VyZS5pc3Rpby5pbyJ9.CfNnxWP2tcnR9q0vxyxweaF3ovQYHYZl82hAUsn21bwQd9zP7c-LS9qd_vpdLG4Tn1A15NxfCjp5f7QNBUo-KC9PJqYpgGbaXhaGx7bEdFWjcwv3nZzvc7M__ZpaCERdwU7igUmJqYGBYQ51vr2njU9ZimyKkfDe3axcyiBZde7G6dabliUosJvvKOPcKIWPccCgefSj_GNfwIip3-SsFdlR7BtbVUcqR-yv-XOxJ3UcMI0tz3uMiiZcyPV7sNCU4KRnemRIMHVOfuvHsU60_GhGbiSFzgPTAa9WTltbnarTbxudb_YEOx12JiwYToeX0DCPb43W1tzIBxgm8NxUg
      
      # 次のリクエストはすべて 200 を返します。
      curl -I http://${GATEWAY_ADDRESS}/productpage -H "Authorization: Bearer $TOKEN"
      curl -I http://${GATEWAY_ADDRESS}/api/v1/products/1 -H "Authorization: Bearer $TOKEN"
      curl -I http://${GATEWAY_ADDRESS}/static/jquery.min.js -H "Authorization: Bearer $TOKEN"

      変更された設定ルールによると、/static で始まるパスへのリクエストは、JWT なしでも、有効な JWT を携帯していても成功します。他のすべてのリクエストが成功するには、有効な JWT を携帯する必要があります。結果はコード内のコメントと一致しており、変更された JWT 認証設定が有効であることが確認されます。

関連ドキュメント