読み方はコグニート!Amazon cognito の特徴

読み方はコグニート!Amazon cognito の特徴

Amazon cognitoはアプリケーションの認証認可を行うサービスのことでアカウント管理・認証認可の付与をAWS側で行ってくれる、フルマネージドサービスとなっています。Google・Amazon・Facebookなどの外部IDプロバイダーと連携可能で、Googleのアカウントを使用したログイン機能の作成や多要素認証などの拡張機能を備えています。

また、Amazon Cognito では、OpenID Connect、OAuth 2.0、SAML 2.0 などの一般的な ID 管理規格の他にもアダプティブ認証、いわゆる2段階認証にも対応しています。Amazon Cognito で、新しい場所やデバイスからのサインイン試行など通常とは異なるサインインアクティビティが検出されると、そのアクティビティのおリスクを検知し、ユーザーに対して追加の証明を求めるか、そのサインインリクエストをブロックするかを選択できます。ユーザーは、SMS や、Google Authenticator などの Time-based One-time Password (TOTP) ジェネレータを使用して自分の ID を確認できます。

Amazon Cognitoはユーザープール・IDプール・Cognito Syncの機能を提供しています。

ユーザープール

ユーザプールは Amazon Cognito のユーザディレクトリです。ユーザープールを使用することで、アプリユーザーは、Amazon Cognito からウェブやモバイルアプリにサインインするか、サードパーティーの ID プロバイダー (IdP) を通じて連携することができます。ユーザープールでは以下の機能を利用することができます。

・ユーザーのサインアップおよびサインインサービス

・ユーザーがサインインするための組み込みのカスタマイズ可能なウェブ UIの提供

・Facebook、Google でのソーシャルサインイン、Login with Amazon、Sign in with Apple、ユーザープールからの SAML および OIDC ID プロバイダー経由のサインイン

・ユーザーディレクトリとユーザープロファイルの管理

・多要素認証 (MFA) などのセキュリティ機能、漏洩した認証情報のチェック、アカウントの乗っ取り保護、電話と E メールによる検証

・ Lambda トリガーによるパスワードを忘れた場合の対処が可能

これらから、ユーザープールは主に認証の機能を担っていることがお分かりいただけると思います。

IDプール

ID プールを使用すると、ユーザーは一時的な AWS 認証情報を取得して、Amazon S3 や DynamoDB などの AWS サービスにアクセスすることができます。つまり、IDプールによってアカウントごとにAWSのサービスへのアクセスを制御することができるのです。匿名ゲストユーザーと、ID プールのユーザーを認証するのに使用できる情報は以下の通りとなります。

・Amazon Cognito ユーザープール

・Facebook、Google でのソーシャルサインイン、Login with Amazon、Sign in with Apple

・OpenID Connect (OIDC) プロバイダ

・SAML ID プロバイダー

・開発者が認証した ID

これらの情報を活用し、ロールベースアクセスコントロールが可能となり、IDプールは主に認可の機能を担う機能であることがわかります。

認証・認可について

認証・認可について以下のように理解しておくと、ユーザープール、IDプールの役割がわかりやすいかと思います。

用語説明
認証相手の身元を明らかにすること
→ユーザーの認証の仕組み
認可相手に適切な権限を付与すること
→認証したユーザーに対するデータアクセス制御の仕組み

Cognito Sync

Cognito Sync は、AWS のサービスを利用するユーザーに固有のデータストレージ を提供するサービスです。ユーザー一人一人に対して、ユーザーデータを保存する場所を提供してくれます。格納されたデータは、ローカルだけではなく、クラウドと同期して保存されます。一番の特徴は、デバイスが変わっても同じユーザーであればデータは同期できるという点です。例えば、スマホや Web サイト、タブレットなどといった1人のユーザーが触れる様々なデバイスで、データが同期されます。また、プッシュ同期を設定すると、アップデートが利用できることが他のデバイスにすぐに通知されます。

料金について

料金は従量課金制となっており、月間アクティブユーザー (MAU) のみに基づいて料金が加算されます。月毎に、サインアップ、サインイン、トークンの更新またはパスワードの変更など、そのユーザーに関わる ID 操作が発生した場合、そのユーザーは MAU としてカウントされます。後続のセッションに関して、またはその月に非アクティブなユーザーに関しては課金されません。ユーザープールからの認証情報で直接サインインするユーザーと、SAML フェデレーションを介してエンタープライズディレクトリからサインインするユーザーには、別々の料金が適用されます。標準認証で認証を行っているときには、無料利用枠が用意されています。高度なセキュリティを用いた認証でも5万ユーザーまでなら最低料金の0.05$で利用することができ、低コストで利用できます。

まとめ

Amazon cognitoを利用すればアプリケーションに低コストでユーザー認証機能を追加することができます。無料枠も用意されているので、興味がある方は試してみてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

前の記事

AWSのStorage gatewayとは?

次の記事

RDSについて