Auth0へのユーザーをインポートを有効にしてテストする
ユーザーのインポートを有効にすると、ユーザーは外部ユーザーストアからAuth0ユーザーストアに徐々に移行されます。このプロセスでは、ユーザーは初めてログインに成功したときに外部ストアに対して認証されます。以降のログイン試行はすべてAuth0ユーザーストアに対して実行されます。詳細については、「ユーザーのインポートとエクスポート」の自動移行についてお読みください。テストテナントおよびアプリケーションを作成する
- Auth0 Dashboardを使用して新しいテナントを作成します。
-
[Applications(アプリケーション)]>[Applications(アプリケーション)]に移動して、マシンツーマシンアプリケーションを作成します。
カスタムデータベーススクリプトを作成する際には、クライアントID と クライアントシークレット をメモしておく必要があります。また、Management APIでスコープを有効にするためには、** クライアントID** をメモしておく必要があります。
-
このアプリケーションに対して、パスワード と クライアント資格情報 付与の両方を有効にします(このテストでは両方の付与を有効にしてください)。
- アプリケーションを承認するには、[Applications(アプリケーション)]>[APIs]に移動します。
- [Management API] を選択します。
- [Machine-to-Machine Applications(マシンツーマシンアプリケーション)] タブで、トグルを使用してテストアプリケーションを承認します。
-
ドロップダウンメニューを選択して、次のAuth0 Management APIのスコープを有効にします。
-
read:users
-
update:users
-
delete:users
-
create:users
-
read:users_app_metadata
-
update:users_app_metadata
-
create:users_app_metadata
-
データベース接続テストを作成する
ダッシュボードでテナントとアプリケーションを作成したら、ソースデータベース接続とターゲットデータベース接続を作成します。- [Authentication(認証)]>[Database(データベース)]に移動して、新しいデータベース接続を作成してソースにします。
-
テストソース接続に名前を付け、[Requires Username(ユーザー名の要求)] を有効にし、** [Create(作成)]** を選択します。
テスト用にユーザーを作成するには、[User Management(ユーザー管理)]>[Users(ユーザー)]に移動します。[Create Users(ユーザーの作成)] を選択して必要なフィールドに入力し、** [Connection(接続)]** フィールドでソースデータベースを選択します。
-
手順2から同じ構成で、2番目のデータベースをターゲットとして作成します。
ターゲットDBとソースDBの両方で パスワードポリシー を [Non-empty password required(空でないパスワードが必要)] に設定すれば、テストで簡素なパスワードを使うことができます。
-
ターゲットデータベースでは、[Custom Database(カスタムデータベース)] ビューに切り替え、** [Use my own database(自分自身のデータベースを使用する)]** のトグルをオンにします。
Organizationsを使ってカスタムデータベースをテストしたい場合は、[Context object in database scripts(データベーススクリプト内のコンテキストオブジェクト)] を有効にします。
- [Settings(設定)] ビューに切り替え、** [Import Users to Auth0(Auth0にユーザーをインポート)]** を有効にします。
-
[Custom Database(カスタムデータベース)] ビューに切り替え、** [Database settings(データベースの設定)]** を見つけます。手順1で作成したソースデータベースから次の情報を追加します。
キー 値 client_id
作成したアプリケーションのクライアントID client_secret
作成したアプリケーションのクライアントシークレット auth0_domain
Auth0ドメイン内のテナント名: yourTenant.us.auth0.com
source_database
ソース接続の名前 - ターゲットデータベースで、Login(ログイン)およびGet User(ユーザーの取得)のデータベースアクションスクリプトを更新します。データベースアクションスクリプトを使用したベストプラクティスに関する詳細は、「カスタムデータベース接続とアクションスクリプトのベストプラクティス」をお読みください。
-
各スクリプトで [Save and Try(保存して試す)] を選択します。Real-time Webtask Logs機能拡張の
console.log
出力を監視してください。詳細については、「Real-time Webtask Logs機能拡張」をお読みください。 - [Try Connection(接続を試す)] を選択して、接続ライブをテストします。
ユーザーインポートを有効にせずにテストする
- テストテナントおよびアプリケーションを作成するで手順を繰り返します。
- 1つのテストデータベース接続を作成します。
- ソース データベース設定の [Import Users to Auth0(ユーザーをAuth0にインポート)] が無効になっていることを確認します。ユーザーは、ログイン試行ごとに外部ユーザーストアに対して認証を行います。
- 次のサンプルですべてのデータベースアクションスクリプトを更新します。
Get User(ユーザーの取得)スクリプト
Get User(ユーザーの取得)スクリプトは、ユーザーの現在の状態を判別する実行可能関数を実装します。 [Import Users to Auth0(ユーザーをAuth0にインポート)] が有効になっている場合、ユーザーがサインアップしようとすると、Get User(ユーザーの取得)スクリプトが実行され、ユーザーが外部ユーザーストアに既に存在するかどうかが確認されます。 Get User(ユーザーの取得)スクリプトは、ユーザーが次の操作を試みる場合にも実行されます。- ユーザーのメールアドレスを変更する(Change Email(メールの変更)スクリプト)
- ログインする(Login(ログイン)スクリプト)
- ユーザーのパスワードを変更する(Change Password(パスワードの変更)スクリプト)
- ユーザーを作成する(Create(作成)スクリプト)
- ユーザーのメールアドレスを変更する(Change Email(メールの変更)スクリプト)
- ユーザーのパスワードを変更する(Change Password(パスワードの変更)スクリプト)
例
Login(ログイン)スクリプト
Login(ログイン)スクリプトは、ユーザーがログインするときにユーザーを認証する実行可能関数を実装します。ユーザーがターゲットデータベース(Auth0)に存在する場合は、そのレコードを使用して認証します。それ以外の場合は、ソースデータベース(外部)内のレコードを使用してユーザーを認証します。例
Create(作成)スクリプト
Create(作成)スクリプトは、ユーザーがユニバーサルログインを通じてサインアップしたとき、またはまたはAuth0 を使用して作成されたときに、外部データベースに対応するユーザーレコードを作成する実行可能関数を実装します。例
Delete(削除)スクリプト
Delete(削除)スクリプトは、Auth0 DashboardまたはAuth0 Management APIを使用してユーザーが削除されたときに、同じ操作でAuth0と外部データベースからユーザーを削除する実行可能関数を実装します。例
Verify(検証)スクリプト
Verify(検証)スクリプトは、ユーザーがAuth0から送信された検証メール内のリンクをクリックしたときに、外部データベース内のユーザーのメールアドレスの検証ステータスをマークする実行可能関数を実装します。例
Change Password(パスワードの変更)スクリプト
Change Password(パスワードの変更)スクリプトは、Auth0 DashboardまたはAuth0 Management APIからパスワード変更ワークフローが開始されたときに、外部データベース内のユーザーのパスワードを更新する実行可能関数を実装します。例
Change Email(メールの変更)スクリプト
Change Email(メールの変更)スクリプトは、ユーザーがメールアドレスまたはメールアドレスの検証ステータスを変更したときに、ユーザーのメールアドレスを更新する実行可能関数を実装します。 このスクリプトはAuth0 Dashboardでは利用できません。Management API接続を更新エンドポイントを呼び出し、options.customScripts.change_email
プロパティを提供する必要があります。