Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Configure JWT authentication on an ASM gateway

Última atualização: Sep 19, 2026

Para realizar autenticação e autorização unificadas no nível do gateway, ative a autenticação JWT no gateway e garanta que apenas requisições autenticadas acessem os serviços de backend.

Background

JSON Web Token (JWT) é um mecanismo amplamente utilizado para autenticação e autorização. Um JWT contém informações do usuário e um campo que armazena dados criptografados. Descriptografe esse campo e compare-o com as informações originais do usuário para verificar a identidade. Para saber mais, consulte JWT.

Prerequisites

Procedure

  1. Acesse o ASM console. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique no nome da instância ASM. No painel de navegação à esquerda, escolha ASM Gateways > Ingress Gateway.

  3. Na página Ingress Gateway, clique no nome do gateway desejado.

  4. No painel de navegação da página de visão geral do gateway, escolha Gateway Security > JWT Authentication.

  5. No assistente JWT Authentication Configuration, ative o switch Enable Gateway JWT Authentication, configure os parâmetros e clique em Next.

    Parameter

    Description

    Issuer

    O emissor do JWT. Neste exemplo, o parâmetro é definido como testing@secure.istio.io.

    JWKS Source

    Selecione jwks.

    Key

    Exemplo:

    { "keys":[ {"e":"AQAB","kid":"DHFbpoIUqrY8t2zpA2qXfCmr5VO5ZEr4RzHU_-envvQ","kty":"RSA","n":"xAE7eB6qugXyCAG3yhh7pkDkT65pHymX-P7KfIupjf59vsdo91bSP9C8H07pSAGQO1MV_xFj9VswgsCg4R6otmg5PV2He95lZdHtOcU5DXIg_pbhLdKXbi66GlVeK6ABZOUW3WYtnNHD-91gVuoeJT_DwtGGcp4ignkgXfkiEm4sw-4sfb4qdt5oLbyVpmW6x9cfa7vs2WTfURiCrBoUqgBo_-4WTiULmmHSGZHOjzwa8WtrtOQGsAFjIbno85jp6MnGGGZPYZbDAa_b3y5u-YpW7ypZrvD8BgtKVjgtQgZhLAGezMt0ua3DRrWnKqTZ0BJ_EyxOGuHJrLsn00fnMQ"}]}

    Advanced options

    Clique em Advanced options. Na caixa de diálogo Advanced JWT Rule Options, personalize o local do token, especifique se deseja encaminhar o JWT e indique se o payload do JWT deve ser incluído no cabeçalho da requisição. Ao concluir, clique em OK.

  6. No assistente Matching Rules, configure os parâmetros e envie clique em Submit.

    Parameter

    Description

    Match Mode

    Neste exemplo, a opção Selected requests must be authenticated está selecionada. Valores válidos:

    • Selected requests must be authenticated: as requisições selecionadas precisam passar pela autenticação JWT.

    • Selected requests can skip authentication: ignora a autenticação JWT para as requisições selecionadas.

    Matching Rules

    Selecione Custom Matching Rules, ative o switch HTTP Path e defina Path como /productpage. Essa configuração exige que as requisições para o caminho /productpage passem pela autenticação JWT. Requisições para outros caminhos podem ignorar essa autenticação.

    Nota

    Para outras requisições, aquelas sem JWT são bem-sucedidas, mas as que apresentam um JWT inválido falham.

    Após a criação da regra de autenticação, a etapa Finish do assistente exibe a mensagem Gateway JWT authentication is created e lista os recursos de segurança nativos do Service Mesh. Clique em View YAML para visualize a configuração detalhada dos recursos.

  7. Verifique se a autenticação JWT está funcionando corretamente.

    1. Defina a variável de ambiente executando o comando a seguir.

      TOKEN=eyJhbGciOiJSUzI1NiIsImtpZCI6IkRIRmJwb0lVcXJZOHQyenBBMnFYZkNtcjVWTzVaRXI0UnpIVV8tZW52dlEiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjQ2ODU5ODk3MDAsImZvbyI6ImJhciIsImlhdCI6MTUzMjM4OTcwMCwiaXNzIjoidGVzdGluZ0BzZWN1cmUuaXN0aW8uaW8iLCJzdWIiOiJ0ZXN0aW5nQHNlY3VyZS5pc3Rpby5pbyJ9.CfNnxWP2tcnR9q0vxyxweaF3ovQYHYZl82hAUsn21bwQd9zP7c-LS9qd_vpdLG4Tn1A15NxfCjp5f7QNBUo-KC9PJqYpgGbaXhaGx7bEdFWjcwv3nZzvc7M__ZpaCERdwU7igUmJqYGBYQ51vr2njU9ZimyKkfDe3axcyiBZde7G6dabliUosJvvKOPcKIWPccCgefSj_GNfwIip3-SsFdlR7BtbVUcqR-yv-XOxJ3UcMI0tz3uMiiZcyPV7sNCU4KRnemRIMHVOfuvHsU60_GhGbiSFzgPTAa9WTltbnarTbxudb_YEOx12JiwYToeX0DCPb43W1tzIBxgm8NxUg
    2. Teste o acesso executando os comandos a seguir.

      • Teste 1: Acesse o caminho /productpage com um JWT válido.

        curl -I http://${ASM_GATEWAY_IP}/productpage -H "Authorization: Bearer $TOKEN"

        Exemplo de saída:

        HTTP/1.1 200 OK
        content-type: text/html; charset=utf-8
        content-length: 4294
        server: istio-envoy
        date: Tue, 17 Jan 2023 08:47:34 GMT
        x-envoy-upstream-service-time: 17
      • Teste 2: Acesse o caminho /productpage sem um JWT.

        curl -I http://${ASM_GATEWAY_IP}/productpage

        Exemplo de saída:

        HTTP/1.1 403 Forbidden
        content-length: 19
        content-type: text/plain
        date: Tue, 17 Jan 2023 08:50:31 GMT
        server: istio-envoy
      • Teste 3: Acesse o caminho /productpage com um JWT inválido.

        curl -I http://${ASM_GATEWAY_IP}/productpage -H "Authorization: Bearer invalid token"

        Exemplo de saída:

        HTTP/1.1 401 Unauthorized
        www-authenticate: Bearer realm="http://114.55.XXX.XXX/productpage", error="invalid_token"
        content-length: 79
        content-type: text/plain
        date: Tue, 17 Jan 2023 08:51:47 GMT
        server: istio-envoy
      • Teste 4: Acesse outro caminho sem um JWT.

        curl -I http://${ASM_GATEWAY_IP}/api/v1/products/1   
        HTTP/1.1 200 OK
        content-type: application/json
        content-length: 195
        server: istio-envoy
        date: Tue, 17 Jan 2023 08:55:10 GMT
        x-envoy-upstream-service-time: 16

      Os resultados confirmam que a autenticação JWT está funcionando conforme o esperado.

      Tipo

      Resultado

      Acesso ao caminho /productpage com um JWT válido

      Sim

      Acesso ao caminho /productpage sem um JWT

      Não

      Acesso ao caminho /productpage com um JWT inválido

      Não

      Acesso a outro caminho sem um JWT

      Sim

Related topics