Ir para o conteúdo

Funções JWT no Jitterbit Studio

Introdução

As funções JSON Web Token (JWT) permitem a criação, verificação e decodificação de JWTs. Para mais informações sobre a especificação JWT, consulte IETF RFC 7519: JSON Web Token (JWT).

Nota

Uma alternativa ao uso das funções JWT é utilizar o conector JWT do Jitterbit.

CreateJwtToken

Declaração

string CreateJwtToken(string header, string payload[, string private_key, string public_key])

Sintaxe

CreateJwtToken(<header>, <payload>[, <private_key>, <public_key>])

Parâmetros obrigatórios

  • header: Uma string JSON contendo quaisquer valores de cabeçalho esperados para as chaves alg, typ, cty e kid. Esses pares chave-valor são insensíveis a maiúsculas e minúsculas. Todos os outros pares chave-valor serão ignorados. Os algoritmos suportados incluem HS256, HS384, HS512, PS256, PS384, PS512, RS256, RS384, RS512, ES256, ES256K, ES384, ES512, EdDSA e None. Se um valor para alg não for reconhecido, ele será definido como None. Se um valor para typ não for reconhecido, ele será definido como JWT.
  • payload: Uma string JSON contendo quaisquer valores de carga útil esperados que representam as reivindicações do JWT. Todos os pares chave-valor serão tratados como uma reivindicação válida. Se reivindicações como aud suportarem múltiplos valores, elas podem ser definidas como uma string delimitada por vírgulas, por exemplo audience1, audience2, audience3. As reivindicações registradas suportadas incluem iss, sub, aud, exp, nbf, iat e jti. Para que exp, nbf e iat sejam tratados como reivindicações registradas, eles devem ser definidos usando um valor inteiro (1234567890, não "1234567890").

Parâmetros opcionais

  • private_key: Uma chave privada em string para o algoritmo especificado no header. Se o algoritmo None for utilizado, este campo é ignorado.
  • public_key: Uma chave pública em string para o algoritmo especificado no header. Se os algoritmos None, HS256, HS384 ou HS512 forem utilizados, este campo é ignorado.

Descrição

Cria um JWT usando as informações fornecidas. Em caso de sucesso, uma string representando o token recém-criado é retornada; caso contrário, quaisquer mensagens de erro são retornadas.

Apenas os dois primeiros parâmetros são obrigatórios para todos os casos. Os parâmetros restantes são situacionais e podem ser necessários com base no algoritmo JWT escolhido.

Importante

Esta função requer a versão 11.26 ou posterior do agente.

Exemplos

Exemplo Usando Nenhum
// Define the JWT header:
$header = '{"alg": "None", "typ": "JWT"}';

// Define the JWT payload:
$payload = '{"iat": 1234567890, "name": "Example", "test": "Test"}';

CreateJwtToken($header, $payload, "", "");
Exemplo Usando RS256
// Define the JWT header:
$header = '{"alg": "RS256", "typ": "JWT"}';

// Define the JWT payload:
$payload = '{"iat": 1234567890, "name": "Example", "test": "Test"}';

$privateKey = "-----BEGIN RSA PRIVATE KEY-----...";
$publicKey = "-----BEGIN PUBLIC KEY-----...";

CreateJwtToken($header, $payload, $privateKey, $publicKey);

VerifyJwt

Declaração

bool VerifyJwt(string token)

Sintaxe

VerifyJwt(<token>)

Parâmetros obrigatórios

  • token: Uma string representando o JWT.

Descrição

Verifica se o token fornecido é um token JWT válido e retorna um booleano (true ou false) com base no resultado. Esta função verifica apenas a formatação do token, consulte VerifyJwtClaims para uma verificação de claims mais abrangente.

Importante

Esta função requer a versão 11.26 ou posterior do agente.

Exemplos

// Verifica se um token está no formato JWT:
VerifyJwt("AxE9qm4aTZiXvA2G8sblAxjeL...");

VerifyJwtClaims

Declaração

bool VerifyJwtClaims(string token, string algorithm, string key[, string claims])

