Saltar al contenido

Funciones JWT en Jitterbit Studio

Introducción

Las funciones de JSON Web Token (JWT) permiten la creación, verificación y decodificación de JWTs. Para más información sobre la especificación de JWT, consulta IETF RFC 7519: JSON Web Token (JWT).

Nota

Una alternativa al uso de funciones JWT es utilizar el conector JWT de Jitterbit.

CreateJwtToken

Declaración

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

Sintaxis

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

Parámetros requeridos

  • header: Una cadena JSON que contiene los valores de encabezado esperados para las claves alg, typ, cty y kid. Estos pares clave-valor son insensibles a mayúsculas y minúsculas. Todos los demás pares clave-valor serán ignorados. Los algoritmos soportados incluyen HS256, HS384, HS512, PS256, PS384, PS512, RS256, RS384, RS512, ES256, ES256K, ES384, ES512, EdDSA y None. Si un valor para alg no es reconocido, se establecerá en None. Si un valor para typ no es reconocido, se establecerá en JWT.
  • payload: Una cadena JSON que contiene los valores de carga esperados que representan las reclamaciones de JWT. Todos los pares clave-valor se tratarán como una reclamación válida. Si las reclamaciones como aud admiten múltiples valores, se pueden definir como una cadena delimitada por comas, por ejemplo audience1, audience2, audience3. Las reclamaciones registradas soportadas incluyen iss, sub, aud, exp, nbf, iat y jti. Para que exp, nbf e iat sean tratados como reclamaciones registradas, deben establecerse utilizando un valor entero (1234567890, no "1234567890").

Parámetros opcionales

  • private_key: Una cadena de clave privada para el algoritmo especificado en el header. Si se utiliza el algoritmo None, este campo se ignora.
  • public_key: Una cadena de clave pública para el algoritmo especificado en el header. Si se utilizan los algoritmos None, HS256, HS384 o HS512, este campo se ignora.

Descripción

Crea un JWT utilizando la información proporcionada. En caso de éxito, se devuelve una cadena que representa el token recién creado; de lo contrario, se devuelven los mensajes de error.

Solo los primeros dos parámetros son obligatorios en todos los casos. Los parámetros restantes son situacionales y pueden ser requeridos según el algoritmo JWT elegido.

Importante

Esta función requiere la versión 11.26 o posterior del agente.

Ejemplos

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

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

CreateJwtToken($header, $payload, "", "");
Ejemplo 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

Declaración

bool VerifyJwt(string token)

Sintaxis

VerifyJwt(<token>)

Parámetros requeridos

  • token: Una cadena que representa el JWT.

Descripción

Verifica si el token proporcionado es un token JWT válido y devuelve un booleano (true o false) basado en el resultado. Esta función verifica solo el formato del token, consulta VerifyJwtClaims para una verificación de reclamos más completa.

Importante

Esta función requiere la versión 11.26 o posterior del agente.

Ejemplos

// Verificar si un token está en formato JWT:
VerifyJwt("AxE9qm4aTZiXvA2G8sblAxjeL...");

VerifyJwtClaims

Declaración

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

Sintaxis

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

Parámetros requeridos

  • token: Una cadena que representa el JWT.
  • algorithm: El algoritmo utilizado para la verificación de reclamos.
  • key: La clave secreta utilizada para la verificación de reclamos.

Parámetros opcionales

  • claims: Una cadena JSON que contiene las reclamaciones a verificar.

Descripción

Verifica si las reclamaciones del token suministrado son válidas (no modificadas) dado el algoritmo y la clave secreta suministrados, y devuelve un booleano (true o false) basado en el resultado. Si el token en sí no es válido, se devuelve false sin verificar las reclamaciones. Si no se suministran reclamaciones, esta función actúa en su lugar como la función VerifyJwt, ignorando el algoritmo y la clave secreta.

Precaución

Los valores de las reclamaciones suministrados para verificación deben coincidir con los tipos de datos originales utilizados. Por ejemplo, "iat": "1234567890" no es igual a "iat": 1234567890.

Si se utiliza la versión del agente 11.26, VerifyJwtClaims generará errores si claims se deja vacío. Como solución alternativa, ingrese "{}" para claims.

Importante

Esta función requiere la versión del agente 11.26 o posterior.

Ejemplos

// Verificar reclamaciones JWT:
VerifyJwtClaims("AxE9qm4aTZiXvA2G8sblAxjeL...", "RS256", "Secret", '{"iat": 1234567890, "name": "Example", "test": "Test"}');
// Solución alternativa para reclamaciones vacías:
VerifyJwtClaims("AxE9qm4aTZiXvA2G8sblAxjeL...", "RS256", "Secret", "{}");

DecodeJwtToken

Declaración

string DecodeJwtToken(string token)

Sintaxis

DecodeJwtToken(<token>)

Parámetros requeridos

  • token: Una cadena que representa el JWT.

Descripción

Decodifica el token suministrado para recuperar sus reclamaciones. Si tiene éxito, se devuelve una cadena que contiene las reclamaciones decodificadas. Si el token no es válido, se devuelve una cadena vacía. De lo contrario, se devuelven los mensajes de error.

Importante

Esta función requiere la versión del agente 11.26 o posterior.

Ejemplos

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

GetJwtHeader

Declaración

string GetJwtHeader(string token)

Sintaxis

GetJwtHeader(<token>)

Parámetros requeridos

  • token: Una cadena que representa el JWT.

Descripción

Recupera el encabezado del JWT. Si tiene éxito, se devuelve una cadena que contiene el encabezado. Si el token no es válido, se devuelve una cadena vacía.

Importante

Esta función requiere la versión 11.26 o posterior del agente.

Ejemplos

// Recuperar un encabezado JWT:
GetJwtHeader("AxE9qm4aTZiXvA2G8sblAxjeL...");

GetJwtPayload

Declaración

string GetJwtPayload(string token)

Sintaxis

GetJwtPayload(<token>)

Parámetros requeridos

  • token: Una cadena que representa el JWT.

Descripción

Recupera la carga útil del JWT. Si tiene éxito, se devuelve una cadena que contiene la carga útil. Si el token no es válido, se devuelve una cadena vacía.

Importante

Esta función requiere la versión 11.26 o posterior del agente.

Ejemplos

// Recuperar una carga útil JWT:
GetJwtPayload("AxE9qm4aTZiXvA2G8sblAxjeL...");

GetJwtSignature

Declaración

string GetJwtSignature(string token)

Sintaxis

GetJwtSignature(<token>)

Parámetros requeridos

  • token: Una cadena que representa el JWT.

Descripción

Recupera la firma del JWT. Si tiene éxito, se devuelve una cadena que contiene la firma. Si el token no es válido, se devuelve una cadena vacía.

Importante

Esta función requiere la versión 11.26 del agente o posterior.

Ejemplos

// Recuperar una firma JWT:
GetJwtSignature("AxE9qm4aTZiXvA2G8sblAxjeL...");