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 clavesalg,typ,ctyykid. 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 incluyenHS256,HS384,HS512,PS256,PS384,PS512,RS256,RS384,RS512,ES256,ES256K,ES384,ES512,EdDSAyNone. Si un valor paraalgno es reconocido, se establecerá enNone. Si un valor paratypno es reconocido, se establecerá enJWT.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 comoaudadmiten múltiples valores, se pueden definir como una cadena delimitada por comas, por ejemploaudience1, audience2, audience3. Las reclamaciones registradas soportadas incluyeniss,sub,aud,exp,nbf,iatyjti. Para queexp,nbfeiatsean 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 elheader. Si se utiliza el algoritmoNone, este campo se ignora.public_key: Una cadena de clave pública para el algoritmo especificado en elheader. Si se utilizan los algoritmosNone,HS256,HS384oHS512, 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
// 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
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...");