利用可能性は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(作成)] をクリックします。
| パラメーター | 定義 |
|---|---|
| Name(名前) | 接続の名前です。名前の先頭と末尾には英数字を使用し、英数字とダッシュのみを含め、35文字以内で指定する必要があります。 |
| Requires Username(ユーザー名を要求する) | 登録でユーザー名とメールアドレスの入力をユーザーに強制します。 |
| Username Length(ユーザー名の長さ) | ユーザー名の最小と最大の長さを設定します。 |
| Disable Sign Ups(サインアップを無効にする) | アプリケーションへのサインアップを抑止します。API資格情報またはAuth0 Dashboardを使ってこれまでと変わりなく、ユーザーを作成することができます。 |
- Password Policy(パスワードポリシー)
- Custom Database(カスタムデータベース)
- アプリケーション
- [Try Connection(接続を試す)]
-
[Custom Database(カスタムデータベース)] ビューを選択し、[Use my own database(独自のデータベースを使用する)] スイッチを有効にします。

データベースアクションスクリプトを作成する
[Use my own database(独自のデータベースを使用する)] スイッチを切り替えると、[Database Action Scripts(データベースアクションスクリプト)] 領域が有効になり、ここでスクリプトを作成し、データベース使用時の認証の仕組みを設定します。データベースアクションスクリプトを記述するか、[Templates(テンプレート)] ドロップダウンからテンプレートを選択し、必要に応じて変更することができます。loginスクリプトは構成する必要があります 。ユーザー機能性のその他のスクリプトはしてもしなくても構いません。
使用できるデータベースアクションスクリプトは以下のとおりです。
| 名前 | 説明 | パラメーター |
|---|---|---|
| Login(ログイン) 必須 | ユーザーがログインを試みるたびに実行します。 | email、password |
| Create(作成) | ユーザーがサインアップするときに実行します。 | user |
| Verify(検証) | ユーザーが検証リンクに従った後に実行します。 | email |
| Change Password(パスワード変更) | パスワードのリセット要求後にユーザーが確認リンクをクリックすると実行します。 | email、newPassword |
| Get User(ユーザー取得) | ユーザーを認証することなく、データベースからユーザープロファイルを取得します。 | email |
| Delete(削除) | APIまたはAuth0 Dashboardを使用してユーザーが削除されると実行します。 | id |
ログインスクリプトを作成する
複数データベースでのユーザー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スクリプトに追加することができます。