> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> カスタムデータベース接続の構成に関するベストプラクティスについて説明します。

# カスタムデータベース接続の構成に関するベストプラクティス

通常、カスタムデータベース接続は、認証のために独自のレガシー ID ストアへのアクセスを提供する場合 (**レガシー認証**と呼ばれることもあります) や、[自動移行によるユーザーインポートを実行](/ja/docs/manage-users/user-migration/configure-automatic-migration-from-your-database)する場合 (**trickle** または **lazy** migration と呼ばれることがよくあります) に使用します。また、Auth0 のマルチテナントアーキテクチャを使用するシナリオでは、カスタムデータベース接続を使って Auth0 テナントへのアクセスをプロキシすることもできます。詳しくは、[Multi-Tenant Applications Best Practices](/ja/docs/get-started/auth0-overview/create-tenants/multi-tenant-apps-best-practices)を参照してください。

通常、カスタムデータベース接続は <Tooltip tip="Auth0 Dashboard: サービスを設定するための Auth0 の主要製品です。" cta="用語集を表示" href="/ja/docs/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip> を使用して作成および設定します。データベース接続を作成してから、**Use my own database** をオンにすると、データベース Action スクリプトを編集できるようになります。カスタムデータベース接続は、Auth0 の <Tooltip tip="Management API: お客様が管理タスクを実行できるようにする製品です。" cta="用語集を表示" href="/ja/docs/glossary?term=Management+API">Management API</Tooltip> の [Create a connection endpoint](https://auth0.com/docs/api/management/v2#!/Connections/post_connections) と `auth0` 戦略を使用して作成および設定することもできます。

<Frame>
  <img src="https://mintcdn.com/translations/raZlN0BXDjNonwyb/docs/images/cdy7uua7fh8z/11HPAdVwJMmnWbzMVjHCJ8/f75ff47f613a41778f266643f29ab2b1/2025-02-27_17-25-36.png?fit=max&auto=format&n=raZlN0BXDjNonwyb&q=85&s=76c3491d5dc990e888f5fcaa90412e7d" alt="Auth0 Dashboard Authentication Database Connection Custom Database Settings Use Own Database Enabled" width="799" height="408" data-path="docs/images/cdy7uua7fh8z/11HPAdVwJMmnWbzMVjHCJ8/f75ff47f613a41778f266643f29ab2b1/2025-02-27_17-25-36.png" />
</Frame>

以下に示すように、カスタムデータベース接続はログインワークフローの一部として使用され、認証またはユーザーインポートのために独自のレガシー ID ストアからユーザーの ID 情報を取得します。

<Frame>
  <img src="https://mintcdn.com/translations/eVsQcTnbClN-oB7d/docs/images/cdy7uua7fh8z/1H2Ky1WyPlZ9zHZrEVlFhP/4e4856395fac6d6339c883c35d4b4ac0/custom-database-connections.png?fit=max&auto=format&n=eVsQcTnbClN-oB7d&q=85&s=744b7f7fbe6c80cb5e64a7548ed1c7f4" alt="Custom Database Connection Flow" width="459" height="512" data-path="docs/images/cdy7uua7fh8z/1H2Ky1WyPlZ9zHZrEVlFhP/4e4856395fac6d6339c883c35d4b4ac0/custom-database-connections.png" />
</Frame>

カスタムデータベース接続では、すべてのデータベース接続タイプに共通する要素に加えて、レガシー ID ストアと連携する際に使用するカスタムコードである Action スクリプトを設定できます。設定するスクリプトは、レガシー認証用の接続を作成するか、自動移行用の接続を作成するかによって異なります。

Action スクリプトは無名関数として実装することもできますが、無名関数では、例外的なエラー状態によって生成されるコールスタックを解釈する際のデバッグが困難になります。利便性のため、各 Action スクリプトには関数名を付けることをお勧めします。推奨される名前については、[Custom Database Action Script Execution Best Practices](/ja/docs/authenticate/database-connections/custom-db/custom-database-connections-scripts/execution)を参照してください。

レガシー認証のシナリオでは、新しいユーザーレコードは作成されません。ユーザーはレガシー ID ストアに残り、Auth0 はユーザーの認証時にそこに含まれる ID を使用します。カスタムデータベース接続は、<Tooltip tip="Universal Login: アプリケーションは Auth0 の認可サーバーでホストされる Universal Login にリダイレクトされ、ユーザーの ID を検証します。" cta="用語集を表示" href="/ja/docs/glossary?term=Universal+Login">Universal Login</Tooltip> ワークフロー以外でも使用されます。たとえば、接続の `changePassword` Action スクリプトは、レガシー ID ストアに存在するユーザーに対してパスワード変更操作が発生したときに呼び出されます。

<div id="automatic-migration">
  ## 自動移行
</div>

自動移行では、Auth0 は Auth0 が管理する ID ストア (データベース) に新しいユーザーを作成します。ユーザーの認証時には、Auth0 は Auth0 管理の ID ストア内のアイデンティティを使用します。これを行うには、まず Auth0 がレガシー ID ストアに対してユーザーを認証する必要があり、それに成功した場合にのみ、Auth0 管理データベースに新しいユーザーが作成されます。Auth0 は、認証時に指定されたものと同じ ID とパスワードを使用して新しいユーザーを作成します。

自動移行シナリオでは、通常、ユーザーの作成は Login Action スクリプトの完了後に行われます。レガシー ID ストアからのユーザー削除は、Login スクリプト内でインライン処理として実行しようとせず、独立したプロセスとして実行することをお勧めします。これにより、移行中にエラーが発生した場合の意図しないユーザー削除を防ぐことができます。

自動移行では、ユーザーはレガシー ID ストアに残るため、必要に応じて削除またはアーカイブできます。副次的な影響として、ユーザーが Auth0 から削除されても、レガシー データストアには残ったままになる場合があります。この場合、削除されたユーザーがログインすると、Login または Get User スクリプトが実行され、そのユーザーが再びレガシー ID ストアから移行される可能性があります。

意図的に削除したユーザーが意図せず再作成されるのを防ぐため、Login または Get User スクリプトが完了する前、かつ最終的にレガシー ストアから削除する前に、レガシー ストア内のユーザーのアイデンティティを移行済みとしてマークすることをお勧めします。

<div id="size">
  ## サイズ
</div>

Action スクリプトの合計サイズは、100 KB を超えないようにすることを推奨します。サイズが大きいほど、Auth0 プラットフォームで使用されるパッケージ化および転送の処理によりレイテンシが増加し、システムのパフォーマンスに影響します。なお、この 100 KB の上限には、`require` ステートメントで参照される `npm` モジュールは含まれません。

<div id="learn-more">
  ## 詳細
</div>

* [カスタムデータベース接続のセキュリティのベストプラクティス](/ja/docs/authenticate/database-connections/custom-db/custom-database-connections-scripts/connection-security)
* [カスタムデータベース Action スクリプトの実行に関するベストプラクティス](/ja/docs/authenticate/database-connections/custom-db/custom-database-connections-scripts/execution)
* [カスタムデータベース Action スクリプト環境のベストプラクティス](/ja/docs/authenticate/database-connections/custom-db/custom-database-connections-scripts/environment)
