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 chavesalg,typ,ctyekid. 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 incluemHS256,HS384,HS512,PS256,PS384,PS512,RS256,RS384,RS512,ES256,ES256K,ES384,ES512,EdDSAeNone. Se um valor paraalgnão for reconhecido, ele será definido comoNone. Se um valor paratypnão for reconhecido, ele será definido comoJWT.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 comoaudsuportarem múltiplos valores, elas podem ser definidas como uma string delimitada por vírgulas, por exemploaudience1, audience2, audience3. As reivindicações registradas suportadas incluemiss,sub,aud,exp,nbf,iatejti. Para queexp,nbfeiatsejam 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 noheader. Se o algoritmoNonefor utilizado, este campo é ignorado.public_key: Uma chave pública em string para o algoritmo especificado noheader. Se os algoritmosNone,HS256,HS384ouHS512forem 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
// Define the JWT header:
$header = '{"alg": "None", "typ": "JWT"}';
// Define the JWT payload:
$payload = '{"iat": 1234567890, "name": "Example", "test": "Test"}';
CreateJwtToken($header, $payload, "", "");
// 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...");