Web アプリの Cognito ユーザー プールのログイン機能を試しています。トークンを取得できましたが、それを解読するための秘密がどこにあるのかわかりません。シークレットはユーザープール内のアプリのシークレット ID であるという投稿の 1 つを読みました。ただし、Javascript SDK の場合、シークレット ID は空白です。これは、私のシークレットも空白にする必要があるということですか? これを試してみましたが、「エラー: PEM_read_bio_PUBKEY が失敗しました」というメッセージが表示されました。
3 に答える
他の回答を修正するには: RS256 は非対称アルゴリズムであり、公開鍵と秘密鍵が必要です。RS256 と HS256 の違いも参照してください。違いは何ですか? およびhttps://en.wikipedia.org/wiki/RSA_(cryptosystem)。
正しいのは、JWT を検証するために、署名に使用された秘密鍵は必要なく、AWS によって .NET の下で利用可能になった公開鍵のみが必要であるということですhttps://cognito-idp.{region}.amazonaws.com/{userPoolId}/.well-known/jwks.json
。
AWS は RS256 アルゴリズムを使用します。これは、復号化に秘密鍵ではなく公開鍵を必要としません。
ここにプールの JWKS があります: https://cognito-idp.{region}.amazonaws.com/{userPoolId}/.well-known/jwks.json
( http://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html#amazonを参照-cognito-identity-user-pools-using-id-and-access-tokens-in-web-api )
また、JWK を公開キーに変換するプロセスについて説明します: https://mobile.awsblog.com/post/Tx3JK25U7Z9EUIU/Integrating-Amazon-Cognito-User-Pools-with-API-Gateway (セクション「コードについて」の下) )。