翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Cognito は、ユーザーがサインインしようとするときにこのトリガーを呼び出し、準備アクションを実行するカスタム認証を作成できるようにします。たとえば、認証リクエストを拒否したり、外部システムへのセッションデータを記録したりできます。
注記
ユーザーが存在しない場合や、ユーザープールに既にセッションがある場合、この Lambda トリガーはアクティブになりません。ユーザープールアプリクライアントの PreventUserExistenceErrors
設定が ENABLED
になっている場合、Lambda トリガーはアクティブになります。
認証フローの概要

リクエストには、アプリケーションからユーザープールの InitiateAuth
および AdminInitiateAuth
API オペレーションに渡す ClientMetadata
値のクライアント検証データが含まれます。
詳細については、「認証セッションの例」を参照してください。
認証前の Lambda トリガーのパラメータ
Amazon Cognito がこの Lambda 関数に渡すリクエストは、以下のパラメータと Amazon Cognito がすべてのリクエストに追加する共通パラメータを組み合わせたものです。
{
"request": {
"userAttributes": {
"string": "string",
. . .
},
"validationData": {
"string": "string",
. . .
},
"userNotFound": boolean
},
"response": {}
}
認証前のリクエストパラメータ
- userAttributes
-
ユーザー属性を表す 1 つ以上の名前 - 値ペア。
- userNotFound
-
ユーザープールクライアントの
PreventUserExistenceErrors
をENABLED
に設定すると、Amazon Cognito はこのブール値を入力します。 - validationData
-
ユーザーのサインインリクエストに検証データを含む 1 つ以上のキーバリューペア。このデータを Lambda 関数に渡すには、InitiateAuth および AdminInitiateAuth API アクションで ClientMetadata パラメータを使用します。
認証前のレスポンスパラメータ
Amazon Cognito は、レスポンスに追加の戻り情報を期待していません。関数がエラーを返してサインイン試行を拒否したり、API オペレーションを使用してリソースをクエリしたり変更できます。
事前認証の例
このサンプル関数は、特定のアプリクライアントからユーザープールにサインインされるのを防ぎます。事前認証の Lambda 関数は、ユーザーが既存のセッションを持っている場合は呼び出されないため、この関数はブロックするアプリクライアント ID の新規セッションのみを防止します。
const handler = async (event) => {
if (
event.callerContext.clientId === "user-pool-app-client-id-to-be-blocked"
) {
throw new Error("Cannot authenticate users from this user pool app client");
}
return event;
};
export { handler };
Amazon Cognito は Lambda 関数にイベント情報を渡します。関数はレスポンスで、同じイベントオブジェクトを変更と共に Amazon Cognito に返します。Lambda コンソールで、Lambda トリガーに関連するデータを使用したテストイベントをセットアップできます。以下は、このコードサンプルのテストイベントです。
{ "callerContext": { "clientId": "
<user pool app client id to be blocked>
" }, "response": {} }