[User Import / Export Extension(ユーザーインポート/エクスポート拡張機能)] を使用すると、次のことが可能になります:
既存のデータベースユーザーをAuth0に一括インポートする
Auth0データベースユーザーの何人か(または全員)を検索またはエクスポートする
インポートおよびエクスポートできるユーザープロファイルフィールドの一覧については、ユーザープロファイル属性 を参照してください。
この拡張機能を使用するには、Dashboard Adminでなければなりません。
この拡張機能をインストールするには、Auth0 Dashboard>Extensions に移動し、[User Import / Export(ユーザーのインポート/エクスポート)] を選択します。
拡張機能をインストールする前に追加の構成は必要ないため、情報ポップアップウィンドウで [Install(インストール)] を選択して続行します。
拡張機能をインストールすると、インストール済み拡張機能のリストに表示されます。[Import / Export Extension(インポート/エクスポート拡張機能)] をクリックして起動します。
初めて拡張機能を起動すると、リストにあるアクティビティについて、拡張機能がAuth0アカウントにアクセスすることを許可するかが尋ねられます。
[check mark(チェックマーク)] をクリックして続行します。
拡張機能では以下の2つを行うことができます。
既存のデータベースユーザーをAuth0に一括インポートする
Auth0データベースユーザーの何人か(または全員)を検索またはエクスポートする
これらのユースケースについては以下で詳しく説明します。
デフォルトでは、拡張機能を開くたびに、[User Import(ユーザーインポート)] 画面が表示されます(エクスポート画面の場合は、左側のナビゲーションバーの [Import(インポート)] をクリックしてこの画面に戻ることができます)。
ユーザーをインポートするには、有効なJSONファイル(スキーマと例はこちら )を [Drop your file here, or click to select(ここにファイルをドロップまたはクリックして選択)] のエリアにドラッグアンドドロップします。または、この領域の任意の場所をクリックし、適切なJSONファイルを探して選択することもできます。JSONファイルには、インポートしたいユーザーのリストが含まれている必要があります。
Auth0テナントからエクスポートしたファイルを使用する場合は、ndjsonからJSON に変換する必要があります。同じユーザーIDを維持するために、インポートするユーザーIDからauth0| prefixを削除しなければなりません。 インポート処理では、ユーザーIDに自動的にauth0| prefixが追加されます。インポートする前にauth0| prefixを削除しなかった場合、ユーザーIDは、auth0|auth0|...として返されます。
ユーザーのインポート先になるデータベース接続を選択します。選択する接続が、少なくとも1つのアプリケーションで有効になっていることを確認してください。
インポートプロセスを開始するには、[Start Importing Users(ユーザーのインポートを開始)] をクリックします。
完了すると、次の [Completed(完了)] メッセージが表示されます。
ユーザーをインポートしたら、Auth0 Dashboard>User Management>Users を使用して個別に管理できます。
エクスポートファイルのサイズが大きいため、Auth0はndjson形式を使用します。ユーザーをインポートする前に、ndjson をjson に変換する必要があります。その際には、jq など、ご希望のライブラリーを使用できます。後でインポートするためにユーザーをエクスポートする場合は、ユーザーフィールドの名前をデフォルトのままにしておきます。[Column Name(カラム名)]にマッピングしてはいけません。
データベース接続に関連付けられている既存のAuth0ユーザーをエクスポートするには、[Export(エクスポート)] を選択します。
[User Fields(ユーザー フィールド)] では、エクスポートに含めるユーザー属性または式を決定できます。ユーザー属性は、user.user_metadata.nameのような静的な値にすることも、user.user_metadata.name || user.name のようなJavaScript式にすることもできます。式はエクスポートの実行時に評価されます。column name の値は、エクスポートで値がどのように表現されるかを示します。
[Add Default Fields(デフォルトフィールドの追加)] ボタンをクリックすると、デフォルトフィールドが自動的に選択され、列名が入力されます(これは、パラメーター/式がどのように表示されるかを視覚化するのにも適した方法です)。
関連する [trash can(ゴミ箱)] アイコンをクリックすると、不要な属性/式を削除できます。
[Settings(設定)] では次のことができます:
ユーザーを並べ替える [User Attribute(ユーザー属性)] (およびユーザーを昇順または降順で並べ替えるかどうか)を指定して、エクスポートされたユーザーのリスト方法を設定します。
[Export Format(エクスポート形式)] を選択します。JSONファイルとCSVファイルから選択できます。
準備ができたら、[Export X Users(Xユーザーのエクスポート)] をクリックします(Xはエクスポートするユーザーの数です)。
エクスポートが完了したら、ユーザーのファイルをダウンロードすることができます。
Auth0 Management API では、ユーザーインポート/エクスポート拡張機能を使用して、user_metadataおよび app_metadataへのユーザープロファイルの一括更新が可能です。
上記のエクスポートプロセス を使用して、すべてのユーザー属性を含む完全なエクスポートファイルを作成します。
エクスポート形式にJSON形式を選択します。
エクスポートが完了したら、ユーザーのファイルをダウンロードします。
前の手順でダウンロードしたJSONファイルの [copy(コピー)] を作成します。
この処理を行うと、データが失われる可能性があります。データが破損したときのために、ユーザーデータベースのバックアップを作成してください。
複製したJSONファイルをテキストエディターで開きます。以下のようなユーザースキーマになっているはずです。
[
{
"Id" : "auth0|626737a9813c000069daf462" ,
"Nickname" : "testuser1" ,
"Name" : "testuser1@auth0.com" ,
"email" : "testuser1@auth0.com" ,
"Connection" : "Username-Password-Authentication" ,
"Created At" : "2022-04-26T00:07:05.098Z" ,
"Updated At" : "2022-07-06T14:54:19.214Z"
},
{
"Id" : "auth0|62d1a1853bdcf11ff5dca672" ,
"Nickname" : "testuser2" ,
"Name" : "testuser2@auth0.com" ,
"email" : "testuser2@auth0.com" ,
"Connection" : "Username-Password-Authentication" ,
"Created At" : "2022-07-15T17:19:01.531Z" ,
"Updated At" : "2022-07-15T17:19:01.532Z"
},
{
"Id" : "auth0|62d1a1a524f32a4185c9ce23" ,
"Nickname" : "testuser3" ,
"Name" : "testuser3@auth0.com" ,
"email" : "testuser3@auth0.com" ,
"Connection" : "Username-Password-Authentication" ,
"Created At" : "2022-07-15T17:19:33.484Z" ,
"Updated At" : "2022-07-15T17:19:33.484Z"
}
]
ユーザーのメールアドレスは、データベースでユーザーの検索キー(lookup key)となっているため、変更しないでください。
IDには一意のconnection|idがなければなりません。複数の接続に同じユーザーIDが存在すると、更新に失敗します。
属性を追加するには、各ユーザースキーマに新しいフィールドを作成し、値で更新します。以下の例では、「Family Name(姓)」属性に「Smith(スミス)」の値があり、新しい属性の後にカンマ(「,」)があります。
複数のユーザーにemail_verified属性を追加し、値をtrueに設定することもできます。
{
"Id" : "auth0|626737a9813c000069daf462" ,
"Nickname" : "testuser1" ,
"Family Name" : "Smith" ,
"Name" : "testuser1@auth0.com" ,
"email" : "testuser1@auth0.com" ,
"email_verified" : true ,
"Connection" : "Username-Password-Authentication" ,
"Created At" : "2022-04-26T00:07:05.098Z" ,
"Updated At" : "2022-07-06T14:54:19.214Z"
}
変更をユーザーファイルに保存します。
更新したユーザープロファイルのデータをインポートする
users-importエンドポイントを使用すると、更新されたユーザープロファイルファイルをアップロードし、1つのジョブで複数のユーザーを更新できます。インポートユーザーのジョブの作成エンドポイント に移動します。
ユーザーパラメーターにユーザーファイルを追加して、更新したいデータベースのデータベース接続を追加します。
既存のユーザー情報を更新するには、upsert値をtrueにする必要があります。更新を追加するには、[Try(試す)] を選択するか、Postmanを使用してユーザーをインポートします。
job_idを使用して、jobsエンドポイント のステータスを確認します。