Connected Accounts を使用すると、1 つの Auth0 ユーザープロファイルに複数の外部アカウントをリンクできます。サポート対象の外部プロバイダーで Connected Accounts を有効にすると、ユーザーが正常にログインした後、そのプロバイダーのアカウントがユーザープロファイルに自動的に追加されます。詳しくは、Connected Accounts for Token Vault をご覧ください。
利用可否は Auth0 のプランによって異なります
この機能が利用可能かどうかは、ログインの実装方法と Auth0 のプランまたはカスタム契約の両方に左右されます。詳しくは、Pricing をご覧ください。
アカウントをリンクするメリット
- ユーザーは、アイデンティティプロバイダーごとに別々のプロファイルを作成しなくても、どのアイデンティティプロバイダーでもログインできます
- 登録済みユーザーは、新しいソーシャルログインまたはログインを使用しても、既存のプロファイルをそのまま利用できます
- パスワードレスログインで登録したユーザーは、より充実したプロファイルを持つアカウントにリンクできます
- アプリは、さまざまな接続に保存されているユーザープロファイルデータを取得できます
注意事項
安全でない方法でアカウントをリンクすると、悪意のある第三者が正規のユーザーアカウントにアクセスできる可能性があります。次の点に注意してください。 手動、自動のいずれのアカウントリンクでも、リンクを行う前に、テナントで両方のアカウントに対する認証を要求する必要があります。 さらに、すべての手動アカウントリンクでは、ユーザーに資格情報の入力を求める必要があります。仕組み
アカウントのリンク処理では、既存の2つのユーザープロファイルが1つに統合されます。アカウントをリンクするには、primary account と secondary account を指定する必要があります。 以下の例は、サンプルの primary account と secondary account をリンクしたときに、結果のリンク済みプロファイルがどのようになるかを示しています。 注意:user_idおよびその他すべての主要なプロファイルプロパティは、引き続きプライマリアイデンティティのものですuser.identities配列の最初の アイデンティティ はプライマリアイデンティティです- secondary account は、primary profile の
user.identities配列内に埋め込まれます - secondary account の属性は、配列内の対応する アイデンティティ の
profileDataフィールド内に配置されます - primary account の
user_metadataとapp_metadataは変更されません - secondary account の
user_metadataとapp_metadataは破棄されます - 関連する アイデンティティ を持つユーザープロファイルが自動的に統合されることはありません
- secondary account はユーザー一覧から削除されます
- primary account を削除すると、secondary account も削除されます
メタデータのマージ
アカウントリンク時に、メタデータが自動的にマージされることはありません。マージする場合は、Manage API の/users/patch_users_by_id エンドポイントを使用して、手動で行う必要があります。
Auth0 Node.js SDK for APIv2 も利用できます。
詳しくは、ユーザープロファイルにおけるメタデータの仕組み を参照してください。
シナリオ
アカウントリンクを実装する方法は、2 つあります。- ユーザー主導のアカウントリンク: アプリ内の管理画面から、ユーザー自身が自分のアカウントをリンクできるようにします。
- 提案型アカウントリンク: 同じメールアドレスを持つアカウントを特定し、アプリ内でそれらをリンクするようユーザーに促します。
ユーザー主導のアカウントリンク
通常、アカウントリンクは認証済みユーザーによって開始されます。アプリでは、ユーザーのプロファイルページに アカウントをリンクする ボタンを配置するなど、そのための UI を提供する必要があります。 Single Page Application でユーザー主導のアカウントリンクを実装する方法について詳しくは、クライアントサイドのアカウントリンク を参照してください。Regular Web Application でユーザー主導のアカウントリンクを実装する方法について詳しくは、サーバーサイドのアカウントリンク を参照してください。推奨されるアカウントリンク
同じメールアドレスを持つアカウントを見つけて、それらをリンクするようユーザーに促すことができます。たとえば、ユーザーがuser@gmail.com で Google アカウントを作成した後、同じメールアドレスに関連付けられた Facebook アカウントでログインすることがあります。
このような場合は、リンク先のアカウントで先に認証してもらったうえで、リンク可能なアカウントの一覧を表示し、ユーザーがそれらをリンクできるようにできます。
同じことを実現する方法として、Account Link 拡張機能 を使用することもできます。