メインコンテンツまでスキップ

ユーザープロファイルの収集

Cloud availabilityOSS availability

ユーザーサインインに必要な認証 (Authentication) 識別子や認証情報に加えて、アプリケーションでパーソナライズされた製品体験を提供するために、Logto に保存された追加のユーザープロファイル情報を収集し、JWT クレームや API を通じて簡単に取得できるようにすることができます。ユーザーデータは以下の方法で収集できます:

  • 新規ユーザー登録時ユーザープロファイルの収集 機能を利用して、サインアップ時に追加のユーザープロファイル情報を収集する「あなたについて教えてください」ステップを簡単に追加できます。新規ユーザーは、登録が完了する前にすべての必須項目を入力する必要があります。本ドキュメントではこの方法に焦点を当てています。

  • ユーザー登録後Account API を利用して、オンボーディングフローやアカウントセンター、または製品利用中にセルフサービスでユーザープロファイル情報を更新できる体験を実装できます。

主なメリット

ユーザープロファイルの収集 機能により、エンドユーザーの登録体験中に追加のユーザー情報を収集できます。登録フローが長くなりユーザーのコンバージョン率に影響しないよう、製品に必要な最小限の情報のみを収集することを推奨します。

この機能でできること:

  • 包括的なユーザーデータの取得ユーザーデータ をビジネスやコンプライアンス目的で収集できます。 OIDC 標準ユーザープロパティカスタムデータ も含みます。

  • 柔軟なフィールドカスタマイズ: テキスト、数値、日付、チェックボックス、ドロップダウン(セレクト)、URL、正規表現バリデーションなど、さまざまな フィールドタイプ から選択でき、要件に合わせて設定できます。

  • 最適化されたユーザー体験: ラベル、説明、プレースホルダー、バリデーションルールで表示をカスタマイズ可能。ビジネス要件に応じて必須/任意フィールドを設定できます。

  • 組み込みフィールド設定: よく使われるユーザープロパティ用の基本データフィールドをプラグアンドプレイで利用可能。複合フィールド(住所、氏名)を使えば、構造化データを効率的に一度に収集できます。

クイックスタート

  1. Logto コンソール > サインイン体験 > ユーザープロファイルの収集

    にアクセスします。
  2. 「プロフィールフィールドを追加」をクリックし、 組み込みフィールド を選択するか、 カスタムデータ(英数字キー)を定義して作成します。
  3. フィールド詳細を開き、フィールドタイプ、ラベル、説明、必須フラグ、タイプ固有の設定(長さ、範囲、フォーマット、選択肢など)を設定し、「変更を保存」をクリックします。
  4. サインイン体験 > ユーザープロファイルの収集画面に戻り、ドラッグ&ドロップでフィールドの順序を変更できます。変更は自動的に適用されます。
  5. Logto ライブプレビュー やテストアプリでユーザー体験をテストしましょう。 識別子(メール/電話番号/ユーザー名)ソーシャルサインインエンタープライズシングルサインオン (SSO) いずれの方法で新規アカウントを作成しても、登録時に「あなたについて教えてください」ページが表示されます。
サインアップ時のユーザープロファイル収集

ユーザーデータの種類

ユーザーデータは各 ユーザープロファイル で確認できます。すべてのユーザーデータカテゴリの概要は ユーザーデータ構造 ドキュメントを参照してください。ユーザープロファイルの収集機能では、登録時に基本ユーザーデータとカスタムユーザーデータの両方を収集できます。

基本ユーザーデータフィールド

Logto が提供する基本ユーザーデータフィールドは user または user.profile プロパティに直接保存されます。これらのフィールドはデフォルト設定値と i18n 翻訳が用意されており、作成後すぐに利用できます。要件に応じてフィールドタイプやパラメータをカスタマイズすることも可能です。

フィールド名ユーザーデータキー説明
Nameuser.nameすべての名前要素を含む表示用のフルネーム(例:「Jane Doe」)。
Fullnameuser.profile.givenName
user.profile.middleName
user.profile.familyName
ユーザーの正式な氏名。設定に応じて familyName, givenName, middleName を柔軟に組み合わせます。
Nicknameuser.profile.nickname法的な名前とは異なる、カジュアルまたは親しい間柄で使う名前。
Birthdateuser.profile.birthdate指定フォーマットでの生年月日(例:「MM-dd-yyyy」)。
Genderuser.profile.genderユーザーが自己申告する性別(例:「女性」「男性」「回答しない」など)。
Profileuser.profile.profileユーザーの人間が読めるプロフィールページの URL(例:SNS プロフィール)。
Websiteuser.profile.websiteユーザーの個人ウェブサイトやブログの URL。
Addressuser.profile.address.formatted
user.profile.address.streetAddress
user.profile.address.region
user.profile.address.zoneinfo
user.profile.address.postalCode
user.profile.address.country
ユーザーの住所(例:「123 Main St, Anytown, USA 12345」)。 address.formatted の単一行または、構成要素(通り、都市、州、郵便番号、国)を個別に設定可能。

