Todos os produtos
Search
Central de documentação

Function Compute:Configure a autenticação JWT para um gatilho HTTP

Última atualização: Jun 29, 2026

No Function Compute, você pode configurar a autenticação JSON Web Token (JWT) para um gatilho HTTP. Essa configuração garante que apenas clientes com um JWT válido acessem sua função, aumentando a segurança do serviço HTTP e ajudando a prevenir acessos não autorizados e ataques maliciosos.

Informações de fundo

Visão geral

O Function Compute permite ativar a autenticação JWT para um gatilho HTTP. O JWT, definido na RFC 7519, é um método baseado em token para autenticar requisições. As informações de estado do usuário ficam armazenadas em um token fornecido pelo cliente; assim, a função (servidor) não precisa armazenar esses dados. Isso torna o JWT um método de autenticação adequado para arquiteturas serverless. O Function Compute usa o conjunto de chaves JSON Web Key Set (JWKS) público configurado no gatilho HTTP para autenticar requisições HTTP via JWT. Com base na configuração do gatilho, o Function Compute pode passar os claims como parâmetros para a função. Dessa forma, sua função foca na lógica de negócios em vez de autenticar requisições. Para saber mais sobre o processo e os fundamentos da autenticação por token JWT, consulte Autenticação baseada em token JWT e Introdução ao JWT.

Como funciona a autenticação JWT

A figura anterior ilustra o fluxo de trabalho de autenticação JWT para um gatilho HTTP no Function Compute usando um algoritmo de criptografia assimétrica. As etapas são:

  1. O cliente envia uma requisição de autenticação para um serviço de autorização personalizado. Essa requisição geralmente inclui o nome de usuário e a senha do usuário final.

  2. O serviço de autorização personalizado valida as credenciais da requisição, como nome de usuário e senha. Após validar com êxito, ele usa uma chave privada para gerar um token padrão.

  3. O serviço de autorização personalizado envia uma resposta contendo o token de volta ao cliente. O cliente deve armazenar esse token localmente em cache.

  4. O cliente envia uma requisição de negócios que inclui o token para o gatilho HTTP.

  5. O gatilho HTTP usa a chave pública configurada para verificar o token na requisição.

  6. Após verificar o token, o gatilho encaminha a requisição para a função protegida.

  7. A função protegida processa a requisição de negócios e retorna uma resposta.

  8. O gatilho HTTP encaminha a resposta de negócios para o cliente.

Pré-requisitos

Crie uma função e um gatilho HTTP. Para obter mais informações, consulte Criar uma função e Criar um gatilho.

Limites

  • Você pode usar qualquer método para gerar e distribuir JWTs. O Function Compute autentica os JWTs usando o JWKS público configurado para o gatilho.

  • O Function Compute aceita uma JSON Web Key (JWK) sem kid (ID da chave).

  • O gatilho pode ler um token de um header da requisição, de um parâmetro de Query (para requisições GET), de um parâmetro de formulário (para requisições POST) ou de um cookie.

  • É possível encaminhar os claims para a função como um header, um parâmetro de formulário (para requisições POST) ou um cookie.

  • O Function Compute permite configurar um JWKS para um gatilho HTTP. O sistema pesquisa no JWKS uma JWK pública com um kid correspondente ao do token e usa essa chave pública para verificar a assinatura do token. Um JWKS de gatilho pode ter, no máximo, uma JWK onde o kid esteja ausente ou seja uma string vazia.

    O JWT do Function Compute aceita os seguintes algoritmos.

    Algoritmo de assinatura

    Valor Alg

    RSASSA-PKCS1-V1_5

    RS256, RS384, RS512

    RSASSA-PSS

    PS256, PS384, PS512

    Curva Elíptica (ECDSA)

    ES256, ES384, ES512

    HMAC

    HS256, HS384, HS512

    EdDSA

    EdDSA

    Importante
    • O algoritmo de assinatura HMAC usa criptografia simétrica e é menos seguro. Recomendamos o uso de um algoritmo de criptografia assimétrica mais seguro.

    • Ao usar um algoritmo de criptografia assimétrica, por questões de segurança, seu JWT deve conter apenas informações de chave pública. Não inclua informações de chave privada.

    • Recomendamos o uso de HTTPS para proteger informações sensíveis, como o token nas requisições, a fim de evitar vazamento de tokens.

