yama-techブログ

いつかできるようになるまで挑戦する!ブログ

JAWS-UG沖縄 Amazon Cognitoを触ってみよう に参加してきた

沖縄は台風の影響で、大荒れの天気。

明日はもっとひどくなるようなので、選挙も期日前投票で済ませた。

 

本題に。

 JAWS-UG沖縄の勉強会に参加してきたので、忘れないうちにブログに残しておく。

 

Amazon Cognitoとは(ざっくり)

アプリケーションの認証と認可を提供するマネージドサービス

  • 認証

アクセスユーザーが誰なのか確認すること

  • 認可

特定の条件を満たした時に、リソースアクセスの権限を与えること

 

勉強会でやったことまとめ

Amazon Cognitoを使ってサーバレスな簡易ストレージサービスを構築した。

使ったサービスはCognito・S3・IAM。

Identity ProviderはCognito User Poolsを使用。

 

参考サイト:

dev.classmethod.jp

cognito-userpools-in-production // Speaker Deck

 

認証のフローは以下サイトの説明が分かりやすかった。

「拡張認証フロー」の箇所

http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/authentication-flow.html

Amazon Cognitoを触ってみて、メリット・デメリットも整理。

あまりデメリットが見当たらない。

 

メリット

  • あまり時間をかけずに、ユーザ登録やユーザ認証の仕組みを作ることができる

  • 外部のIdentity Provider(Google,Facebook,twitterなど)を使って、ユーザ認証の仕組みを作ることができる

  • 複数のIdentity Providerから名寄せ(異なるアカウントを同一ユーザとして扱う)できる

     ※自前で名寄せするとデータベース設計が大変なため、かなり助かる

  • ログイン機能で多要素認証(MFA)にも対応できる

デメリット

  • 認証フローの仕組み上メッセージのやり取りと処理が多くなるため、少し認証に時間がかかる

  • 概念を理解するまでのハードルがやや高い

     ※IdentityPoolIdなど直訳すると意味がよく分からない単語が出てくる

     ※認証と認可の違いを理解する必要がある

 

今回参加してきてみて、自前でログイン画面を作るよりも、Cognitoを使った方が良いと感じた。

次回テーマはElastic Beanstalkのようなので、EBに関する「みんなの失敗経験談」とか「Blue/Green デプロイメントの最新ベストプラクティス」とか聞きたいかも。