カスタムユーザーデータフィールド

カスタムユーザーデータフィールドは、基本フィールドでカバーされない追加情報(例:好み、興味、会社規模、その他ビジネス固有属性など)を収集するためのユーザー定義フィールドです。

カスタムフィールド作成時は、ユーザーデータキーに英数字のみを使用してください(例: customData.companySize)。その後、 フィールドタイプ を設定し、追加プロパティをカスタマイズできます。

ユーザー作成後にカスタムユーザーデータを取得・更新する方法については ユーザーデータ構造 を参照してください。

フィールドタイプ

フィールドはシンプルさで大別できます:

  • プリミティブ型:テキスト、数値、日付、チェックボックス(ブール値)、ドロップダウン(単一選択)、URL、正規表現。
  • 複合型:氏名、住所。

共通プロパティ

プロパティ対象備考
ラベルすべてユーザーに表示される名称。値が入力済みまたはフォーカス時は上部に浮かびます。必須項目です。
プレースホルダーチェックボックス以外ラベルが浮いているときに表示されるヒント(例文や書式ガイド)。
説明チェックボックス以外フィールド下部に表示される補足説明や長めの指示文。
必須チェックボックス以外有効時は未入力で送信不可。無効時はラベルに「(任意)」タグが付きます。

タイプ固有の設定

タイプ設定可能項目備考
テキスト最小/最大長さ入力テキストの最小・最大長さを制限します。
数値最小/最大値入力値の数値範囲を制限します。
日付日付フォーマット(プリセット/カスタム)プリセット(MM/dd/yyyy, dd/MM/yyyy, yyyy-MM-dd)から選択。プレースホルダー変更でデフォルト動作を上書き。完全カスタマイズは date-fns パターン対応。
チェックボックスデフォルト値チェック済み(True)/未チェック(False)。
ドロップダウン(セレクト)選択肢リスト(1つ以上)1行ごとに 値:ラベル 形式。ラベル省略時は値が表示されます。
URLN/AN/A
正規表現正規表現パターンバリデーションパターン(先頭/末尾スラッシュ不要)。例:SSN 用 ^\d3-\d2-\d4$
住所構成要素単一行または複数行。サブ要素:通り、都市、州、郵便番号、国。
氏名構成要素サブ要素:名、ミドルネーム、姓。

バリデーション

バリデーションは登録の最終ステップでユーザー送信時に実行されます。以下のチェックが適用されます:

  • 必須項目の入力(チェックボックス以外)。
  • 長さの制限(テキスト)。
  • 数値範囲(数値)。
  • パターン一致(正規表現、日付フォーマット、URL、選択肢)。
  • URL 構造(基本的な構文チェック、到達性は未検証)。

また、複合フィールド( addressfullname )のサブ要素にも同様のバリデーションが適用されます。

ローカライズ

Logto は firstNamelastNamegenderbirthdate などの基本ユーザーデータフィールドに対してシステムレベルの翻訳を提供しています。これらのフィールドのラベルは Logto コンソールで設定可能です。 独自の翻訳を提供したい場合は Logto > サインイン体験 > コンテンツ で上書きできます。

カスタムフィールドは、指定したラベル・プレースホルダー・説明文のみが表示されます。カスタムフィールドのローカライズには 独自 UI の持ち込み を利用するか、 お問い合わせ でフィードバックをお寄せください。

Management API (主要エンドポイント)

メソッドエンドポイント目的
GET/api/custom-profile-fieldsすべてのフィールド一覧を取得。
GET/api/custom-profile-fields/:name名前で単一フィールド定義を取得。
POST/api/custom-profile-fieldsフィールドを作成。
POST/api/custom-profile-fields/batch一括作成(1リクエスト最大20件)。
PUT/api/custom-profile-fields/:name名前と全データセットでフィールドを更新。
DELETE/api/custom-profile-fields/:nameフィールドを削除。
POST/api/custom-profile-fields/properties/sie-orderサインイン体験でのフィールド順序を更新。

ベストプラクティス

  • サインアップ時は必要最小限のデータのみ収集し、任意情報は後からプロフィール完成時に取得しましょう。
  • 構造化データ(住所、氏名)は複合フィールドを使い、整合性とローカライズ性を高めましょう。
  • 書式依存フィールド(正規表現、日付、数値範囲)には明確な例やプレースホルダーを用意しましょう。

よくある質問

プロフィールフィールドは既存ユーザーデータも収集しますか?

いいえ、新規ユーザー登録の最終ステップでのみ情報を収集します。

フィールドを削除した場合、ユーザーデータも削除されますか?

いいえ、既存のユーザーデータは削除されません。エンドユーザー体験のサインアップフォームからフィールドが削除されるだけです。

国名を通常のテキストフィールドではなく、選択肢リストで収集できますか?

はい、「国」コンポーネントを標準化された選択肢付きの「ドロップダウン(単一選択)」フィールドに切り替えられます。