[解決済み] AWS CognitoのJWTをAPIバックエンドで確認する方法とは?
質問
Angular2のシングルページアプリと、ECS上で動作するREST APIからなるシステムを構築しています。APIは.Net/で動作しています。 ナンシー で動作していますが、変更される可能性があります。
Cognitoを試してみたいのですが、認証のワークフローはこのように想像していました。
- SPA がユーザーにサインインし、JWT を受信します。
- SPA はリクエストごとに JWT を REST API に送信します。
- REST API は、JWT が本物であることを確認します。
質問はステップ3についてです。 私のサーバー(というか、私のステートレス、自動スケール、負荷分散されたDockerコンテナ)は、トークンが本物であることをどのようにして確認できますか? サーバーはJWTを発行していないので、自分自身の秘密を使うことはできません(基本的なJWTの例で説明されているように ここで ).
Cognitoのドキュメントを読み、たくさんググってみましたが、サーバー側でJWTをどうするかについての良いガイドラインが見つかりません。
どのように解決するのですか?
私はドキュメントを正しく読んでいなかったことがわかりました。それは説明されています はこちら ("Using ID Tokens and Access Tokens in your Web APIs"までスクロールダウンしてください)。
API サービスは Cognito の秘密をダウンロードし、受け取った JWT を検証するためにそれを使用することができます。完璧です。
Edit
Groadyのコメントは的を得ています。 どのように トークンの検証はどうするのですか?私は、次のような実績のあるライブラリを使用することをお勧めします。 jose4j または ニンブス (どちらもJava)を利用し、自分でゼロから検証を実装しないようにしましょう。
ここで を使ったSpring Bootの実装例です。最近、java/dropwizardのサービスでこれを実装する必要があったときに、これを見ることで始めました。
関連
-
[解決済み] LDAPサーバをベースDNとする。
-
[解決済み] JWT認証とOAuth認証の主な違いは何ですか?
-
[解決済み] Google OAuth 2 認証 - エラー: redirect_uri_mismatch
-
[解決済み] JWTは解読できても、安全性はどうなのか?
-
[解決済み] ライブラリを使用せずに、javascriptでjwtトークンをデコードするにはどうすればよいですか?
-
[解決済み】ASP.NET Web APIのJWT認証について
-
[解決済み】エンドポイントとは何ですか?
-
[解決済み】Subversionでは、ログイン名以外のユーザーになることはできますか?
-
[解決済み】JWTが盗まれたらどうする?
-
[解決済み] クロスオリジンリクエストにCookieを設定する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] GitHub アカウントのユーザー名を変更する
-
[解決済み] JWTにおける時間切れの問題
-
[解決済み] OpenIDとOAuthの違いは何ですか?
-
[解決済み] Google OAuth 2 認証 - エラー: redirect_uri_mismatch
-
[解決済み] ユーザー名とパスワードでMongoDBを保護する方法
-
[解決済み】Cookieベースの認証はどのように機能するのですか?
-
[解決済み】JWTが盗まれたらどうする?
-
[解決済み] クロスオリジンリクエストにCookieを設定する
-
[解決済み] OpenIDとOAuthの比較 [重複]について
-
[解決済み] Socket.IO 認証