A autenticação JWT permite que o Function Compute verifique as solicitações recebidas no nível do gateway antes que elas cheguem à sua função. Ao configurar um JSON Web Key Set (JWKS) público em um nome de domínio personalizado, o Function Compute valida o token de cada solicitação e encaminha as claims verificadas diretamente para a função. Assim, sua função processa apenas a lógica de negócios, sem necessidade de código de autenticação.
Para configurar a autenticação JWT de ponta a ponta, siga estas etapas:
Gere um par de chaves JWKS e mantenha a chave privada confidencial.
Ative a autenticação JWT em um nome de domínio personalizado e cole a chave pública no console.
Configure a origem de leitura do token pelo Function Compute em cada solicitação.
(Opcional) Mapeie as claims do JWT para parâmetros da função.
Gere um token de teste e verifique a configuração com o Postman.
Como funciona
A autenticação JWT para nomes de domínio personalizados segue o mesmo fluxo da autenticação JWT para gatilhos HTTP. O processo utiliza criptografia assimétrica: uma chave privada assina o token e uma chave pública o verifica.
O fluxo ocorre da seguinte maneira:
O cliente envia uma solicitação de autenticação para um autorizador personalizado, geralmente com nome de usuário e senha.
O autorizador verifica as credenciais e usa uma chave privada para gerar um token JWT padrão.
O autorizador retorna o token ao cliente, que o armazena em cache localmente.
O cliente envia uma solicitação de negócios contendo o token para o gatilho HTTP.
O Function Compute utiliza a chave pública configurada para validar o token na solicitação.
Se a validação for bem-sucedida, o Function Compute encaminha a solicitação para sua função, incluindo quaisquer claims mapeadas.
A função processa a solicitação e retorna uma resposta.
O Function Compute encaminha a resposta ao cliente.
Para obter mais informações sobre JWT e autenticação por token, consulte JWT-based token authentication e Introdução aos JSON Web Tokens.
Limites
O Function Compute autentica JWTs usando o JWKS público configurado para o domínio. Você deve gerar e distribuir os JWTs com base na sua própria lógica de negócios.
JSON Web Keys (JWKs) sem ID de chave (
kid) são suportadas. No máximo uma JWK em um JWKS pode ter umkidnão especificado ou vazio.É possível configurar várias JWKs para um nome de domínio personalizado. O Function Compute corresponde o
kiddo token à JWK correta e usa essa chave para verificar a assinatura.Os tokens podem ser lidos nos parâmetros de
header, query, form ecookie.As claims podem ser encaminhadas como parâmetros de
header, query, form ecookie.
Algoritmos de assinatura suportados:
|
Algoritmo de assinatura |
**Valor de |
|
RSASSA-PKCS1-v1_5 |
RS256, RS384 ou RS512 |
|
RSASSA-PSS |
PS256, PS384 ou PS512 |
|
Curva Elíptica (ECDSA) |
ES256, ES384 ou ES512 |
|
HMAC |
HS256, HS384 ou HS512 |
|
EdDSA |
EdDSA |
O HMAC utiliza criptografia simétrica, menos segura que a criptografia assimétrica. Sempre que possível, prefira algoritmos assimétricos. Ao usar criptografia assimétrica, inclua apenas informações da chave pública no seu JWKS. Utilize HTTPS para proteger os tokens durante a transmissão e evitar vazamentos.
Pré-requisitos
Antes de começar, certifique-se de ter:
Um nome de domínio personalizado configurado no Function Compute. Consulte Configure custom domain names.
Configurar autenticação JWT
Etapa 1: Abrir as configurações do nome de domínio personalizado
Faça login no console do Function Compute. No painel de navegação à esquerda, escolha Advanced Features > Custom Domains.
Na barra de navegação superior, selecione a região onde reside seu nome de domínio personalizado.
Na página Custom Domains, clique em o nome de domínio que deseja configurar.
No canto superior direito, clique em Modify.
Etapa 2: Ativar a autenticação JWT
Na página Modify Custom Domain Name, defina Authentication Method como JWT Authentication.

