Ir para o conteúdo

Funções JWT

Introdução

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

Importante

Embora as funções JWT não apareçam na UI do Design Studio, as funções ainda podem ser usadas diretamente em scripts. As funções JWT requerem o Design Studio versão 11.26 ou posterior e o agente versão 11.26 ou posterior.

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 o alg, typ, cty, e kid chaves. Esses pares de valores-chave não diferenciam maiúsculas de minúsculas. Todos os outros pares de valores-chave serão ignorados. 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, será definido como None. Se um valor para typ não for reconhecido, será definido como JWT.
  • payload: Uma string JSON contendo quaisquer valores de payload esperados que representam declarações JWT. Todos os pares de valores-chave serão tratados como uma declaração válida. Se afirmações como aud suportam vários valores, eles podem ser definidos como uma string delimitada por vírgula, por exemplo audience1, audience2, audience3. As reivindicações registradas suportadas incluem iss, sub, aud, exp, nbf, iat, e jti. Para exp, nbf, e iat para serem tratadas como reclamações registradas, elas devem ser definidas usando um valor inteiro (1234567890, não "1234567890").

Parâmetros Opcionais

  • private_key: Uma chave privada de string para o algoritmo especificado no header. Se o None algoritmo é usado, este campo é ignorado.
  • public_key: Uma chave pública de string para o algoritmo especificado no header. Se o None, HS256, HS384, ou HS512 algoritmos são usados, 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 serão retornadas.

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

Importante

Esta função requer o Design Studio versão 11.26 ou posterior e o agente versão 11.26 ou posterior.

Exemplos

Example Using None
// Define the JWT header:
$header = '{"alg": "None", "typ": "JWT"}';

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

CreateJwtToken($header, $payload, "", "");
Example Using 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 que representa 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 sinistros mais abrangente.

Importante

Esta função requer o Design Studio versão 11.26 ou posterior e o agente versão 11.26 ou posterior.

Exemplos

// Check if a token is in JWT format:
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 que representa o JWT.
  • algorithm: O algoritmo usado para verificação de sinistros.
  • key: A chave secreta usada para verificação de reivindicações.

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) de acordo com 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 é devolvido sem verificar as reivindicações. Se nenhuma declaração for fornecida, esta função agirá como o VerifyJwt função, ignorando o algoritmo e a chave secreta.

Cuidado

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

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

Importante

Esta função requer o Design Studio versão 11.26 ou posterior e o agente versão 11.26 ou posterior.

Exemplos

// Verify JWT claims:
VerifyJwtClaims("AxE9qm4aTZiXvA2G8sblAxjeL...", "RS256", "Secret", '{"iat": 1234567890, "name": "Example", "test": "Test"}');
// Empty claims workaround:
VerifyJwtClaims("AxE9qm4aTZiXvA2G8sblAxjeL...", "RS256", "Secret", "{}");

DecodeJwtToken

Declaração

string DecodeJwtToken(string token)

Sintaxe

DecodeJwtToken(<token>)

Parâmetros Obrigatórios

  • token: Uma string que representa 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 será retornada. Caso contrário, quaisquer mensagens de erro serão retornadas.

Importante

Esta função requer o Design Studio versão 11.26 ou posterior e o agente versão 11.26 ou posterior.

Exemplos

// Decode a JWT token:
DecodeJwtToken("AxE9qm4aTZiXvA2G8sblAxjeL...");

GetJwtHeader

Declaração

string GetJwtHeader(string token)

Sintaxe

GetJwtHeader(<token>)

Parâmetros Obrigatórios

  • token: Uma string que representa 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 será retornada.

Importante

Esta função requer o Design Studio versão 11.26 ou posterior e o agente versão 11.26 ou posterior.

Exemplos

// Retrieve a JWT header:
GetJwtHeader("AxE9qm4aTZiXvA2G8sblAxjeL...");

GetJwtPayload

Declaração

string GetJwtPayload(string token)

Sintaxe

GetJwtPayload(<token>)

Parâmetros Obrigatórios

  • token: Uma string que representa o JWT.

Descrição

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

Importante

Esta função requer o Design Studio versão 11.26 ou posterior e o agente versão 11.26 ou posterior.

Exemplos

// Retrieve a JWT payload:
GetJwtPayload("AxE9qm4aTZiXvA2G8sblAxjeL...");

GetJwtSignature

Declaração

string GetJwtSignature(string token)

Sintaxe

GetJwtSignature(<token>)

Parâmetros Obrigatórios

  • token: Uma string que representa 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 será retornada.

Importante

Esta função requer o Design Studio versão 11.26 ou posterior e o agente versão 11.26 ou posterior.

Exemplos

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