Сертификат открытого ключа AWS cognito - PullRequest
0 голосов
/ 12 октября 2018

Мне нужен сертификат открытого ключа, который использует Amazon Cognito, чтобы мое веб-приложение могло проверить JWT Cognito.Есть ли какой-либо способ получить сертификат открытого ключа, или вам нужно использовать Cognito SDK для этого?

1 Ответ

0 голосов
/ 13 октября 2018

На Cognito JWK нет цепочки сертификатов.Публичный JWK для вашего Cognito можно найти здесь:

https://cognito-idp.{region}.amazonaws.com/{userPoolId}/.well-known/jwks.json

Вы можете декодировать JWK в формат открытого ключа PEM, используя такую ​​библиотеку, как https://www.npmjs.com/package/jwk-to-pem

var jwkToPem = require('jwk-to-pem');

var jwk = JWK_FROM_URL,
    pem = jwkToPem(jwk);

Или вы можете выполнить полную проверку, используя что-то вроде https://github.com/cisco/node-jose

jose.JWK.asKey(keys[key_index])
  .then(result => jose.JWS.createVerify(result).verify)
  .then(result => JSON.parse(result.payload))

Подробное руководство по декодированию Cognito JWT здесь https://aws.amazon.com/premiumsupport/knowledge-center/decode-verify-cognito-json-token/, с примером использования jose наCognito JWT здесь: https://github.com/awslabs/aws-support-tools/blob/master/Cognito/decode-verify-jwt/decode-verify-jwt.js

...