Cognito Attribute Mapping - knpy/yuka-app GitHub Wiki

Cognito ユーザーの属性マッピング設定

概要

Cognito ユーザープールでGoogle OAuthを使用する際の属性マッピングの設定方法について説明します。

前提条件

  • Cognito ユーザープールが作成済み
  • Google OAuth アイデンティティプロバイダーが設定済み

属性マッピングの設定手順

1. Cognito コンソールでの設定

  1. AWS Cognito コンソールにアクセス
  2. 対象のユーザープールを選択
  3. 「Sign-in experience」タブを選択
  4. 「Federated identity provider sign-in」セクションの「Google」を選択

2. 属性マッピングの設定

以下のようにGoogleの属性をCognito属性にマッピング:

Cognito属性 Google属性 説明
email email メールアドレス
name name フルネーム
given_name given_name 名前
family_name family_name
picture picture プロフィール画像URL

3. 必須属性の設定

  • email: 必須に設定
  • name: 推奨

4. 設定の確認

設定後、以下を確認:

  • 属性マッピングが正しく設定されているか
  • 必須属性が適切にマッピングされているか
  • テストユーザーでログインが正常に動作するか

トラブルシューティング

よくある問題

  1. 属性が取得できない

    • Googleのスコープ設定を確認
    • OAuth consentで適切な権限が付与されているか確認
  2. メールアドレスが重複する

    • 既存のユーザーとの重複確認
    • Alias設定の見直し

設定例(Terraform)

resource "aws_cognito_identity_provider" "google" {
  user_pool_id  = aws_cognito_user_pool.main.id
  provider_name = "Google"
  provider_type = "Google"

  provider_details = {
    client_id     = var.google_client_id
    client_secret = var.google_client_secret
    authorize_scopes = "openid email profile"
  }

  attribute_mapping = {
    email       = "email"
    name        = "name"
    given_name  = "given_name"
    family_name = "family_name"
    picture     = "picture"
    username    = "sub"
  }
}

参考資料

⚠️ **GitHub.com Fallback** ⚠️