Amazon Cognitoとは?ユーザー認証サービス

Amazon Cognito(以下、Cognito)は、ユーザー認証機能を提供するサービスです。

「アマゾン コグニート」と読み、APIベースで実装されるモバイルやWebアプリ向けのユーザー認証で利用されています。また、サーバーレスで実装されており、最小限の開発コストで高セキュリティで多彩なユーザー管理が行えるサービスとなっています。

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の料金体系は完全従量課金となっており、最低利用料金などはありません。

従量課金は月間アクティブユーザー数(MAU)に応じて計算されます。利用料金のパターンは2種類あり、「ユーザープールからの認証情報またはFacebookなどのソーシャル ID プロバイダー」と「SAML または OIDC フェデレーション」を利用する場合で料金が異なります。

また、無料利用枠が設けられているので、枠を超過した場合のみ費用が発生します。

Amazon Cognitoは、AWSが提供するモバイルやWebアプリ向けのユーザー認証サービスです。開発工数の減らし、多様な認証機能を追加することが可能です。

また、AWS全体について気になる方は「AWSとは?初心者の人にもわかりやすく解説」もご覧ください。