Amazon Cognitoのい・ろ・は

AWS運用自動化サービス「Cloud Automator」

はじめに

これまでもAmazon Cognitoを使ってみようと思ったのですが、思っただけで触らず…
夏休みで子供が勉強してるので、自分も勉強しようと思います。

Amazon Cognitoとは

ドキュメントにも書いてますが、「ウェブアプリケーションやモバイルアプリケーションの認証、認可、ユーザ管理をサポート」をしてくれます。
ここで「認証と認可」についてまずは確認していきます。

認証と認可

認証

認証とは、いろんな意味があるのですが、利用者が本人であるかどうかを確認する作業ということで、
IDやパスワードで利用者が本人であることを確認することになります。

認可

認可とは、認証されたユーザのシステム資源へのアクセスをそのユーザ権限に応じて判断するということのようです。
認証されたユーザが権限に応じてReadOnlyだったり、ReadWriteだったり、Adminの権限を割り当てるって感じですね。

Amazon Cognitoの機能

Amazon Cognitoには3つ機能があります。

  • Amazon Cognito User Pool
  • Amazon Cognito Identity Pool
  • Amazon Cognito Sync

ざっくり説明すると

Amazon Cognito User Pool

  • サインアップ及びサインインサービス
  • ユーザがサインインするための組み込みのカスタマイズ可能なウェブUI
  • FacebookやGoogleを使ったソーシャルサインインやLogin with Amazon、ユーザプールからのSAML IDプロバイダーでサインイン
  • ユーザディレクトリとユーザプロファイルの管理
  • 他要素認証(MFA)などのセキュリティ機能
  • 漏洩した認証情報のチェック
  • アカウント乗っ取り保護
  • 電話とEメールによる検証
  • カスタマイズされたワークフローとAWS Lambdaトリガーによるユーザ移行

Amazon Cognito Identity Pool

  • 認可を行う機能を持っている
  • ユーザの一意のIDを作成して、IDプロバイダーで連携させることができます。
  • IDプロバイダーとしてサポートしているものは以下の通り。
    • Login with Amazon
    • Facebook
    • Google
    • Amazon Cognito User Pool
    • Open ID Connect Provider
    • SAML ID Provider

Amazon Cognitoで、認証/認可というと

Amazon Cognitoでいうとどうなるでしょうか?
認証:Amazon Cognito User Pool
認可:Amazon Cognito Identity Pool
になります。

Amazon Cognito Syncとは

ここまで出てこなかったAmazon Cognito Syncですが、これまでの認証/認可とは違う機能で、
アプリケーションが使うユーザデータのデバイス間の同期を有効にする機能になります。
ただ、ドキュメントには、
「Amazon Cognito Syncを初めて使用する場合は、AWS AppSyncを使用してください。」とあるので、
利用方法は考えていかないといけない感じです。

さいごに

これで、Amazon Cognitoの概要が理解できてきたので、次は、実際に使ってみて、ユーザ管理をしてみようと思います。
夏休みの宿題って大変ですね。がんばりましょう!

AWS運用自動化サービス「Cloud Automator」