AWSにおける認証サービスのAWS SSOとCognitoを解説

AWSには認証機能を提供するサービスが数多くあります。代表的なサービスは、IAMやAWS SSO、Amazon Cognitoなどです。

AWSにおける認証サービスのAWS SSOとCognitoを解説

この記事では、その中でもAWS SSOとAmazon Cognitoについて、サービス内容や特徴、ユースケースなどを解説します。

この記事を読むと、AWS SSOとAmazon Cognitoの概要を理解できるようになります。

認証機能のサービス導入を検討されている方は、ぜひ最後までお読みください。

AWS SSO(Single-Sign-On)とは

AWS SSOを理解するために、まずはSSOそのものについて触れます。

その後にAWS SSOの概要を解説します。

SSO(Single-Sign-On)とは

まずSSO(Single Sign-On)とは、1つのIDとパスワードで認証を行うと、その後は複数のアプリケーションやWebサイトにログインできるようにする認証機能のことです。

各種システムでそれぞれIDとパスワードを作成して運用することは、システムの数が多くなるほど覚えておくことやメモなど管理が煩雑になります。

SSOを利用することで、ユーザーは1セットのIDとパスワードで認証を行えるようになります。ユーザーのアカウント管理の負担軽減や、セキュリティ性の向上も見込めるのがSSOのメリットです。

AWS SSO(Single-Sign-On)とは
AWS SSO(Single-Sign-On)とは

AWS SSOについて

AWS SSOは、1つのアカウントで複数のAWSアカウントにログインできる機能です。

AWSアカウントは、開発環境と本番環境では異なるアカウントを使うことが推奨されています。またプロジェクトの数が多くなると、その分必要なAWSアカウントも増えていくので、アカウント管理の負担が大きくなることは珍しくありません。実際に開発者やアプリ運営者が複数のAWSアカウントを保持、管理しているケースは多いです。

AWS SSOを利用すると、連携するAWSアカウントにログインできるようになり、生産性が向上します。またAWS CloudTrailに操作記録が残るなどセキュリティ改善も見込まれます。

AWS SSOを利用する際は、前提としてAWS Organizationsというマルチアカウント管理機能を有効にしておく必要があります。

AWS SSOのユースケース

AWS SSOのユースケースを3つ解説します。

  1. ADアカウントでクラウドアプリケーションを利用する
  2. AWS Organizationのポータルサイトとして利用する
  3. 特定のページのアクセスフィルタとして利用する

順番に解説します。

AWS SSOを使うと、Microsoft Active Directory(AD)アカウントを使ってAWSにログインすることができるようになります。このように各種クラウドアプリケーションをポータル画面で一括管理が可能です。

AWS Organizationのポータルサイトとして利用する

AWS SSOには、クラウドアプリケーション以外にもAWSアカウントを配置することが可能です。そのため、AWS Organizationsに参加している各アカウントへログインするためのポータルサイトとして利用できます。

特定のページのアクセスフィルタとして利用する

AWS SSOは、サービスのアクセスを制限するフィルタとしての役割をもたせることができます。例えば、担当者専用ページを作り、その担当者のみがアクセスできるという仕組みが実現可能です。

Amazon Cognitoとは

ここからAmazon Cognito(コグニート)の解説に移ります。Amazon Cognitoは、Webアプリおよびモバイルアプリにおける認証、承認、およびユーザー管理機能を提供するサービスです。

ユーザー名とパスワードを使用して直接サインインする方法はもちろん、以下のアカウントを使ってサインインすることもできます。

  • Facebookアカウント
  • Amazonアカウント
  • Googleアカウント
  • Apple ID

具体的な内容は、このあとで詳しく解説していきます。

Amazon CognitoのユーザープールとIDプールとは

Amazon Cognitoを利用する上で、次の2点を理解しておく必要があります。

  1. ユーザープール
  2. IDプール

それぞれ解説していきます。

ユーザープールとは

ユーザープールは、アプリユーザーのサインアップとサインイン(認証)を提供するユーザーディレクトリです。Amazon Cognitoのユーザープールを利用すると、簡単にユーザー登録やログインといった認証機能をアプリに導入することができます。先ほども紹介したように、Facebook、Google、Appleなどの外部のIDプロバイダーと連携したログインの導入が可能です。

IDプール(アイデンティティープール)とは

IDプールは、AWSの他のサービスに対するアクセスをユーザーに許可(認可)できる機能です。IDプールを利用すると、ユーザーは一時的な AWS 認証情報を取得して、他のAWS サービスにアクセスできます。Facebook、Google、Appleなどの外部のIDプロバイダーのアカウントを利用してAWSへのアクセス権限を払い出すことができるようになります。

Cognitoの特徴

Amazon Cognitoの特徴を3つ紹介します。

  • 簡単にユーザー認証機能が導入できる
  • デバイス間同期が簡単に導入できる
  • 無料利用枠が提供されている

順番に解説します。

簡単にユーザー認証機能が導入できる

Amazon Cognito を使用すると、アプリのユーザー認証機能(サインアップやサインイン機能)を追加しアクセスの管理ができます。Amazon Cognito は、数百万人のユーザーに拡張できるアイデンティティストアを提供し、ソーシャルおよびエンタープライズ ID フェデレーションをサポートし、コンシューマーとビジネスを保護するための高度なセキュリティ機能を提供します。オープンアイデンティティ標準に基づいて構築された Amazon Cognito は、さまざまなコンプライアンス規制をサポートし、フロントエンドおよびバックエンドの開発リソースと統合します。

