翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
認証前の Lambda トリガー
Amazon Cognito は、ユーザーがサインインしようとするときにこのトリガーを呼び出し、準備アクションを実行するカスタム認証を作成できるようにします。たとえば、認証リクエストを拒否したり、外部システムへのセッションデータを記録したりできます。
注記
ユーザーが存在しない場合や、ユーザープールに既にセッションがある場合、この Lambda トリガーはアクティブになりません。ユーザープールアプリクライアントの PreventUserExistenceErrors
設定が ENABLED
になっている場合、Lambda トリガーはアクティブになります。
認証フローの概要
リクエストには、アプリケーションがユーザープールInitiateAuth
とAdminInitiateAuth
APIオペレーションに渡すClientMetadata
値からのクライアント検証データが含まれます。
詳細については、「ユーザープール認証フロー」を参照してください。
認証前の Lambda トリガーのパラメータ
Amazon Cognito がこの Lambda 関数に渡すリクエストは、以下のパラメータと Amazon Cognito がすべてのリクエストに追加する共通パラメータを組み合わせたものです。
認証前のリクエストパラメータ
- userAttributes
-
ユーザー属性を表す 1 つ以上の名前 - 値ペア。
- userNotFound
-
ユーザープールクライアントの
PreventUserExistenceErrors
をENABLED
に設定すると、Amazon Cognito はこのブール値を入力します。 - validationData
-
ユーザーのサインインリクエストに検証データを含む 1 つ以上のキーバリューペア。このデータを Lambda 関数に渡すには、 InitiateAuth および AdminInitiateAuthAPIアクションで ClientMetadata パラメータを使用します。
認証前のレスポンスパラメータ
Amazon Cognito は、レスポンスに追加の戻り情報を期待していません。関数は、サインイン試行を拒否するエラーを返すか、 APIオペレーションを使用してリソースをクエリして変更することができます。
事前認証の例
このサンプル関数は、特定のアプリクライアントからユーザープールにサインインされるのを防ぎます。事前認証の Lambda 関数は、ユーザーが既存のセッションを持っている場合は呼び出されないため、この関数はブロックするアプリクライアント ID の新規セッションのみを防止します。
Amazon Cognito は Lambda 関数にイベント情報を渡します。関数はレスポンスで、同じイベントオブジェクトを変更と共に Amazon Cognito に返します。Lambda コンソールで、Lambda トリガーに関連するデータを使用したテストイベントをセットアップできます。以下は、このコードサンプルのテストイベントです。