> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-chore-teams-api-autoupdate.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Account Link拡張機能

> メールアドレスが同じ2つのアカウントを持つユーザーにアカウントをリンクさせることを促すAccount Link拡張機能について説明します。

Account Link拡張機能は、誤って2つめのアカウントを作成した可能性のあるユーザーに対して、最初のログイン時に新しいアカウントと古いアカウントをリンクするよう促す画面を表示します。ユーザーは、2つのアカウントをリンクすることも、2つ目のアカウント作成が意図したものであれば別々にしておくことも、選べます。

## 拡張機能の仕組み

この拡張機能は、認証時に認証したユーザーのメールアドレスが、別のIDプロバイダーにアタッチされている既存のユーザーアカウントのメールアドレスと一致する場合に、トリガーされます。

たとえば、ユーザーが`john@acme.com`というメールアドレスを使用してFacebookアカウントでログインした後に、同じメールアドレスを使用してGoogleで認証した場合、以下のようなページが表示されます。

<Frame>
  <img src="https://mintcdn.com/docs-dev-chore-teams-api-autoupdate/lrjyIjbtxfFicig0/docs/images/ja-jp/cdy7uua7fh8z/5K3KBOkhyP1SbAVaYg1yxD/618568208eca3cd15000d716ae9a1e00/account-linking-extension.png?fit=max&auto=format&n=lrjyIjbtxfFicig0&q=85&s=f51e45b46f6900d01a26b56beaf2e1ca" alt="Dashboard - Extensions - Account Link - Extension Example" width="1502" height="1021" data-path="docs/images/ja-jp/cdy7uua7fh8z/5K3KBOkhyP1SbAVaYg1yxD/618568208eca3cd15000d716ae9a1e00/account-linking-extension.png" />
</Frame>

この拡張機能は、たとえ検証済みのメールアドレスであっても、同じメールを持つユーザーを自動的にリンクすることはありません。検証済みのメールだけでは、そのユーザーが現在も両方のアカウントで認証できることを証明するには不十分だからです。

ユーザーが **［Continue（続行）］** を選択すると、認証のためにFacebookにリダイレクトされます。ユーザーがすでにログインしている場合は、Facebookがユーザーをアプリケーションにリダイレクトで戻し、ユーザーは自動的にリンクされます。ログインしていない場合は、Facebookの資格情報を使って認証するよう求める画面が表示されます。FacebookがユーザーをAuth0にリダイレクトで戻した後に、FacebookアカウントがGoogleアカウントとリンクされます。このプロセスにより、ユーザーが両方のアカウントで認証用の資格情報を持っていることが保証され、アカウントを安全かつ正しくリンクできます。

### 制限事項

この拡張機能はパスワードレス接続、デバイス認可を使用して開始されるフロー、および<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-1" href="/docs/ja-jp/glossary?term=security-assertion-markup-language" tip="Security Assertion Markup Language（SAML）: パスワードなしに二者間で認証情報を交換できる標準化プロトコル。" cta="用語集の表示">SAML</Tooltip>とWS-federationのプロトコルはサポートしていません。Account Link拡張機能がサポートしていない接続については、「[アカウントリンク：サーバー側実装](/docs/ja-jp/manage-users/user-accounts/user-account-linking/suggested-account-linking-server-side-implementation)」および「[ユーザーが開始するアカウントリンク：クライアント側実装](/docs/ja-jp/manage-users/user-accounts/user-account-linking/user-initiated-account-linking-client-side-implementation)」の代替オプションを参照してください。

## 拡張機能をインストールして構成する

