利用可能性はAuth0プランによって異なる
この機能が利用できるかどうかは、使用しているログイン実装とAuth0プラン(または契約)によります。詳細については、「価格設定」をお読みください。
アカウントをリンクする利点
- ユーザーが、IDプロバイダーごとに個別のプロファイルを作成せずに、任意のIDプロバイダーを使用してログインできること
- 登録ユーザーは、新しいソーシャルログインまたはパスワードレスログインを使用できるものの、既存のプロファイルは引き続き使用できること
- パスワードレスログインを使用して登録したユーザーが、より詳細なプロファイルを有するアカウントにリンクできるようになること
- アプリケーションが、様々な接続に保存されているユーザープロファイルデータを取得できるようになること
注意事項
アカウントリンクが安全でないと、悪意のあるアクターが正当なユーザーアカウントにアクセスできるようになってしまいます。以下の点を常に念頭に置いてください: 手動、自動アカウントリンクの両方について、テナントは、リンクが発生する前に両方のアカウントの認証を要求する必要があります。 また、すべての手動アカウントリンクで、ユーザーに資格情報の入力を求める必要があります。仕組み
アカウントをリンクするプロセスでは、2つの既存のユーザープロファイルが1つにマージされます。アカウントをリンクする場合は、プライマリアカウントとセカンダリアカウントを指定する必要があります。 次の例では、サンプルのプライマリアカウントとセカンダリアカウントに対して、リンクされたプロファイルがどのようになるかを説明しています。user_id
およびその他のすべてのメインプロファイルのプロパティは、引き続きプライマリIDのプロパティであることuser.identities
配列の最初のIDが、プライマリIDであること- これで、セカンダリアカウントがプライマリプロファイルの
user.identities
配列に埋め込まれること - セカンダリアカウントの属性は、配列内の対応するIDの
profileData
フィールド内に配置されること - プライマリアカウントの
user_metadata
とapp_metadata
は、変更されていないこと - セカンダリアカウントの
user_metadata
とapp_metadata
は、破棄されること - ユーザープロファイルと関連付けられたIDの自動マージは、行われないこと
- セカンダリアカウントは、ユーザーリストから削除されること
- プライマリアカウントを削除すると、セカンダリアカウントも削除されること
メタデータのマージ
メタデータは、アカウントのリンク中に自動でマージされません。マージする場合は、Manage API/users/patch_users_by_id
エンドポイントを使用して、手動で行う必要があります。
Auth0 Node.js SDK for APIv2も、ご利用いただけます。
詳細については、「Understand How Metadata Works in User Profiles(ユーザープロファイルでのメタデータの仕組みを理解する)」をお読みください。
シナリオ
アカウントリンクを実装するには、次の2つの方法があります:- ユーザー主導のアカウントリンク:ユーザーが、アプリの管理者画面を使用してアカウントをリンクできるようにします。
- 推奨されるアカウントリンク:同じメールアドレスを持つアカウントを特定し、アプリ内でユーザーにそれらをリンクするよう促します。