問題点
全体像
Auth0 は既存のIDプロバイダーの代わりに、既存の外部ユーザーデータベースを使用します。既存のアプリケーションが、IdPのどれを使用するかという決定は、設定で簡単にAuth0に変更できます。既存のアプリケーションは、SAML、OpenID Connect、WS-FED、またはOAUth2プロトコルを使用して、Auth0にアクセスします。新しいネイティブ、Web、およびモバイルアプリケーションの場合、便利なプラットフォーム特有のSDKを介してAuth0 Rest APIにアクセスし、認証を実行することができます。開発者が高く評価する、コードサンプルとカスタマイズされ、ステップを踏んだAuth0のガイダンスをお使いください。
Auth0は、フェデレーションと拡張性に優れたエンタープライズクラスのIDプロバイダーです。
データベースの移行
Auth0は何百万ものユーザーを追跡するのに理想的な、高度にスケーラブルで可用性の高い、エンタープライズクラスの組み込みデータベースを利用します。ユーザーまたはデバイスが初めてAuth0にログインするとき、組み込みのAuth0データベースに記録がないため、Auth0は既存の外部ユーザーデータベースに接続して記録を取得します。これには、Auth0組み込みデータベースに移行されるすべてのユーザーデータが含まれます。認証要求を完了するだけでなく、Auth0は新しく取得したユーザーの記録を組み込みデータベースに追加します。数週間または数か月の間に、ほとんどのユーザーは何も変更されていないことに気付かずに自動的に移行されます。残りの記録はいつでもAuth0に一括インポートできますが、パスワードのリセットが必要になります。プロセスが完了したら、既存の外部データベースを廃止できます。詳細については、https://auth0.com/docs/connections/database/migrating を参照してください。
ユーザーをAuth0データベースに移行するために使用されるロジック
このアルゴリズムを使用すると、ユーザーはパスワードをリセットする必要がなくなります。ユーザーがAuth0ユーザーデータベースに移行されると、従来のデータベースの記録は使用されなくなります。
どう機能するのか?
アプリケーションは、Auth0をIDプロバイダー (IdP) として使用するように指示されます。Auth0は下の図に示すように、元のユーザー データベース ( https://auth0.com/docs/connections/database ) への直接接続を使用するか、既存の外部データベースにアクセスしてユーザーを認証し、すべてのユーザー情報を収集する Webサービスを呼び出します。
既存の外部データベースのユーザーIDは、オンザフライで組み込みデータベースに移行されます。
既存の外部ユーザーデータベースまたはWebサービスに対して「ログイン」および「ユーザー データの取得」操作を実行するために、Auth0は安全なサンドボックスで実行されるテンプレートNode.jsコードを提供し、データをAuth0組み込みデータベースに移行します。このJavaScriptテンプレートコードは、ユーザーデータの的確な状況に合わせて、簡単にカスタマイズできます。
Auth0は、以下にあげる、ほとんどの一般的なデータベースにテンプレートを提供します。ASP.NETメンバーシッププロバイダー、MongoDB、MySQL、PostgreSQL、SQLServer、Windows Azure SQL データベース、およびカスタマイズされたNode.jsスクリプトを使用して、あらゆる種類のデータベースまたはWebサービスに接続し、ユーザー データをAuth0ユーザーデータベースに簡単かつ無停止で移行します。
必要であれば、追加のソースからユーザー情報を収集するのは簡単で、ユーザーデータがAuth0組み込みユーザーデータベースに移行されるときに、その情報を各ユーザーの記録に追加することができます。