Saltar al contenido

Funciones JWT en Jitterbit Integration Studio

Introducción

Token web JSON Las funciones JWT permiten la creación, verificación y decodificación de JWT. Para obtener más información sobre la especificación JWT, consulte 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 necesarios

  • header: Una cadena JSON que contiene todos los valores de encabezado esperados para el alg, typ, cty, y kid claves. Estos pares clave-valor no distinguen entre mayúsculas y minúsculas. Se ignorarán todos los demás pares clave-valor. Los algoritmos admitidos incluyen HS256, HS384, HS512, PS256, PS384, PS512, RS256, RS384, RS512, ES256, ES256K, ES384, ES512, EdDSA, y None. Si un valor para alg no se reconoce, se establecerá en None. Si un valor para typ no se reconoce, se configurará en JWT.
  • payload: Una cadena JSON que contiene los valores de carga útil esperados que representan reclamaciones JWT. Todos los pares clave-valor se tratarán como una reclamación válida. Si se trata de reclamaciones como aud Admiten múltiples valores, se pueden definir como una cadena delimitada por comas, por ejemplo audience1, audience2, audience3 Las reclamaciones registradas admitidas incluyen iss, sub, aud, exp, nbf, iat, y jti. Para exp, nbf, y iat Para que se consideren reclamaciones registradas, deben configurarse utilizando un valor entero (1234567890, no "1234567890").

Parámetros opcionales

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

Descripción

Crea un JWT utilizando la información suministrada. 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 se requieren los dos primeros parámetros para todos los casos. Los parámetros restantes son situacionales y pueden ser necesarios según el algoritmo JWT elegido.

Importante

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

Ejemplos

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

Declaración

bool VerifyJwt(string token)

Sintaxis

VerifyJwt(<token>)

Parámetros necesarios

  • token: Una cadena que representa el JWT.

Descripción

Comprueba si el token proporcionado es un token JWT válido y devuelve un valor booleano (true o false) en función del resultado. Esta función verifica únicamente el formato del token, consulte VerifyJwtClaims para una verificación de reclamaciones más completa.

Importante

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

Ejemplos

// Check if a token is in JWT format:
VerifyJwt("AxE9qm4aTZiXvA2G8sblAxjeL...");

VerifyJwtClaims

Declaración

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

Sintaxis

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

Parámetros necesarios

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

Parámetros opcionales

  • claims: Una cadena JSON que contiene las afirmaciones que se deben verificar.

Descripción

Verifica si las afirmaciones del token proporcionado son válidas (no modificadas) dado el algoritmo y la clave secreta proporcionados y devuelve un valor booleano (true o false) en función del resultado. Si el token en sí no es válido, false se devuelve sin comprobar las reclamaciones. Si no se proporcionan reclamaciones, esta función actúa como VerifyJwt función, ignorando el algoritmo y la clave secreta.

Precaución

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

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

Importante

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

Ejemplos

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

DecodeJwtToken

Declaración

string DecodeJwtToken(string token)

Sintaxis

DecodeJwtToken(<token>)

Parámetros necesarios

  • token: Una cadena que representa el JWT.

Descripción

Decodifica el token proporcionado para recuperar sus reclamaciones. En caso de é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 11.26 o posterior del agente.

Ejemplos

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

GetJwtHeader

Declaración

string GetJwtHeader(string token)

Sintaxis

GetJwtHeader(<token>)

Parámetros necesarios

  • token: Una cadena que representa el JWT.

Descripción

Recupera el encabezado del JWT. Si la operación es correcta, 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

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

GetJwtPayload

Declaración

string GetJwtPayload(string token)

Sintaxis

GetJwtPayload(<token>)

Parámetros necesarios

  • token: Una cadena que representa el JWT.

Descripción

Recupera la carga útil del JWT. Si la operación es correcta, 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

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

GetJwtSignature

Declaración

string GetJwtSignature(string token)

Sintaxis

GetJwtSignature(<token>)

Parámetros necesarios

  • token: Una cadena que representa el JWT.

Descripción

Recupera la firma del JWT. En caso de é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 o posterior del agente.

Ejemplos

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