Sintaxe

VerifyJwtClaims(<token>, <algorithm>, <key>[, <claims>])

Parâmetros obrigatórios

  • token: Uma string representando o JWT.
  • algorithm: O algoritmo usado para verificação de claims.
  • key: A chave secreta usada para verificação de claims.

Parâmetros opcionais

  • claims: Uma string JSON contendo as declarações a serem verificadas.

Descrição

Verifica se as declarações do token fornecido são válidas (não modificadas) dado o algoritmo e a chave secreta fornecidos e retorna um booleano (true ou false) com base no resultado. Se o token em si não for válido, false é retornado sem verificar as declarações. Se nenhuma declaração for fornecida, esta função atua como a função VerifyJwt, ignorando o algoritmo e a chave secreta.

Atenção

Os valores das declarações fornecidos para verificação devem corresponder aos tipos de dados originais utilizados. Por exemplo, "iat": "1234567890" não é igual a "iat": 1234567890.

Se estiver usando a versão 11.26 do agente, VerifyJwtClaims gerará erros se claims for deixado vazio. Como solução alternativa, insira "{}" para claims.

Importante

Esta função requer a versão 11.26 do agente ou posterior.

Exemplos

// Verificar declarações JWT:
VerifyJwtClaims("AxE9qm4aTZiXvA2G8sblAxjeL...", "RS256", "Secret", '{"iat": 1234567890, "name": "Example", "test": "Test"}');
// Solução alternativa para declarações vazias:
VerifyJwtClaims("AxE9qm4aTZiXvA2G8sblAxjeL...", "RS256", "Secret", "{}");

DecodeJwtToken

Declaração

string DecodeJwtToken(string token)

Sintaxe

DecodeJwtToken(<token>)

Parâmetros obrigatórios

  • token: Uma string representando o JWT.

Descrição

Decodifica o token fornecido para recuperar suas declarações. Em caso de sucesso, uma string contendo as declarações decodificadas é retornada. Se o token não for válido, uma string vazia é retornada. Caso contrário, quaisquer mensagens de erro são retornadas.

Importante

Esta função requer a versão 11.26 do agente ou posterior.

Exemplos

// Decodificar um token JWT:
DecodeJwtToken("AxE9qm4aTZiXvA2G8sblAxjeL...");

GetJwtHeader

Declaração

string GetJwtHeader(string token)

Sintaxe

GetJwtHeader(<token>)

Parâmetros obrigatórios

  • token: Uma string representando o JWT.

Descrição

Recupera o cabeçalho do JWT. Em caso de sucesso, uma string contendo o cabeçalho é retornada. Se o token não for válido, uma string vazia é retornada.

Importante

Esta função requer a versão do agente 11.26 ou posterior.

Exemplos

// Recuperar um cabeçalho JWT:
GetJwtHeader("AxE9qm4aTZiXvA2G8sblAxjeL...");

GetJwtPayload

Declaração

string GetJwtPayload(string token)

Sintaxe

GetJwtPayload(<token>)

Parâmetros obrigatórios

  • token: Uma string representando o JWT.

Descrição

Recupera o payload do JWT. Em caso de sucesso, uma string contendo o payload é retornada. Se o token não for válido, uma string vazia é retornada.

Importante

Esta função requer a versão do agente 11.26 ou posterior.

Exemplos

// Recuperar um payload JWT:
GetJwtPayload("AxE9qm4aTZiXvA2G8sblAxjeL...");

GetJwtSignature

Declaração

string GetJwtSignature(string token)

Sintaxe

GetJwtSignature(<token>)

Parâmetros obrigatórios

  • token: Uma string representando o JWT.

Descrição

Recupera a assinatura do JWT. Em caso de sucesso, uma string contendo a assinatura é retornada. Se o token não for válido, uma string vazia é retornada.

Importante

Esta função requer a versão 11.26 ou posterior do agente.

Exemplos

// Retrieve a JWT signature:
GetJwtSignature("AxE9qm4aTZiXvA2G8sblAxjeL...");