Amazon Cognito(以下、Cognito)は、ユーザー認証機能を提供するサービスです。
「アマゾン コグニート」と読み、APIベースで実装されるモバイルやWebアプリ向けのユーザー認証で利用されています。また、サーバーレスで実装されており、最小限の開発コストで高セキュリティで多彩なユーザー管理が行えるサービスとなっています。
Cognitoのメリットや特徴
Cognitoのメリットや特徴について説明します。
サーバーレスな実装で、認証とユーザ管理ができる
AWS上に認証システムが構築されており、用意されているAPIを呼び出す形や、ALBと統合して実装を行います。そのため、最小限の開発コストで実装が可能です。
インフラ管理はAWSが行っているため、ユーザー自身による管理が不要で、利用ユーザーが増加してもスムーズに低コストで利用することができます。
また、AWSの他のサービスとも連携可能となっています。たとえば、Application Load Balancer(以下、ALB)と連携して、ユーザー認証をALBに任せることができます。また、AWS Lambdaと連携してサインインフローの変更なども可能です。
サードパーティとの連携が充実
複数の認証プロバイダーで認証することができるので、ユーザーに対して自分の好きな方法でアプリケーションにログインする手段を提供できます。サインインに利用できる外部IPプロバイダは次の通りです。
- Facebook
- Google
- Login with Amazon
- Sign In with Apple
- SAML(SP-Initiated限定)
- OpenID Connect(OIDC)
強力なセキュリティ機能がある
Cognitoは業界標準のセキュリティ技術を使用しているため、ユーザーアカウントの情報を安全に保つことができます。具体的には次のような機能を提供しています。
- 電話番号とEmailの検証
- 多要素認証(MFA)の利用
- SMSテキストメッセージ
- TOTPソフトウェアトークン
- クライアントデバイスの追跡
- アドバンスドセキュリティの機能
- 侵害された認証情報が使われていないかの確認
- アダプティブ認証(リスクに応じてMFAの利用を求めたり、ブロックしたりする)
Cognitoの料金体系
Cognitoの料金体系は完全従量課金となっており、最低利用料金などはありません。
従量課金は月間アクティブユーザー数(MAU)に応じて計算されます。利用料金のパターンは2種類あり、「ユーザープールからの認証情報またはFacebookなどのソーシャル ID プロバイダー」と「SAML または OIDC フェデレーション」を利用する場合で料金が異なります。
また、無料利用枠が設けられているので、枠を超過した場合のみ費用が発生します。
まとめ
Amazon Cognitoは、AWSが提供するモバイルやWebアプリ向けのユーザー認証サービスです。開発工数の減らし、多様な認証機能を追加することが可能です。
また、AWS全体について気になる方は「AWSとは?初心者の人にもわかりやすく解説」もご覧ください。