pre_token_generation_configについてメモ

pre_token_generation_configについて

  • AWS Cognitoのlambda_configのpre_token_generation_configはトークンが発行される直前に実行されるLambdaトリガーの詳細設定

  • このトリガーは例えばログイン・更新・トークンリフレッシュなどのタイミングでトークンのclaimを追加・削除・上書きできる。

具体的にできること.

  • カスタム属性をトークンに追加
  • ロールや権限情報を付与.
  • アプリごとに返すclaimを変える.
  • マルチテナントのテナントIDを追加.

pre_token_generation_config の構造の例

  • User PoolのJSONで見ると以下のような感じ.
"lambda_config": {
  "pre_token_generation_config": {
    "lambda_version": "V2_0",
    "pre_token_generation_lambda_arn": "arn:aws:lambda:ap-northeast-1:123456789012:function:preTokenGen"
  }
}

Lambdaに渡されるJSONの例

{
  "version": "2",
  "triggerSource": "TokenGeneration_Authentication",
  "request": {
    "userAttributes": {
      "sub": "uuid",
      "email": "user@example.com",
      "custom:role": "admin"
    },
    "groupConfiguration": {
      "groupsToOverride": [],
      "iamRolesToOverride": []
    }
  },
  "response": {
    "claimsOverrideDetails": {
      "claimsToAddOrOverride": {
        "role": "admin"
      }
    }
  }
}

pre_token_generation_configについてまとめ

  • 役割: トークン発行前にclaimを書き換える
  • 設定場所: User Pool→lambda_config.pre_token_generation_config
  • 主な用途: クレームの動的カスタマイズなど