Funciones JWT
Introducción
Token web JSON (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).
Importante
Si bien las funciones JWT no aparecen en la interfaz de usuario de Design Studio, aún se pueden usar directamente en los secuencias de comandos. Las funciones JWT requieren la versión 11.26 o posterior de Design Studio y la versión 11.26 o posterior del agente.
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 el- alg,- typ,- cty, y- kidllaves. 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- algno se reconoce, se establecerá en- None. Si un valor para- typno se reconoce, se establecerá en- JWT.
- payload: Una cadena JSON que contiene los valores de carga esperados que representan reclamaciones JWT. Todos los pares clave-valor se tratarán como una reclamación válida. Si afirmaciones como- audadmiten 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- iatpara ser tratados como reclamaciones registradas, deben establecerse 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- Nonese utiliza el 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- HS512se utilizan algoritmos, 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.
Sólo los dos primeros parámetros son necesarios 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 Design Studio versión 11.26 o posterior y Agent versión 11.26 o posterior.
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
Comprueba si el token proporcionado es un token JWT válido y devuelve un valor booleano (true o false) según el 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 Design Studio versión 11.26 o posterior y Agent versión 11.26 o posterior.
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 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 afirmaciones que se van a verificar.
Descripción
Verifica si las afirmaciones del token proporcionado son válidas (no modificadas) dado el algoritmo proporcionado y la clave secreta y devuelve un valor booleano (true o false) según el 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 funcionan, ignorando el algoritmo y la clave secreta.
Precaución
Los valores de las reclamaciones proporcionados para la 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 queda vacío. Como solución alternativa, ingrese "{}" para claims.
Importante
Esta función requiere Design Studio versión 11.26 o posterior y Agent versión 11.26 o posterior.
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 Requeridos
- token: Una cadena que representa el JWT.
Descripción
Decodifica el token suministrado para recuperar sus reclamos. 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 Design Studio versión 11.26 o posterior y Agent versión 11.26 o posterior.
Ejemplos
// Decode a JWT token:
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. En caso de é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 Design Studio versión 11.26 o posterior y Agent versión 11.26 o posterior.
Ejemplos
// Retrieve a JWT header:
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. En caso de é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 Design Studio versión 11.26 o posterior y Agent versión 11.26 o posterior.
Ejemplos
// Retrieve a JWT payload:
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. 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 Design Studio versión 11.26 o posterior y Agent versión 11.26 o posterior.
Ejemplos
// Retrieve a JWT signature:
GetJwtSignature("AxE9qm4aTZiXvA2G8sblAxjeL...");