Amazon Web Services ブログ

Amazon Cognito Your User Pools - 一般提供を開始

数か月前公開したブログ Amazon Cognito の新しい Your User Pools 機能についてご紹介しました。その時点では、ユーザーのモバイルアプリやウェブアプリでサインアップやサインインに同機能を使用することをご説明しました。完全マネージド型のユーザーディレクトリでは、ユーザー数億人の拡大を可能にしたり、各 AWS アカウントで複数のディレクトリを使用することができます。ユーザープールは数分で作成でき、新規ユーザーがお客様のアプリまたはサービスにサインアップする時に、どの属性 (アドレス、メール、性別、電話番号やカスタム属性など) に入力の必要があるか指定することができます。セキュリティの面では、お好みに合わせたパスワード強度を特定したり、Multi-Factor Authentication (MFA) の使用の強制やユーザーの電話番号またはメールアドレスでの確認を求めることができます。

一般提供を開始
Your User Pools のパブリックベータ版を開始したところ、数多くの素晴らしいフィードバックをいただきました。そして本日、Your User Pools の一般公開を開始した他、このリリースに伴い、いくつかの新機能も追加しました。

  • Device Remembering – Cognito は各ユーザーがどのデバイスからサインインしたか記憶することができます。
  • User Search – 属性に基づきユーザープールでユーザーを検索できます。
  • Customizable Email Addresses – ユーザープール内でユーザーのメールアドレスを管理できます。
  • Attribute Permissions – 各ユーザーの属性を細かく設定することができます。
  • Custom Authentication Flow – 新たな API や Lambda トリガーを使用してサインインフローをカスタマイズできます。
  • Admin Sign-in – バックエンドサーバーや Lambda 関数からユーザーをアプリにサインインさせることができます。
  • Global Sign-out – サインインしているすべてのデバイスやブラウザからユーザーがサインアウトできるようにします。
  • Custom Expiration Period – トークン更新に有効期間を設定できます。
  • API Gateway Integration – ユーザープールを使用して Amazon API Gateway リクエストを承認できます。
  • New Regions – 追加した AWS リージョンでも Cognito Your User Pools をご利用いただけます。

次に各新機能の詳細についてご説明します。

Device Remembering
Cognito で各ユーザーがサインインに使用したデバイス一連を記録できるようになりました。ユーザープールの作成者には、この操作のリクエストをユーザーに許可するオプションがあります。ユーザープールで MFA を有効にしている場合は、記録されたデバイスで MFA コード入力の必要を取り消すこともできます。これにより、認識されていないデバイスには MFA コードの入力を要求し、記録されたデバイスのログインプロセスを簡素化かつ合理化することが可能になりました。また、ユーザーのデバイスをリストにし、リモートからデバイスよりサインアウトできるようにします。ユーザープールの作成時に、この機能を有効にしたりカスタマイズすることができます。新しいユーザープールの作成時に同機能を有効にし、カスタマイズする方法については次をご覧ください。まず、[Always] または [User Opt-in] をクリックして同機能を有効にします。

次に、記憶したデバイスで MFA を非表示にするか決定します。

AWS Mobile SDK for iOS、Android、JavaScript には、デバイスを記憶するためにアプリから呼び出すことができる新な方法が備わっています。

User Search
Your User Pool の作成者は、次のような属性に基づきユーザーを検索することができます。 username, given_name, family_name, name, preferred_user_name, email, phone_number, status または user_status.

完全一致またはプレフィックス一致を行うには AWS Management Console ListUsers API 関数または list-users コマンドラインツールを使用します。コンソールで検索する場合

Customizable Email Addresses
ユーザーとのコミュニケーションに使用するメールアドレスの差出人や返信先を特定することができます。新しいプールの作成時にアドレスを特定する場合

使用前に Amazon Simple Email Service (SES) で差出人のアドレスを確認する必要があります (詳しくは Verifying Email Addresses in Amazon SES をご覧ください)。

Attribute Permissions
各ユーザー属性で、アプリごとの読み取りや書き込み権限を設定することができます。これにより、どのアプリケーションがユーザー用に保管されているどの属性を閲覧したり変更できるか管理することが可能になります。例えばユーザーが潜在顧客であるか否かを示すように属性をカスタマイズすることができます。アプリがこの属性を見ることはできますが、直接変更することはできません。代わりに管理ツールまたはバックグラウンドプロセスを使用して属性を更新してください。Console、API、CLI でユーザー属性の権限を設定することができます。

Custom Authentication Flow
次の新しい API 関数をご利用いただけます (InitiateAuthRespondToAuthChallenge)。その他にも、3 つの新たな Lambda トリガーを使用して独自のサインインフローや既存のプロセスをカスタマイズすることができます。例えば経験レベルが異なるユーザー、ロケーション別、セキュリティ条件別などを対象に、ユーザーフローをカスタマイズすることができます。必要に応じて特定のユーザーまたはユーザー全員に CAPTCHA の使用を要求することもできます。Lambda トリガーの種類

Define Auth Challenge – カスタム認証フローの開始を呼び出します。Create Auth Challenge – カスタム認証チャレンジが規定された場合に呼び出されます。Verify Auth Challenge Response – カスタム認証チャレンジの有効性を確認する場合に呼び出されます。次のように Console からトリガーを設定することができます。

Global Sign-out
ログイン済みのデバイスすべてからサインアウトするオプションをユーザーに提供できるようになりました。有効、期限切れではなく、呼び出されていないアクセストークンを使用して [GlobalSignOut] 関数を呼び出すことができます。開発者は Pool ID と username を使用して [AdminUserGlobalSignOut] 関数を呼び出し、どのユーザーもリモートからサインアウトさせることができます。

Custom Expiration Period
Cognito サインインは、「更新」トークンを使用してアプリケーションを開くたびにサインインする必要を省きます。デフォルトでトークンは 30 日が経過すると無効になります。セキュリティと利便性のバランスをほどよく維持するため、各ユーザープールが生成する更新トークンの有効期間をカスタマイズ設定できるようになりました。

API Gateway Integration
API リクエストを認証するため、Cognito ユーザープールが Amazon API Gateway と密接に連携して対処できるようになりました。ID トークンを受け入れるように API Gateway を設定し、ユーザープールにおけるユーザー状況を認証できます。その場合は、まずユーザープールを参考にしてアイデンティティトークンを含むリクエストヘッダーをを選び、Cognito User Pool Authorizer を作成します。

希望する方法にアクセスし新しい認証を選択します。

New Regions
今回のリリースに伴い、US West (Oregon) リージョンでも Cognito をご利用いただけるようになりました。すでにご利用可能な US East (Northern Virginia) リージョンの他に Europe (Ireland)、US West (Oregon)、 Asia Pacific (Tokyo) リージョンでも Your User Pools をお使いいただけます。

今すぐ利用可能
今すぐ新機能をご利用いただけます。詳細は Getting Started with Your User Pools in Amazon Cognito をご覧ください。

Jeff