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 oalg,typ,cty, ekidchaves. 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 incluemHS256,HS384,HS512,PS256,PS384,PS512,RS256,RS384,RS512,ES256,ES256K,ES384,ES512,EdDSA, eNone. Se um valor paraalgnão for reconhecido, será definido comoNone. Se um valor paratypnão for reconhecido, será definido comoJWT.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 comoaudsuportam vários valores, eles podem ser definidos como uma string delimitada por vírgula, por exemploaudience1, audience2, audience3. As reivindicações registradas suportadas incluemiss,sub,aud,exp,nbf,iat, ejti. Paraexp,nbf, eiatpara 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 noheader. Se oNonealgoritmo é usado, este campo é ignorado.public_key: Uma chave pública de string para o algoritmo especificado noheader. Se oNone,HS256,HS384, ouHS512algoritmos 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
// 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 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...");