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

マネージドサービスで作る認証機能

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 マネージドサービスで作る認証機能

AWSのCognitoを使うことで、安全なWebアプリの認証機能を作ってみようという発表です。

Avatar for Takahiro Tanaka

Takahiro Tanaka

May 03, 2023
Tweet

More Decks by Takahiro Tanaka

Other Decks in Technology

Transcript

  1. ログイン、ユーザ管理って面倒  OWASP Top10の中にも「A07 識別と認証の失敗」として、ユーザ認証に関する脆弱性がランクインして います。認証機能として、対応する必要がある課題として、以下のようなものが列挙されいます。  パスワードリスト攻撃、ブルートフォース攻撃などの自動化された攻撃への対応  弱いパスワード、良く使われるパスワードが使われないようにする

     パスワードを亡失した場合のリセットプロセスの安全な実装  パスワード保存を適切なハッシュ化をして保存する。  多要素認証への対応 直接的なビジネスロジックではないので、注力して書きたい機能ではないが、 中途半端な実装をしてセキュリティ的な穴を作ると、後でひどい目を見る機能
  2. Amplifyでログイン画面を実装する  以下のAmplify SNS Workshopの導入部分「MVPを作ろう!」までを 実施すると、ログイン機能+DynamoDBに対しての書き込み機能 までが作れます。  https://amplify-sns.workshop.aws/ja/ 

    作られるログイン画面は右のような画面になります。  この機能はAmplifyのAuthモジュールを利用して実装されています。 次ページ以降でAuthモジュールについて見てみましょう。
  3. Cognitoでのサインアップのフロー  Cognitoを使ってサインアップ機能を実装する場合、以下のようなユーザ確認フローになります。 登録済 (未確認) 確認済 パスワード リセット が必要 強制

    パスワード リセット 無効化 管理者による確認 Eメールor SMS による確認 サインアップ 無効化 有効化 パスワードの リセット ユーザをインポート 管理者がユーザを作成 Lambdaをトリガー (確認部分をカスタマイズできる)