JAWS-UG沖縄 Amazon Cognitoを触ってみよう に参加してきた
沖縄は台風の影響で、大荒れの天気。
明日はもっとひどくなるようなので、選挙も期日前投票で済ませた。
本題に。
JAWS-UG沖縄の勉強会に参加してきたので、忘れないうちにブログに残しておく。
Amazon Cognitoとは(ざっくり)
アプリケーションの認証と認可を提供するマネージドサービス
- 認証
アクセスユーザーが誰なのか確認すること
- 認可
特定の条件を満たした時に、リソースアクセスの権限を与えること
勉強会でやったことまとめ
Amazon Cognitoを使ってサーバレスな簡易ストレージサービスを構築した。
使ったサービスはCognito・S3・IAM。
Identity ProviderはCognito User Poolsを使用。
参考サイト:
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 デプロイメントの最新ベストプラクティス」とか聞きたいかも。