Tous les produits
Search
Centre de documentation

Alibaba Cloud Service Mesh:Configurer l'authentification JWT dans une ASMSecurityPolicy

Dernière mise à jour :Aug 11, 2026

Pour contrôler l'authentification et l'autorisation au sein d'un maillage de services, configurez l'authentification JSON Web Token (JWT) dans une ASMSecurityPolicy. Cela garantit que seules les requêtes portant un JWT valide peuvent accéder aux ressources protégées, renforçant ainsi la sécurité et la confidentialité des communications interservices.

Informations générales

Un JWT contient des revendications, telles que des informations utilisateur, signées numériquement. Le système vérifie la signature pour confirmer l'authenticité et l'intégrité du jeton, validant ainsi l'identité de l'utilisateur.

Prérequis

Procédure

  1. Connectez-vous à la console ASM. Dans le volet de navigation de gauche, sélectionnez Service Mesh > Mesh Management.

  2. Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, choisissez Mesh Security Center > ASMSecurityPolicy.

  3. Sur la page ASMSecurityPolicy, cliquez sur Create.

  4. Dans la boîte de dialogue Create ASMSecurityPolicy, sélectionnez JWT et cliquez sur OK.

    1. Dans l'assistant JWT Config, configurez les paramètres et cliquez sur Next.

      Paramètre

      Exemple

      ASMSecurityPolicyName

      test-jwt

      Certification Rules

      Émetteur

      testing@secure.istio.io

      JWKS Source

      jwks

      Clé

      { "keys":[ {"e":"AQAB","kid":"DHFbpoIUqrY8t2zpA2qXfCmr5VO5ZEr4RzHU_-envvQ","kty":"RSA","n":"xAE7eB6qugXyCAG3yhh7pkDkT65pHymX-P7KfIupjf59vsdo91bSP9C8H07pSAGQO1MV_xFj9VswgsCg4R6otmg5PV2He95lZdHtOcU5DXIg_pbhLdKXbi66GlVeK6ABZOUW3WYtnNHD-91gVuoeJT_DwtGGcp4ignkgXfkiEm4sw-4sfb4qdt5oLbyVpmW6x9cfa7vs2WTfURiCrBoUqgBo_-4WTiULmmHSGZHOjzwa8WtrtOQGsAFjIbno85jp6MnGGGZPYZbDAa_b3y5u-YpW7ypZrvD8BgtKVjgtQgZhLAGezMt0ua3DRrWnKqTZ0BJ_EyxOGuHJrLsn00fnMQ"}]}
    2. Sur la page Workload and Match Rules, cliquez sur Add Workload Group. Dans la boîte de dialogue New Workload Group, configurez les paramètres et cliquez sur OK. Enfin, cliquez sur Submit.

      Le tableau suivant présente les exemples de configuration.

      Paramètre

      Description

      Workload Group Name

      Définissez la valeur sur test-policy.

      Workload List

      1. Cliquez sur Add Workload.

      2. Dans la boîte de dialogue Add Workload, sélectionnez Gateway Scope.

      3. Dans la section Select workloads, sélectionnez la charge de travail cible et cliquez sur l'icône Ajouter pour la déplacer vers la section selected. Cliquez ensuite sur OK.

      Match Rule List

      Les options suivantes de Match Mode sont disponibles :

      • Auth If Matched : Les requêtes correspondant aux règles doivent porter un JWT valide pour aboutir.

      • Bypass Auth If Matched : Les requêtes correspondant aux règles peuvent aboutir sans JWT ou avec un JWT valide. Les requêtes avec un JWT invalide échoueront.

      Dans cet exemple, définissez Match Mode sur Auth If Matched, définissez Matching Rules sur Custom Matching Rules et cliquez sur Add Match Rule pour configurer les règles suivantes.

      • Règle 1 : Activez le commutateur Path et définissez sa valeur sur /static/*.

      • Règle 2 : Activez le commutateur Path et définissez sa valeur sur /api/*.

      Sur la page Complete, le message de réussite ASMSecurityPolicy created successfully s'affiche. Vous pouvez cliquer sur View YAML pour consulter la configuration de la ressource ou cliquer sur Complete pour revenir à la page ASMSecurityPolicy.

  5. Vérifiez que la configuration d'authentification JWT est effective.

    1. Exécutez les commandes suivantes pour tester l'accès.

      curl -I http://${GATEWAY_ADDRESS}/productpage  # Returns 200.
      curl -I http://${GATEWAY_ADDRESS}/api/v1/products/1  # Returns 403.
      curl -I http://${GATEWAY_ADDRESS}/static/jquery.min.js  # Returns 403.
      
      # Set the JWT.
      TOKEN=eyJhbGciOiJSUzI1NiIsImtpZCI6IkRIRmJwb0lVcXJZOHQyenBBMnFYZkNtcjVWTzVaRXI0UnpIVV8tZW52dlEiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjQ2ODU5ODk3MDAsImZvbyI6ImJhciIsImlhdCI6MTUzMjM4OTcwMCwiaXNzIjoidGVzdGluZ0BzZWN1cmUuaXN0aW8iLCJzdWIiOiJ0ZXN0aW5nQHNlYcyVyZS5pc3Rpby5pbyJ9.CfNnxWP2tcnR9q0vxyxweaF3ovQYHYZl82hAUsn21bwQd9zP7c-LS9qd_vpdLG4Tn1A15NxfCjp5f7QNBUo-KC9PJqYpgGbaXhaGx7bEdFWjcwv3nZzvc7M__ZpaCERdwU7igUmJqYGBYQ51vr2njU9ZimyKkfDe3axcyiBZde7G6dabliUosJvvKOPcKIWPccCgefSj_GNfwIip3-SsFdlR7BtbVUcqR-yv-XOxJ3UcMI0tz3uMiiZcyPV7sNCU4KRnemRIMHVOfuvHsU60_GhGbiSFzgPTAa9WTltbnarTbxudb_YEOx12JiwYToeX0DCPb43W1tzIBxgm8NxUg
      
      # The following requests all return 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"

      Selon les règles de configuration, les requêtes destinées aux chemins commençant par /api ou /static doivent porter un JWT valide pour aboutir. Les requêtes vers le chemin /productpage ne nécessitent pas de JWT. Les résultats sont cohérents avec les commentaires du code et confirment que la configuration d'authentification JWT est effective.

    2. Modifiez les règles de configuration de l'authentification JWT.

      1. Sur la page ASMSecurityPolicy, localisez la stratégie de sécurité d'authentification JWT cible et cliquez sur edit dans la colonne Operator.

      2. Dans l'assistant JWT Config, cliquez sur Next.

      3. Sur la page Workload and Match Rules, identifiez le groupe de charges de travail cible et cliquez sur edit dans la colonne Operator.

      4. Dans la boîte de dialogue New Workload Group, modifiez les paramètres, cliquez sur OK, puis cliquez sur Submit.

        Le tableau suivant présente les exemples de configuration.

        Paramètre

        Description

        Match Mode

        Sélectionnez Bypass Auth If Matched.

        Matching Rules

        Supprimez la règle de correspondance /api/* et conservez uniquement la règle de correspondance /static/*.

    3. Exécutez les commandes suivantes pour vérifier que la configuration modifiée de l'authentification JWT est effective.

      curl -I http://${GATEWAY_ADDRESS}/productpage  # Returns 403.
      curl -I http://${GATEWAY_ADDRESS}/api/v1/products/1  # Returns 403.
      curl -I http://${GATEWAY_ADDRESS}/static/jquery.min.js   # Returns 200.
      
      # Set the JWT.
      TOKEN=eyJhbGciOiJSUzI1NiIsImtpZCI6IkRIRmJwb0lVcXJZOHQyenBBMnFYZkNtcjVWTzVaRXI0UnpIVV8tZW52dlEiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjQ2ODU5ODk3MDAsImZvbyI6ImJhciIsImlhdCI6MTUzMjM4OTcwMCwiaXNzIjoidGVzdGluZ0BzZWN1cmUuaXN0aW8uaW8iLCJzdWIiOiJ0ZXN0aW5nQHNlY3VyZS5pc3Rpby5pbyJ9.CfNnxWP2tcnR9q0vxyxweaF3ovQYHYZl82hAUsn21bwQd9zP7c-LS9qd_vpdLG4Tn1A15NxfCjp5f7QNBUo-KC9PJqYpgGbaXhaGx7bEdFWjcwv3nZzvc7M__ZpaCERdwU7igUmJqYGBYQ51vr2njU9ZimyKkfDe3axcyiBZde7G6dabliUosJvvKOPcKIWPccCgefSj_GNfwIip3-SsFdlR7BtbVUcqR-yv-XOxJ3UcMI0tz3uMiiZcyPV7sNCU4KRnemRIMHVOfuvHsU60_GhGbiSFzgPTAa9WTltbnarTbxudb_YEOx12JiwYToeX0DCPb43W1tzIBxgm8NxUg
      
      # The following requests all return 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"

      Selon les règles de configuration modifiées, les requêtes destinées aux chemins commençant par /static peuvent aboutir sans JWT ou avec un JWT valide. Toutes les autres requêtes doivent porter un JWT valide pour réussir. Les résultats sont cohérents avec les commentaires du code et confirment que la configuration modifiée de l'authentification JWT est effective.

Documents connexes