JWT (JSON Web Token) es un estándar abierto que define una forma compacta y autocontenida para compartir información entre dos componentes como objetos JSON.
Los JWT pueden ser firmados usando un secreto (Con el algoritmo HMAC) o con un par de llaves privada y pública usando RSA o ECDSA.
Tiene tres elementos:
- Header: Contiene la información de que algoritmo se usa para firmar el mensaje
- Payload: Es la información a compartir que se quiere firmar y verificar digitalmente
- Signature: Es la firma resultado del procesamiento del header y el payload con el algoritmo definido en el header y la llave privada o secreto establecido.
La forma compacta se conforma de los 3 elementos anteriores separados por punto de la siguiente manera:
base64URL(Header).base64URL(Payload).Signature
Para el consumo de las API usamos JWT firmados de forma asimétrica (usando llave publica y llave privada) en su forma compacta.
Cómo generar el certificado
Como indicábamos para asegurar la identidad del consumidor durante la comunicación entre la aplicación y el API es necesario generar un certificado.
Se debe generar la llave pública y privada.
Datos para generar el certificado
Información de ejemplo
Características recomendadas
|
Generación certificado
Puede utilizar la herramienta OpenSSL para la creación del certificado.
opensslreq -newkey rsa:2048 -nodes -keyoutkey.pem -x509 -days 365 -outcertificate.pem 2. Ingresa a JSON Web Tokens -jwt.io en explorador de internet y configura RS256. 3. Abre la herramienta de desarrollador en el navegador web. |
Código NodeJS
let iat= new Date()/1000; let exp= iat+ 600*60; let min = 17592186044416;//Hex1000000000000 let max= 281474976710655;//Hexffffffffffff let nonce= Math.floor((Math.random() * (max-min + 1)) + min).toString(16); let jwtPayload= { iss: "PruebaPayAPP", sum: "ccb2eebf-889c-47b6-ad55-75346cf70a08", aud: “APIGateway_DMZ", scope:"ScopeBetween" , exp: exp, iat: iat, nonce: nonce } console.log(JSON.stringify(jwtPayload)); 2. Copiar y pegar JSON generado en campo PAYLOAD DATA. |
Ingresar resultado en el Payload
|
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.