Récupération de la clef publique Cognito
Contexte
Lors des échanges entre les différents composants de la plateforme, il faut s’assurer de la validité du token reçu. À cet usage, Cognito met à disposition une route pour récupérer une clé publique. Celle-ci permet de valider la signature du token et de s’assurer qu’il provient bien de l’instance Cognito de BEYOND.
Le package back end a été conçu pour récupérer cette clé publique.
Usage
- Importer le package dans votre fichier Node.js du module qui assure l’authentification
const connectorCognito = require('@sixense/cognito-connector-back');
- Appeler la méthode du package ‘getCognitoPublicKey’
La méthode prend 2 paramètres :
- la région : obligatoire / string
- le userPoolId : obligatoire / string
Les valeurs de ces paramètres sont communiquées par l’IT lors de la demande de déclaration d’un nouveau produit.
const publicKeyService = await connectorCognito.getCognitoPublicKey(process.env.AWS_REGION, process.env.AWS_USERPOOLID);
En cas de succès la méthode renvoie une réponse du type :
{
code: 200,
publicKey: [
{
alg: 'RS256',
e: 'AQAB',
kid: 'DiYgEPhfwsKAweOR7VcgNRh3u54nQTXvbQidgZJvFsk=',
kty: 'RSA',
n: 'q2JmwZQKERbZ21rqcQ3EafO1toLipWOBeQF47PCAXnwQ4UrkeUz11UPV5ntGuwyeH1aqjNXBJPz5ZoMVglV6OFVnfEBucbkD18-FbuuCoyuoUxvwe8vZSKwo4ULZoFoTa98XRKpVLALwmg86-sEPpMQLhFDaI4TKeSoafhjMDYQ3XepMeZK18ddOjlywLZC2BUisw78tnfJOU2XU7fAEwLsDbWFKUT79TVjjQUIi0g4m_yJyFN3-PGdyBAHqTa_b16faL-REyZ2Lp6eCivmPSpbF-dz1Bol9SPXeza94iPntsxRo34iO7TxAvs0015XdOYXe6VwBGx-TOtGZ8uvsiw',
use: 'sig'
},
{
alg: 'RS256',
e: 'AQAB',
kid: 'ZLz2s1lJ9SRkAlk9BddQ/SNUDkCzeOlRs/4d5lgsOKA=',
kty: 'RSA',
n: 'lMAcfgMY2WH3lhoeBxoq_Ac3mQzb8i4GbKpCEy1ef3x5sBaAAje2d_LGOa_d3p946gkg0zIo3_ZrDRoSQkiuuQu2w7pX8BnmREhWXOSRGG-YJAKHxBV50oLu0n746p9qBYy6PsPQYXuVlfnWgzVLkZg-eZc5fIJrqp53mbN1CCSwC4jdgLfr8uW5LPliWKv2SmtaNW8PmWfkz8K0ozotvxX3ipl8WbULklZjDnmL2BNqywOcE8NADMCayqu42sd-F7j5bcDZQo5-C0S0A4leK8FvIrQ8mz3RpEyGnVSn3HvgeuyylOw8oMpW18DscuJcovUGYuT4nwzeUqf_r8_ZpQ',
use: 'sig'
}
]
}
Il est conseillé de stocker la valeur de cette clé publique afin de ne pas devoir la récupérer à chaque vérification de token. Cependant, il est recommandé d’associer une date d’expiration à ce stockage afin de renouveler périodiquement la clé pour gérer l’expiration de celle-ci. La clé publique est un paramètre obligatoire pour la vérification du token.
En cas d’échec, la méthode renvoie l’une des erreurs suivantes :
- Si la région est invalide :
{
message: 'region not valid',
}
- Si le userPoolId n’est pas présent pour cette région ou que le userPoolId est invalide :
{
message: 'userPoolId is not valid , or the region is not valid',
}
| 001 | Version Initiale | Sixense |