フルマネージドで高パフォーマンス、信頼性の高い ID ストアを使用して、数百万人のユーザーに拡張できます。

Amazon Cognitoでは、アプリのユーザーIDを作成し、外部IDプロバイダーで認証・認可ができます。また認証されていないIDもサポートしており、ユーザーはログインしなくてもアプリを使えるようにもできます。その場合、あとからいずれかの外部IDプロバイダーでプロフィールを作成し、ユーザーのプロフィールデータをシームレスに転送することも可能です。

Amazon Cognitoを使用すれば、あらゆる種類のユーザーデータをキーと値のペアに保存できます。例えばアプリの設定やゲーム内のステータスなど、アプリに関わる全般的なデータが保存可能です。

デバイス間同期が簡単に導入できる

Amazon Cognitoを利用すると、ユーザーIDとデータの同期サービスで、アプリ用のユーザーデータを複数のデバイス間で、簡単に管理できるようになります。

ユーザーは複数のデバイスを持っている可能性があることを想定する必要があります。例えば通勤中はスマホやタブレットPC、デスクではノートPCを使う場合が多いです。

Amazon Cognitoを利用したユーザー認証機能では、ユーザーの登録情報がAWSクラウド上に保管され、デバイス間で同期することが可能になります。異なるデバイス間で同じアプリのデータを同期できると、ユーザーの満足度は格段に上がります。

しかし、このようなデータを同期させるバックエンド機能を自社で構築するのは、非常に大変です。Amazon Cognitoを利用すると、同期機能を自社でバックエンド開発を行わず、アプリの本質的な部分の開発に専念することができます。

無料利用枠が提供されている

ユーザープールは無料利用枠が提供されています。1ヶ月あたり5万回の同期が、最初の12ヶ月間は無料で利用可能です。またIDプールは無料で利用することができます。

ユーザープールの認証情報、またはソーシャルIdPで直接サインインするユーザーの場合、東京リージョンでの利用料金は以下のようになっています。

引用:Amazon Cognito 料金

料金範囲(MAU:Monthly Active Users)1MAUあたりの料金(USD)
〜 50,000無料
50,001 〜 100,0000.0055USD
100,0001 〜 1,000,0000.0046USD
1,000,001 〜 10,000,0000.00325USD
10,000,001 〜0.0025USD

まとめ

今回は、AWSの認証機能を提供する主要なサービスとしてAWS SSOとAmazon Cognitoを紹介しました。

AWS SSOは、連携する複数のAWSアカウントにログインできる機能です。複数のAWSアカウントを管理して業務にあたるケースは珍しくなく、アカウント数が増えると管理の負担やセキュリティに不安が出てきます。AWS SSOを利用すると、このようなAWSアカウント管理やセキュリティの向上に貢献できるでしょう。

Amazon Cogtnitoは、アプリケーションに必要な認証・認可機能、ユーザー管理を導入できるサービスです。アプリにおけるユーザーデータのデバイス間での同期や、外部のIDプロバイダーでのユーザー認証が実現できます。どちらもユーザーの満足度を高める上で非常に重要な機能と言えます。

アプリのユーザー認証機能の導入を検討されている方は、ぜひ今回紹介した内容を参考にしてみてください。

ONETECHベトナムオフショア開発AWS構築と運用に力を入れています。

株式会社one technology japan
株式会社One Technology Japan | ベトナムオフショア開発 | 信頼第一のONETECH

今回のような認証機能はWEBシステムでは必須です。AWSのさまざまなマイクロサービスの組み合わせより、安全で伸縮自在な設計を提案することも可能です。

以下でAWSのマイクロサービスを利用した実績の一例を紹介します。WEBシステム開発やAWS構築でお困りのことがあればお気軽にご相談ください。

Webシステム開発
AWSサーバレスでオンライン教育ライブ動画配信中のチャットシステム開発
AWSサーバレスでオンライン教育ライブ配信中にリアルタイムチャットができるシステムを開発しました。配信中に視聴者は主催者へ質問などをリアルタイムで交換できます。アーキテクチャはAWSサーバレス構成でLambdaやApp Syncなどで構築しました。
Webシステム開発
音楽系アーティスト共同プロジェクトのコーポレイトサイト構築
音楽系アーティストの共同プロジェクトでのコーポレイトサイトを開発しました。 開発後のシステムの保守も担当しました。 性能要件をヒアリングして設計フェーズからお手伝いしました。 AWSとLaravel (PHP)でサイト構築
Webシステム開発
医療業界のマニュアル管理システムをさくらクラウドからAWSクラウドへ移行
さくらクラウドでのシステム対応できるエンジニアを確保できないため、AWSクラウドへマイグレーションします。

LP作成WEBシステム改修。セキュリティ対策実装

先日対応したLPを生成できるWebアプリケーションを追加対応としてセキュリティを実装しました。 セキュリティシートを元にセキュリティ診断を行い、対応が不足している箇所を実装提案を行いシステムのセキュリティを強化しました。

無料相談・お問い合わせ
ご相談やお見積もりは全て 無料 で対応いたします。

    「個人情報保護方針」をお読みいただき同意いただける場合は「送信」ボタンを押して下さい。
    入力していただいたメールアドレス宛に自動返信メールを送信していますので、お手数ですがそちらをご確認ください。
    無料相談・お問い合わせ
    ご相談やお見積もりは全て 無料 で対応いたします。

      「個人情報保護方針」をお読みいただき同意いただける場合は「送信」ボタンを押して下さい。
      入力していただいたメールアドレス宛に自動返信メールを送信していますので、お手数ですがそちらをご確認ください。
      無料相談
      お問い合わせ