Procedimento

Etapa 1: Configurar a autenticação JWT

  1. Faça login no console do Function Compute. No painel de navegação à esquerda, escolha Function Management > Functions.

  2. Na barra de navegação superior, selecione uma região. Na página Functions, clique em na função desejada.

  3. Na página de detalhes da função, clique em na aba Trigger. Localize o gatilho HTTP e clique em Modify na coluna Actions.

  4. No painel Edit Trigger, configure os seguintes parâmetros e clique em OK.

    1. Em Authentication Method, selecione JWT Authentication.

    2. Configure o JWKS.

      Para configurar a autenticação JWT em um gatilho HTTP, forneça um JWKS válido. Você pode gerar seu próprio JWKS ou usar uma ferramenta online buscando por "JSON Web Key Generator", como o mkjwk.org. Caso possua uma chave no formato PEM, utilize uma ferramenta como o jwx para convertê-la para o formato JWKS.

      Este tópico usa o mkjwk.org para gerar um JWKS como exemplo. Conforme mostrado na figura a seguir, defina Key Use como Signature, Algorithm como RS256 e Show X.509 como Yes, e então clique em Generate. Use a Private Key (① na figura) no seu código para emitir o token JWT; portanto, armazene-a com segurança. Copie o conteúdo da Public Key (② na figura) e cole-o no array keys da configuração JWKS no console.

      image.png

      image

      O código a seguir apresenta um exemplo de configuração JWKS.

      {
          "keys": [
              {
                  "alg": "RS256",
                  "e": "AQAB",
                  "kty": "RSA",
                  "n": "u1LWgoomekdOMfB1lEe96OHehd4XRNCbZRm96RqwOYTTc28Sc_U5wKV2umDzolfoI682ct2BNnRRahYgZPhbOCzHYM6i8sRXjz9Ghx3QHw9zrYACtArwQxrTFiejbfzDPGdPrMQg7T8wjtLtkSyDmCzeXpbIdwmxuLyt_ahLfHelr94kEksMDa42V4Fi5bMW4cCLjlEKzBEHGmFdT8UbLPCvpgsM84JK63e5ifdeI9NdadbC8ZMiR--dFCujT7AgRRyMzxgdn2l-nZJ2ZaYzbLUtAW5_U2kfRVkDNa8d1g__2V5zjU6nfLJ1S2MoXMgRgDPeHpEehZVu2kNaSFvDUQ",
                  "use": "sig"
              }
          ]
      }
    3. Na seção JWT Token Configuration, especifique a localização do Token e o nome do Token.

      A localização do Token aceita Header, Cookie, parâmetros de query (GET) e parâmetros de formulário (POST). Se a localização do Token estiver definida como Header, também será necessário especificar o Parameter Name e o Remove Prefix. O Function Compute remove o prefixo especificado em Remove Prefix ao obter o token.

      image

    4. Na seção JWT Claim Conversion, especifique a localização de passagem do parâmetro, o nome original do parâmetro e o novo nome do parâmetro para a função.

      É possível mapear claims para um parâmetro de Header, Cookie ou Form (POST).

      image

    5. Defina o modo de correspondência de requisições.

      • Match All: Todas as requisições HTTP exigem autenticação JWT.

      • Whitelist Mode: Requisições HTTP para caminhos especificados na Whitelist of Request Paths não exigem autenticação JWT. Todas as outras requisições exigem autenticação JWT.

      • Blacklist Mode: Requisições HTTP para caminhos especificados na Blacklist of Request Paths exigem autenticação JWT. Todas as outras requisições não exigem autenticação JWT.

      Os modos Whitelist Mode e Blacklist Mode aceitam os dois tipos de correspondência a seguir:

      • Correspondência exata

        Um caminho de requisição corresponde apenas se for exatamente igual ao caminho configurado. Por exemplo, se você definir a Blacklist of Request Paths como /a, as requisições para /a exigirão autenticação JWT, mas as requisições para /a/ não.

      • Correspondência aproximada

        É possível usar um caractere curinga () em um caminho, mas o curinga () deve estar no final do caminho. Por exemplo, se você definir a Blacklist of Request Paths como /login/*, todas as requisições para caminhos com o prefixo /login/, como /login/a e /login/b/c/d, exigirão autenticação JWT.

Etapa 2: Verificar a configuração

Use uma ferramenta de teste, como o Postman, para verificar se o acesso ao serviço HTTP ocorre conforme esperado com base na configuração JWT do gatilho HTTP, fornecendo um endpoint, token e outras informações.

  1. Use a chave privada no formato X.509 PEM gerada na Etapa 1 para emitir um token JWT. Os passos a seguir mostram como gerar um token usando um script Python local.

    1. Instale o módulo PyJWT.

      pip install 'PyJWT>=2.0'
    2. Execute o seguinte script Python de exemplo localmente para gerar um token JWT.

      import jwt
      import time
      
      private_key = """
      -----BEGIN PRIVATE KEY-----
      <The X.509 PEM-format private key generated in Step 1>
      -----END PRIVATE KEY-----
      """
      
      headers = {
          "alg": "RS256",
          "typ": "JWT"
      }
      
      payload = {
          "sub": "1234567890",
          "name": "John Snow",
          "iat": int(time.time()),   # The time when the token was issued.
          "exp": int(time.time()) + 60 * 60,   # Set the token to be valid for 1 hour.
      }
      
      encoded = jwt.encode(payload=payload, key=private_key.encode(), headers=headers)
      print("Generated token: %s" % encoded)
      
  2. Use o Postman para verificar se o serviço HTTP está acessível.

    1. Na aba Trigger da página de detalhes da função, obtenha o endpoint público do gatilho HTTP e insira-o no campo URL do Postman.

    2. No Postman, configure o parâmetro do token nos headers e clique em Send. A tabela a seguir fornece um exemplo da configuração do token.

      Parâmetro

      Valor

      Descrição

      Chave

      Authentication

      O nome do parâmetro especificado na seção JWT Token Configuration.

      Valor

      Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiSm9uIFNub3ciLCJhZG1pbiI6dHJ1ZSwiZXhwIjo0ODI5NTk3NjQxfQ.eRcobbpjAd3OSMxcWbmbicOTLjO2vuLR9F2QZMK4rz1JqfSRHgwQVqNxcfOIO9ckDMNlF_3jtdfCfvXfka-phJZpHmnaQJxmnOA8zA3R4wF4GUQdz5zkt74cK9jLAXpokwrviz2ROehwxTCwa0naRd_N9eFhvTRnP3u7L0xn3ll4iOf8Q4jS0mVLpjyTa5WiBkN5xi9hkFxd__p98Pah_Yf0hVQ2ldGSyTtAMmdM1Bvzad-kdZ_wW0jcctIla9bLnOo-Enr14EsGvziMh_QTZ3HQtJuToSKZ11xkNgaz7an5de6PuF5ISXQzxigpFVIkG765aEDVtEnFkMO0xyPGLg

      O valor do parâmetro Remove Prefix especificado na seção JWT Token Configuration, concatenado com o token JWT. O valor de exemplo assume que Remove Prefix está definido como Bearer .

      Importante

      O prefixo e o espaço para o parâmetro JWT no header da requisição devem corresponder exatamente ao valor de Remove Prefix especificado na seção JWT Token Configuration. Caso contrário, o gatilho falhará ao analisar o token e retornará um erro invalid or expired jwt.

Perguntas frequentes

Por que estou recebendo "invalid or expired jwt"?

O Function Compute recebeu o token, mas o rejeitou durante a validação. As possíveis causas são:

  • A assinatura ou o formato do seu token é inválido.

  • Seu token expirou. Gere um novo token.

  • O ID da chave do token (kid) não corresponde ao JWKS configurado para o seu nome de domínio personalizado, ou a JWK correspondente não está correta.

Por que estou recebendo "the jwt token is missing"?

O Function Compute não conseguiu encontrar o token na requisição. Verifique se o token está presente na requisição e se a Read Position e o nome do parâmetro em JWT Token Configuration correspondem exatamente ao local onde você está enviando o token. Se Read Position estiver definido como Header, o valor do header deve incluir o valor de Remove Prefix seguido por um espaço antes do token.

A autenticação JWT é cobrada separadamente?

Não. A autenticação JWT não tem custo adicional. O Function Compute fatura com base no número de invocações de função, independentemente de a autenticação JWT estar ativada.