Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon_Cognito_で構築する_スケーラブルな_Web_アプリケーション__シ...

 Amazon_Cognito_で構築する_スケーラブルな_Web_アプリケーション__シングルページ_Web_アプリケーションに認証を組み込む_.pdf

2025年4月23日(水)開催のサーバーワークススキルアップトレーニングでの登壇資料です。
https://www.serverworks.co.jp/event/2025423_skilltraining_webinar.html

Avatar for Satoshi Kaneyasu

Satoshi Kaneyasu

March 28, 2026
Tweet

More Decks by Satoshi Kaneyasu

Other Decks in Programming

Transcript

  1. 2 自己紹介 氏名:兼安 聡 所属:株式会社サーバーワークス アプリケーションサービス部 在住:広島(フルリモート) 担当:DevOps、技術支援、PM、SM 2025 AWS

    Community Builders 2024 Japan AWS Top Engineers (Database) 2024 Japan AWS All Certifications Engineers 認定スクラムマスター PMP X:@satoshi256kbyte
  2. 3 ⚫ シングルページアプリケーションとその効果 ⚫ Amazon Cognitoでできること ⚫ 認証・認可とその方式 ⚫ Amazon

    Cognitoを組み込んだシングルページアプリケーションのサンプル ⚫ フロントエンドとAmazon Cognitoの連携 ⚫ バックエンドとAmazon Cognitoの連携 ⚫ まとめ 目次
  3. 9 SPAの認証サーバーの連携 ⚫SPAの欠点はプログラムが動く場所が分かれることにより、「ログイン状態」を共 有するのが難しくなることにあります ⚫ここを補うのにAmazon Cognitoは役立ちます Amazon Cognito 配信サーバー データベース

    画像 HTML CSS JavaScript データ ブラウザ 静的コンテンツの返 却 データの操作 データ HTMLの生成 APIサーバー 業務ロジック HTMLの描画 次のページから話題が変わります
  4. 11 Amazon Cognitoとは ⚫ 認証を提供する仕組み ⚫ 主にアプリの認証に使用 ⚫ ユーザー管理を行う ⚫

    サインアップ ⚫ ログイン ⚫ パスワードリセット ⚫ など ⚫ JWT トークンを発行する ⚫ IDトークン ⚫ アクセストークン ⚫ IDプールとも言います ⚫ 認可を提供する仕組み ⚫ AWSリソースへのアクセスを管理する ⚫ 一時的なIAMロールを割り当てて、AWSサービスへ のアクセスを制御 ⚫Amazon Cognito はウェブアプリとモバイルアプリ用の認証・認可サービスです 認証 ユーザープール 認可 アイデンティティプール
  5. 12 認証・認可の概念 ⚫ 「あなたは誰?」 を確認するプロセス ⚫ 入場口でスタッフが名簿と照合し、本人確認するイ メージ ⚫ 照合が成功すると、入場許可が与えられる

    ⚫ 「あなたは何ができる?」 を決めるプロセス ⚫ 入場後、申し込み内容に応じてカードを渡される (一般 / VIP / スタッフなど)イメージ ⚫ 利用者は渡されたカードに応じたサービスを利用可 能となる ⚫認証・認可は、次のように考えることができます 認証 ユーザープール 認可 アイデンティティプール
  6. 13 Amazon Cognitoと認証・認可 ⚫ 「あなたは誰?」 を確認するプロセス ⚫ 入場口でスタッフが名簿と照合し、本人確認するイ メージ ⚫

    照合が成功すると、入場許可が与えられる ⚫Cognitoにおける認可は、ログインユーザーとIAMロールを紐づける機能を指します ⚫今回はCognitoの認可機能は使用しません 認証 ユーザープール
  7. 14 Amazon Cognitoのユーザープールの機能 ⚫ユーザー管理機能 ⚫ユーザーの 追加・更新・削除 ⚫属性(メールアドレス・電話番号・カスタム属性など) の管理が可能 ⚫通知機能(メール・SMS) ⚫登録・ログイン・パスワードリセット時の通知

    を Amazon SES/SNS で送信 ⚫カスタムメッセージ も設定可能 ⚫サインアップ、ログイン、パスワードリセット ⚫最初から用意されている画面がある ⚫APIを駆使してゼロからすることも可能 ⚫ソーシャルログイン(Google、Facebook、Amazon、Apple)に対応 ⚫MFAを利用可能
  8. 19 JSON Web Token(JWT)の内容 ⚫JSON Web Token(JWT)は、中(厳密にはPayload)に情報を持っています ⚫この情報を持って、トークンの有効期限・改ざん有無・ログインユーザーの情報を 取得することができます HTTP/1.0

    200 OK Cache-Control: no-cache, private Content-Type: application/json Date: Thu, 20 Feb 2025 04:16:40 GMT { "sub": "4704caf8-7051-7036-c84d-41ed68a4fff0", "email": "[email protected]", "username": "kaneyasu", "exp": 1740025120, "iss": "https://cognito-idp.ap-northeast-1.amazonaws.com/ap-northeast-1_en3GpIHzf" } Cognito ユーザープール内で一意のユーザー識別子(UUID) ユーザーごとに固有 発行元 有効期限 次のページから話題が変わります
  9. 52 参考資料 ⚫Amazon Cognito と AWS Amplify UI を使用して既存の React

    アプリケーション ユーザーを認証する ⚫Amplify Dev Center - Amplify UI ⚫Vercel公式ページ