Etapa 3: Configurar o JWKS
A autenticação JWT exige um JWKS válido contendo sua chave pública. Gere um usando ferramentas online como mkjwk.org. Caso já possua uma chave privada no formato PEM, utilize uma ferramenta como jwx para convertê-la ao formato JWKS.
Para gerar um JWKS no mkjwk.org: defina Key Use, Algorithm e Show X.509, depois clique em Generate. A ferramenta produz duas chaves:
① Chave privada — use-a em seu código para assinar (emitir) tokens JWT. Mantenha-a confidencial.
② Chave pública — cole-a no array
keysno console do Function Compute.


O JWKS colado no console segue esta estrutura:
{
"keys": [
{
"alg": "RS256",
"e": "AQAB",
"kty": "RSA",
"n": "u1LWgoomekdOMfB1lEe96OHehd4XRNCbZRm96RqwOYTTc28Sc_U5wKV2umDzolfoI682ct2BNnRRahYgZPhbOCzHYM6i8sRXjz9Ghx3QHw9zrYACtArwQxrTFiejbfzDPGdPrMQg7T8wjtLtkSyDmCzeXpbIdwmxuLyt_ahLfHelr94kEksMDa42V4Fi5bMW4cCLjlEKzBEHGmFdT8UbLPCvpgsM84JK63e5ifdeI9NdadbC8ZMiR--dFCujT7AgRRyMzxgdn2l-nZJ2ZaYzbLUtAW5_U2kfRVkDNa8d1g__2V5zjU6nfLJ1S2MoXMgRgDPeHpEehZVu2kNaSFvDUQ",
"use": "sig"
}
]
}
Etapa 4: Configurar a localização do token JWT
Na seção JWT Token Configuration, defina a Read Position (Header, Cookie, Query Parameters ou Form Parameters) e o nome do parâmetro onde o Function Compute deve buscar o token.
Se você definir a Read Position como Header, especifique um valor para Remove Prefix. O Function Compute remove esse prefixo antes de analisar o token. Por exemplo, se o prefixo for definido como Bearer, um cabeçalho de solicitação Authorization: Bearer <token> fará com que o Function Compute extraia e valide apenas <token>.

Etapa 5: Configurar o encaminhamento de claims (opcional)
Na seção JWT Claim Conversion, mapeie as claims do JWT para parâmetros da função. Para cada mapeamento, especifique:
Mapping Parameter Position — para onde encaminhar a claim (Header, Cookie, Query Parameters ou Form Parameters)
O nome original da claim no token
O nome do parâmetro passado para a função

Etapa 6: Salvar a configuração
Clique em Save.
Verificar a configuração
Utilize a chave privada gerada na seção anterior para criar um token JWT de teste e, em seguida, use o Postman para confirmar se o nome de domínio autentica corretamente as solicitações.
Gerar um token de teste
Instale o módulo PyJWT. Consulte PyJWT.
Execute o script Python abaixo localmente para gerar um token. Substitua o placeholder da chave privada pela chave privada X.509 PEM obtida na etapa de geração do JWKS.
import jwt
import time
private_key = """
-----BEGIN PRIVATE KEY-----
<Your X.509 PEM private key>
-----END PRIVATE KEY-----
"""
headers = {
"alg": "RS256",
"typ": "JWT"
}
payload = {
"sub": "1234567890",
"name": "John Snow",
"iat": int(time.time()), # Token issuance time
"exp": int(time.time()) + 60 * 60, # Token expires in 1 hour
}
encoded = jwt.encode(payload=payload, key=private_key.encode(), headers=headers)
print("Generated token: %s" % encoded)
Testar com o Postman
No console do Function Compute, acesse Advanced Features > Custom Domains. Copie seu nome de domínio personalizado e cole-o no campo URL do Postman.
-
Adicione um cabeçalho de solicitação correspondente às suas configurações de JWT Token Configuration. Por exemplo, se o nome do parâmetro for
Authenticatione o prefixo forBearer:ImportanteCertifique-se de que a formatação do JWT no cabeçalho da solicitação esteja alinhada com as configurações de Remove Prefix. Em caso de divergência, será retornado o erro
invalid or expired jwt.Parâmetro
Valor
Descrição
Key
AuthenticationNome do parâmetro configurado em JWT Token Configuration
Value
Bearer <your-jwt-token>Prefixo configurado, seguido de espaço e do token gerado na etapa anterior
Clique em Send e verifique a resposta.

Se o encaminhamento de claims estiver configurado, a resposta confirmará que a claim foi passada para a função. Por exemplo, nametofunction representa o nome do parâmetro encaminhado a partir do mapeamento de claims.