Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Configurar autenticação JWT em uma ASMSecurityPolicy

Última atualização: Jun 28, 2026

Para controlar a autenticação e a autorização em uma malha de serviços, configure a autenticação JSON Web Token (JWT) em uma ASMSecurityPolicy. Isso garante que apenas requisições com um JWT válido acessem recursos protegidos, aumentando a segurança e a privacidade na comunicação entre serviços.

Informações básicas

Um JWT contém claims, como informações do usuário, assinados digitalmente. O sistema verifica a assinatura para confirmar a autenticidade e a integridade do token e validar a identidade do usuário.

Pré-requisitos

Procedimento

  1. Faça login no console ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique em o nome da instância ASM. No painel de navegação à esquerda, escolha Mesh Security Center > ASMSecurityPolicy.

  3. Na página ASMSecurityPolicy, clique em Create.

  4. Na caixa de diálogo Create ASMSecurityPolicy, selecione JWT e clique em OK.

    1. No assistente JWT Config, configure os parâmetros e clique em Next.

      Parâmetro

      Exemplo

      ASMSecurityPolicyName

      test-jwt

      Certification Rules

      Issuer

      testing@secure.istio.io

      JWKS Source

      jwks

      Key

      { "keys":[ {"e":"AQAB","kid":"DHFbpoIUqrY8t2zpA2qXfCmr5VO5ZEr4RzHU_-envvQ","kty":"RSA","n":"xAE7eB6qugXyCAG3yhh7pkDkT65pHymX-P7KfIupjf59vsdo91bSP9C8H07pSAGQO1MV_xFj9VswgsCg4R6otmg5PV2He95lZdHtOcU5DXIg_pbhLdKXbi66GlVeK6ABZOUW3WYtnNHD-91gVuoeJT_DwtGGcp4ignkgXfkiEm4sw-4sfb4qdt5oLbyVpmW6x9cfa7vs2WTfURiCrBoUqgBo_-4WTiULmmHSGZHOjzwa8WtrtOQGsAFjIbno85jp6MnGGGZPYZbDAa_b3y5u-YpW7ypZrvD8BgtKVjgtQgZhLAGezMt0ua3DRrWnKqTZ0BJ_EyxOGuHJrLsn00fnMQ"}]}
    2. Na página Workload and Match Rules, clique em Add Workload Group. Na caixa de diálogo New Workload Group, configure os parâmetros e clique em OK. Em seguida, clique em Submit.

      A tabela a seguir descreve as configurações de exemplo.

      Parâmetro

      Descrição

      Workload Group Name

      Defina o valor como test-policy.

      Workload List

      1. Clique em Add Workload.

      2. Na caixa de diálogo Add Workload, selecione Gateway Scope.

      3. Na seção Select workloads, selecione a carga de trabalho desejada e clique em o ícone 添加 para movê-la para a seção selected. Em seguida, clique em OK.

      Match Rule List

      As seguintes opções de Match Mode estão disponíveis:

      • Auth If Matched: requisições correspondentes às regras devem portar um JWT válido para serem bem-sucedidas.

      • Bypass Auth If Matched: requisições correspondentes às regras podem ser bem-sucedidas sem JWT ou com um JWT válido. Requisições com JWT inválido falharão.

      Neste exemplo, defina Match Mode como Auth If Matched, defina Matching Rules como Custom Matching Rules e clique em Add Match Rule para configurar as seguintes regras.

      • Regra 1: ative a chave Path e defina seu valor como /static/*.

      • Regra 2: ative a chave Path e defina seu valor como /api/*.

      Na página Complete, a mensagem de sucesso ASMSecurityPolicy created successfully é exibida. Clique em View YAML para revisar a configuração do recurso ou em Complete para retornar à página ASMSecurityPolicy.

  5. Verifique se a configuração de autenticação JWT está em vigor.

    1. Execute os comandos a seguir para testar o acesso.

      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"

      Conforme as regras de configuração, requisições para caminhos que começam com /api ou /static precisam portar um JWT válido para serem bem-sucedidas. Já as requisições para o caminho /productpage não exigem JWT. Os resultados coincidem com os comentários no código e confirmam que a configuração de autenticação JWT está em vigor.

    2. Modifique as regras de configuração da autenticação JWT.

      1. Na página ASMSecurityPolicy, localize a política de segurança de autenticação JWT desejada e clique em edit na coluna Operator.

      2. No assistente JWT Config, clique em Next.

      3. Na página Workload and Match Rules, localize o grupo de carga de trabalho desejado e clique em edit na coluna Operator.

      4. Na caixa de diálogo New Workload Group, modifique os parâmetros, clique em OK e, em seguida, clique em Submit.

        A tabela a seguir descreve as configurações de exemplo.

        Parâmetro

        Descrição

        Match Mode

        Selecione Bypass Auth If Matched.

        Matching Rules

        Remova a regra de correspondência /api/* e mantenha apenas a regra /static/*.

    3. Execute os comandos a seguir para verificar se a configuração modificada de autenticação JWT está em vigor.

      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"

      De acordo com as regras de configuração modificadas, requisições para caminhos que começam com /static podem ser bem-sucedidas sem JWT ou com um JWT válido. Todas as demais requisições precisam portar um JWT válido para terem sucesso. Os resultados coincidem com os comentários no código e confirmam que a configuração modificada de autenticação JWT está em vigor.

Documentos relacionados