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 elalg
,typ
,cty
, ykid
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 incluyenHS256
,HS384
,HS512
,PS256
,PS384
,PS512
,RS256
,RS384
,RS512
,ES256
,ES256K
,ES384
,ES512
,EdDSA
, yNone
. Si un valor paraalg
no se reconoce, se establecerá enNone
. Si un valor paratyp
no se reconoce, se configurará enJWT
.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 comoaud
Admiten múltiples valores, se pueden definir como una cadena delimitada por comas, por ejemploaudience1, audience2, audience3
Las reclamaciones registradas admitidas incluyeniss
,sub
,aud
,exp
,nbf
,iat
, yjti
. Paraexp
,nbf
, yiat
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 elheader
. Si elNone
Si se utiliza un algoritmo, este campo se ignora.public_key
: Una clave pública de cadena para el algoritmo especificado en elheader
. Si elNone
,HS256
,HS384
, oHS512
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
// 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 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...");