認証後の Lambda トリガー - Amazon Cognito

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

認証後の Lambda トリガー

認証後トリガーは、ユーザーの認証フローを変更しません。Amazon Cognito は、認証が完了し、ユーザーがトークンを受け取った後にこの Lambda を呼び出します。次のサインインに反映されるログ記録やユーザープロファイルの調整など、認証イベントのカスタム後処理を追加する場合は、認証後トリガーを追加します。

認証フローの概要

認証後の Lambda トリガー - クライアントフロー

詳細については、「ユーザープール認証フロー」を参照してください。

認証後の Lambda トリガーのパラメータ

Amazon Cognito がこの Lambda 関数に渡すリクエストは、以下のパラメータと Amazon Cognito がすべてのリクエストに追加する共通パラメータを組み合わせたものです。

JSON
{ "request": { "userAttributes": { "string": "string", . . . }, "newDeviceUsed": boolean, "clientMetadata": { "string": "string", . . . } }, "response": {} }

認証後のリクエストパラメータ

newDeviceUsed

このフラグは、ユーザーが新しいデバイスにサインインしているかどうかを示します。Amazon Cognito は、ユーザープールの記憶済みデバイス値が Always または User Opt-In である場合にのみ、このフラグを設定します。

userAttributes

ユーザー属性を表す 1 つ以上の名前 - 値ペア。

clientMetadata

認証後のトリガーに指定する Lambda 関数へのカスタム入力として提供できる 1 つ、または複数のキー/値ペア。このデータを Lambda 関数に渡すには、 AdminRespondToAuthChallenge および RespondToAuthChallengeAPIアクションで ClientMetadataパラメータを使用できます。Amazon Cognito には、 の ClientMetadata パラメータからのデータAdminInitiateAuthや、事後認証関数に渡されるリクエストのInitiateAuthAPIオペレーションは含まれません。

認証後のレスポンスパラメータ

Amazon Cognito は、レスポンスに追加の返品情報を期待しません。関数は、 APIオペレーションを使用してリソースをクエリおよび変更したり、イベントメタデータを外部システムに記録したりできます。

認証チュートリアル

Amazon Cognito がユーザーにサインインした直後、認証後の Lambda 関数をアクティブ化します。 JavaScript、Android、および iOS のサインインチュートリアルを参照してください。

プラットフォーム チュートリアル
JavaScript ID SDK でユーザーをサインインする JavaScript
Android Identity SDK Android でのユーザーのサインイン
iOS Identity SDK iOS でのユーザーのサインイン

認証後の例

この認証後のサンプル Lambda 関数は、正常にサインインされたデータを CloudWatch Logs に送信します。

Node.js
const handler = async (event) => { // Send post authentication data to Amazon CloudWatch logs console.log("Authentication successful"); console.log("Trigger function =", event.triggerSource); console.log("User pool = ", event.userPoolId); console.log("App client ID = ", event.callerContext.clientId); console.log("User ID = ", event.userName); return event; }; export { handler };
Python
import os def lambda_handler(event, context): # Send post authentication data to Cloudwatch logs print ("Authentication successful") print ("Trigger function =", event['triggerSource']) print ("User pool = ", event['userPoolId']) print ("App client ID = ", event['callerContext']['clientId']) print ("User ID = ", event['userName']) # Return to Amazon Cognito return event

Amazon Cognito は Lambda 関数にイベント情報を渡します。関数はレスポンスで、同じイベントオブジェクトを変更と共に Amazon Cognito に返します。Lambda コンソールで、Lambda トリガーに関連するデータを使用したテストイベントをセットアップできます。以下は、このコードサンプルのテストイベントです。

JSON
{ "triggerSource": "testTrigger", "userPoolId": "testPool", "userName": "testName", "callerContext": { "clientId": "12345" }, "response": {} }