はじめに
これまでも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
- 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の概要が理解できてきたので、次は、実際に使ってみて、ユーザ管理をしてみようと思います。 夏休みの宿題って大変ですね。がんばりましょう!