Cognitoとは
- Amazon Cognito(アイデンティティおよびデータ同期に関する機能を提供するサービス) | アマゾン ウェブ サービス(AWS 日本語)
- Amazon Cognito を使用した開発 – Amazon Cognito 開発者ガイド
Facebookなどのパブリックログインプロバイダ認証を元に、AWSの認証を得ることのできるサービス。このサービスを利用することで、例えば特定のSNSアカウントに紐づけられたユーザにのみS3へのアクセスを許可するなど、AWSリソースへのアクセスを設定することができる。また、各ユーザごとにkey, Value型のデータを保存することが可能であるので、例えばゲームの設定情報やスコア情報などを、デバイス間で共有することやバックアップすることも可能である。
アプリケーションユーザーの認証
- 対応しているパブリックログインプロバイダ
- Amazon
- OpenID Connect
- Gigits
- パブリックログインプロバイダから返されるOAuth や OpenID Connect のトークンを渡すと、Cognito IDと呼ばれる一意のIDが割り振られる
- Cognito IDによって、AWSのリソースにアクセスすることが可能となる
- パブリックログインプロバイダ認証は自分で実装する必要がある
- Cognitoはプロバイダ認証の結果を受けて、プロバイダのトークンの確認やCognito IDとの紐づけを行う
- AWSリソースへのアクセス権限はIAMで指定する
- 未認証ゲストをサポートすることもできる
アプリケーションデータの保存
- 各ユーザのデータ(データセット)は一度ユーザーのローカルデバイスに保存され、その後 AWS クラウドと同期される
- アプリケーションデータを同期する際は、同期メソッドを明示的に呼び出す必要がある
- データセットの取得や解析には、Kinesisストリームを利用する
課金
- ストア容量とデータ同期回数に基づいて課金を行う
- 1 か月につき 10 GB の同期ストア容量と 100 万回の同期オペレーションまでは無料枠が設定されている
Cognitoの設定
1. Identity Poolを作成する
- 「Create new identity pool」をクリックする
Identity pools – Amazon Cognito – Amazon Web Services
2. 名称とプロバイダ情報を入力する
- 東京リージョンを選択する
- identity pool名を入力する
- 各種プロバイダ情報を入力する
- 登録を実行する
3. ユーザのロールを設定
- ダッシュボードから「Edit identity pool」をクリック
- ダッシュボードには、各種データが表示される
- 「Unauthenticated role」の「Create new role」をクリック
- 「Authenticated role」の「Create new role」をクリック
- ロール名が自動入力されるので、作成ウィザードで登録を行う
- Unauthenticated role
–Authenticated role
- Unauthenticated role
- IAMのロール一覧を開き、先ほど作成したロールを選択する
- 作成済みのロールポリシーを確認する
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "mobileanalytics:PutEvents", "cognito-sync:*" ], "Resource": [ "*" ] } ] }次回は、JavaScriptを用いたコンテンツ側の実装を確認する。