利用可能性はAuth0プランによって異なる
この機能が利用できるかどうかは、ご利用のAuth0プラン(または契約)によります。詳細については、「価格設定」をお読みください。
データベースに、ユーザープロファイル属性を保管する
id、nickname、email、passwordなどのフィールドがあることを確認してください。Auth0のユーザープロファイルスキーマについては、「正規化ユーザープロファイル」をお読みください。ユーザープロファイルの更新については、「データベースでユーザープロファイルを更新する」をお読みください。- ASP.NET Membership Provider
- MongoDB
- MySQL
- PostgreSQL
- SQLServer
- Windows Azure SQL Database
- 基本認証でアクセスされるWebサービス
ネットワークのファイアウォール
ファイアウォールの内側にいる場合、この機能を正しく動作させるには、適切なAuth0のIPアドレスをAllow List(許可リスト)に追加する必要があるかもしれません。
Auth0 Dashboardで接続を作成する
- [Auth0 Dashboard]>[Authentication(認証)]>[Database(データベース)]に移動して、[Create DB Connection(DB接続の作成)] を選択します。
- 接続の設定を構成し、[Create(作成)] をクリックします。
Auth0で接続を作成すると、([Settings(設定)] ビューのほかに)以下のビューも表示されます。
- Password Policy(パスワードポリシー)
- Custom Database(カスタムデータベース)
- アプリケーション
- [Try Connection(接続を試す)]
-
[Custom Database(カスタムデータベース)] ビューを選択し、[Use my own database(独自のデータベースを使用する)] スイッチを有効にします。

データベースアクションスクリプトを作成する
[Use my own database(独自のデータベースを使用する)] スイッチを切り替えると、[Database Action Scripts(データベースアクションスクリプト)] 領域が有効になり、ここでスクリプトを作成し、データベース使用時の認証の仕組みを設定します。データベースアクションスクリプトを記述するか、[Templates(テンプレート)] ドロップダウンからテンプレートを選択し、必要に応じて変更することができます。loginスクリプトは構成する必要があります 。ユーザー機能性のその他のスクリプトはしてもしなくても構いません。
使用できるデータベースアクションスクリプトは以下のとおりです。
スクリプトの詳細については、「カスタムデータベースのアクションスクリプト用テンプレート」および「カスタムデータベースのアクションスクリプト実行のベストプラクティス」をお読みください。
ログインスクリプトを作成する
複数データベースでのユーザーIDの衝突を回避する
返されたユーザープロファイルにある
id(またはuser_id)プロパティは、Auth0によってユーザーの識別に使用されます。複数のカスタムデータベース接続を使っている場合には、ユーザーIDの衝突を避けるために、idの値がすべてのカスタムデータベース接続で一意でなくてはなりません。idの値には、接続名をプレフィックス(スペースは削除)として追加することをお勧めします。ユーザーIDの詳細については、「ユーザーを識別する」をお読みください。- [Use my own database(独自のデータベースを使用する)] スイッチを切り替えた後、** [Database Action Scripts(データベースアクションスクリプト)]** 領域が有効になります。[Login(ログイン)] タブが開いていることを確認します。
-
[Templates(テンプレート)] ドロップダウンを使用して、MySQLデータベーススクリプト用テンプレートを選択します。
上記のスクリプトはMySQLデータベースに接続し、クエリーを実行して
email == user.emailを含む最初のユーザーを取得します。bcrypt.compareSyncメソッドでは次に、パスワードが一致するかどうかを検証します。一致する場合は、id、nickname、およびemailなどのユーザープロファイル情報を含むオブジェクトを返します。このスクリプトは、これらの列を含むusersテーブルを持っていると仮定します。ログインスクリプトによって返されたidを使って、ユーザープロファイルのユーザーID属性を構築します。 - [Save and Try(保存して試す)] をクリックします。
-
[Try(試す)] をクリックしてスクリプトをテストします。(この手順によりスクリプトの保存も行われます。)

Organization用カスタムデータベースのサポート
カスタムデータベース接続をOrganizationと組み合わせて使用する場合は、スクリプト署名のcontextパラメーターを使って、id、name、metadataのようなOrganizationの詳細をカスタムデータベースのアクションスクリプトに適用することができます。関連するアクションが組織コンテキストで実行されると、Organizationデータがコンテキストオブジェクトに渡されます。たとえば、ユーザーが組織のログインスクリプトを認証すると、ログインアクションのスクリプトが渡されます。詳細については、「データベース接続」をお読みください。
コンテキストオブジェクトを有効にする
- [Auth0 Dashboard]>[Authentication(認証)]>[Database(データベース)]の順に移動します。
- データベース接続を選択します。
- [Custom Database(カスタムデータベース)] タブで、[Context objects in database scripts(データベーススクリプト内のコンテキストオブジェクト)] を見つけて、** [Enable(有効にする)]** を選択します。
Organizationコンテキストを使用する
コンテキストオブジェクトがDashboardで有効になると、「context」オブジェクトをカスタムデータベースのアクションスクリプトに追加し、コールバックパラメーターの直前に挿入することができます。イベントがOrganizationコンテキストでトリガーされると、対応するデータを以下の形式でカスタムデータベースのアクションスクリプトで使用できるようになります。- ログイン
- 作成
- 検証
- パスワードの変更
- ユーザーの取得
- 削除
空のコンテキストは必ず
deleteスクリプトに渡されます。構成パラメーターを追加する
データベースへの接続に必要な資格情報といったパラメーターは、スクリプトエディターの下にある [Settings(設定)] セクションに保存することができます。これらのパラメーターはすべてのスクリプトに使用することができ、データベースアクションスクリプト内のconfigurationオブジェクト(configuration.MYSQL_PASSWORDなど)を使ってパラメーター値にアクセスすることができます。
スクリプトに追加したパラメーターを使って接続を構成します。たとえば、以下をMySQL Loginスクリプトに追加することができます。