[［Auth0 Dashboard］>［Extensions（拡張機能）］](https://manage.auth0.com/#/extensions)に移動し、 **［Auth0 Account Link］** を選択します。 **［Install Extension（拡張機能のインストール）］** 画面が開きます。

拡張機能によって、内部で使用するための「`auth0-account-link`」という名前の新規アプリケーションと、既存のアカウントとメールアドレスが一致する新しいアカウントでログインした場合にユーザーをこの拡張機能にリダイレクトする新規ルールが作成されます。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Account Link拡張機能に関連付けられているアプリケーションクライアントシークレットをローテーションする場合は、まず拡張機能をアンインストールし、再インストールしてから、新しいアプリケーションシークレットを使って再構成する必要があります。
</Callout>

テストするには、[こちらのプロジェクト](https://github.com/auth0-samples/auth0-link-accounts-sample.git)を使用してサンプルのReactシングルページアプリケーションを作成します。

`auth_config.json`ファイルをテキストエディターで開き、詳細を入力してドメインと`client_id`を更新します。

［Allowed Callback URL（許可されているコールバックURL）］、［Allowed Logout URLs（許可されているログアウトURL）］、［Allowed Web Origins（許可されているWebオリジン）］に`http://localhost:3000`を追加します。

`http://localhost:3000`にログインして、接続を選択します。すでに別の種類の接続で検証済みユーザーと関連付けられているメールアドレスを入力します。

アカウントをリンクさせるには、 **［Continue（続行）］** を選択します。

ログインしたら、<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-jp/glossary?term=auth0-dashboard" tip="Auth0 Dashboard: サービスを構成するためのAuth0の主製品。" cta="用語集の表示">Auth0 Dashboard</Tooltip>でユーザーの詳細を確認してください。ユーザーアカウントがリンクされているのが分かります。

## 拡張機能をセットアップする

### アプリケーション名を変更する

拡張機能に使用するデフォルトのアプリケーション名は、ユーザーがプライマリアカウントで認証するときに **ログインページ** に表示されるため、たとえば「`Account Linking`」など、顧客にわかりやすくて読み取りやすい名前に変更することをお勧めします

### ログインページを更新する

Auth0のユニバーサルログインを使用すると、デフォルトでは、通常期待される通り、ユーザーはログインとサインアップの両方を行うことができます。しかし、アカウントリンク機能によって新しいアカウントとリンクするためにプライマリアカウントの認証が求められる場合、同時にサインアップオプションが提示されるとユーザーの混乱を招きます。

ユニバーサルログインでの対処方法について詳しくは、「[Auth0ユニバーサルログイン](/docs/ja-jp/authenticate/login/auth0-universal-login)」をご覧ください。

このような混乱を防ぐため、 **［Sign Up（サインアップ）］** オプションを非表示にするよう指示するクエリパラメーターがログインページに送信されます。ただし、このクエリパラメーターを有効にするにはログインページをカスタマイズする必要があります。

1. [［Auth0 Dashboard］>［Branding（ブランディング）］>［Universal Login（ユニバーサルログイン）］](https://manage.auth0.com/#/login_settings)に移動し、 **［Login（ログイン）］** ビューを選択します。

2. **［Customize Login Page（ログインページのカスタマイズ）］** を有効にして下のカスタムエディターを有効にします。エディターでLock構成に新しい行を追加します。

3. Lockウィジェットを構成するオブジェクトの下部（`closable`設定の後）に次の行を追加します：
   `allowSignUp:!config.extraParams.prevent_sign_up,`

   <Frame>
     <img src="https://mintcdn.com/docs-dev-chore-teams-api-autoupdate/c7MGbfh4v7YcMu8P/docs/images/ja-jp/cdy7uua7fh8z/7gejLGgQB5hoLPqEAJXY5w/023a2d02ab4976b8b7dc59d4dbc37c56/Universal_Login_-_Login_-_Japanese.png?fit=max&auto=format&n=c7MGbfh4v7YcMu8P&q=85&s=73799cae2f4803dfc37baa01f79b37e2" alt="Dashboard - ブランディング - ユニバーサルログイン - ログイン設定 - アカウントリンク ホストされたページコード例" width="1002" height="1619" data-path="docs/images/ja-jp/cdy7uua7fh8z/7gejLGgQB5hoLPqEAJXY5w/023a2d02ab4976b8b7dc59d4dbc37c56/Universal_Login_-_Login_-_Japanese.png" />
   </Frame>

4. 変更を保存して、アカウントのリンクを試みます。 **［Sign Up（サインアップ）］** オプションが非表示になり、これでユーザーの混乱を防ぐことができます。

   <Frame>
     <img src="https://mintcdn.com/docs-dev-chore-teams-api-autoupdate/lrjyIjbtxfFicig0/docs/images/ja-jp/cdy7uua7fh8z/5LHWcm49M29Y00rI5xDaZV/773621dc56b4bff67ea618b2c919f750/hosted-page-example.png?fit=max&auto=format&n=lrjyIjbtxfFicig0&q=85&s=bb1f2e6869d6e909602d9573f5f3c7e0" alt="Account Link Hosted Page Example" width="1356" height="916" data-path="docs/images/ja-jp/cdy7uua7fh8z/5LHWcm49M29Y00rI5xDaZV/773621dc56b4bff67ea618b2c919f750/hosted-page-example.png" />
   </Frame>

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  サインアップリンクの非表示は、ユニバーサルログインエクスペリエンスでサポートされていません。
</Callout>

## テーマをカスタマイズする

拡張機能のページをデフォルトのテーマと違う外観にカスタマイズしたい場合は、インストール時に（または任意のタイミングでAccount Link拡張機能の **設定** アイコンから）、カスタムスタイルシートにURLを追加します。

<Frame>
  <img src="https://mintcdn.com/docs-dev-chore-teams-api-autoupdate/nAzBMvmoJ-hFIQYl/docs/images/ja-jp/cdy7uua7fh8z/2as3Sx9y6UB0tyIuyJikR7/ee4ce139c19a0c2b8125e28b9059939e/extension-page-example.png?fit=max&auto=format&n=nAzBMvmoJ-hFIQYl&q=85&s=9da34580c324b6ce27d9f3ab091ab463" alt="Account Link Customize Theme" width="1359" height="920" data-path="docs/images/ja-jp/cdy7uua7fh8z/2as3Sx9y6UB0tyIuyJikR7/ee4ce139c19a0c2b8125e28b9059939e/extension-page-example.png" />
</Frame>

## 管理パネル

アカウントリンクのログインページとウィジェットは、拡張機能の管理パネルでカスタマイズできます。

1. [［Dashboard］>［Extensions（拡張機能）］>［Installed Extensions（インストール済みの拡張機能）］>［Auth0 Account Link］](https://manage.auth0.com/#/extensions/installed)に移動します。
2. 管理サイトにリダイレクトされます。そこでホストされるページのHTMLコードを編集して、タイトルやロゴ、色、言語など、アカウントリンクウィジェットの設定を変更できます。

<Warning>
  サイトのHTMLコードから`{{ ExtensionCSS }}`、`{{ CustomCSS }}`、`{{ Auth0Widget }}`、または`{{ ExtensionScripts }}`を削除しないでください。削除すると、拡張機能にアカウントリンクウィジェットが表示されなくなります。
</Warning>

## カスタムドメイン

カスタムドメインをご利用の場合は、カスタムドメイン（たとえば`auth.custom.com`）を使って構成ルール`customDomain`を設定する必要があります。

1. [［Auth0 Dashboard］>［Auth Pipeline（Authパイプライン）］>［Rules（ルール）］](https://manage.auth0.com/#/rules)に移動します。
2. デフォルトで、ルールの27行目は、
   `issuer: auth0.domain`になっています。
   これを、
   `issuer:"myCustomDomain.com"`にします。
   URLのプロトコル部分は必ず除いてください。

## もっと詳しく

* [ユーザーアカウントのリンク](/docs/ja-jp/manage-users/user-accounts/user-account-linking)
* [ユーザーアカウントをリンクする](/docs/ja-jp/manage-users/user-accounts/user-account-linking/link-user-accounts)
* [ユーザーアカウントのリンク：サーバー側実装](/docs/ja-jp/manage-users/user-accounts/user-account-linking/suggested-account-linking-server-side-implementation)
* [ユーザー起点のアカウントのリンク：クライアント側実装](/docs/ja-jp/manage-users/user-accounts/user-account-linking/user-initiated-account-linking-client-side-implementation)
* [アカウントリンクに向けてアクセストークンに移行する](/docs/ja-jp/troubleshoot/product-lifecycle/past-migrations/link-user-accounts-with-access-tokens-migration)
