ユーザーリポジトリの移行

IBM® Verify はユーザーリポジトリを移行する簡単な方法を提供します。 ユーザーの検証を行うための標準的なオンボーディングプロセスは、提供されているREST APIを使用することです。 CSVインポート機能を使用すると、ユーザーを迅速にオンボード化できます。

IBM Verify ユーザーデータのインポートには、以下の方法がサポートされています。
  • 手動入力
  • CSVインポートAPI
  • ユーザーAPI(シングル)
  • 一括読み込みAPI(複数)
CSV インポート方式が最も一般的な方法です。

データ情報

データの形式
CSV方式でユーザーをインポートするには、 Verify 、LDAPまたはSQLデータベースのいずれかであるユーザーリポジトリを、 UTF-8 と互換性のあるCSV形式に変換する必要があります。 データを変換する予定の方法がこのフォーマットをサポートしていることを確認してください。
ユーザーのタイプ
インポートするユーザーの種類に注意することが重要です。 Verify のクラウドディレクトリのモデルについてよくご存じでない場合は、 Verify ディレクトリの構造に関する記事をお読みください。 このタスクでは、インポートされるユーザーには、ユーザー作成時に生成されるローカルパスワード付きの標準クラウドディレクトリユーザーアカウントが割り当てられます。 regular ユーザーの種類がこのユーザーの種類を決定します。 ローカルパスワードなしでユーザーのメタデータのみをインポートする場合は、 realmuserCategory の属性値を置き換える必要があります。
アクセス・トークン
ユーザーをインポートするために使用されるAPIクライアントは、 IBM Verify において、少なくとも以下のいずれかの権限を持っている必要がある。
  • ユーザーとグループの管理
  • ユーザーおよびグループの同期
  • ユーザーおよび標準グループの管理
アプリケーションは、クライアントクレデンシャルフローを使用してアクセストークンを取得する必要があります。

CSVヘッダーを取得

インポート用にCSVファイルを正しく構造化するには、まずヘッダーオプションの種類を理解する必要があります。 ユーザースキーマに精通している場合、ヘッダー名はSCIMにおける属性の識別子と等しくなります。 カスタム属性を使用している場合は、属性作成時に指定した値。

curl -X GET "https://${tenant_url}/v2.0/CSV/headerNames?filter=user" -H "Authorization: Bearer ${access_token}"
この応答には、すべてのヘッダー名が含まれます。 CSVファイルの列で使用する名前は、 name オブジェクト名に含まれています。 コールの例では、グループの属性名が返されないようにユーザーフィルタが追加されました。

CSVファイルを作成する

基本ユーザーフィールドの最小限のCSVファイルを素早く作成し、自動生成されたパスワードを追加するには、この例を使用してください。

preferred_username given_name family_name email
user1 ジョン ドウ jdoe@example.com
user2 Jane Smith jsmith@example.com
user3 ジョン ジョーンズ jjones@example.com
必要に応じて列を追加する。 属性値は、管理コンソールでいつでも事後更新できます。 このファイルを UTF-8 エンコードのCSVテキストファイルとして保存します。 ファイルの最大サイズは10MBです。 ファイルが大きい場合は、複数のCSVファイルに分割してください。
注: エクセルからCSVをエクスポートした場合、エンコードにはファイルの先頭に奇妙な文字が含まれることがあります。 生のテキストエディタでファイルを開き、文字を削除します。 文字は次のようになります:  、これはバイトオーダーマーク(BOM)として知られています。 テキストエディタに文字が表示されない場合は、テキストを新しいテキストエディタにコピー&ペーストし、新しいファイルとして保存してください。

パスワードのマイグレーション

Verify 既存パスワードの移行および平文で提供されたパスワードのオンボーディングをサポートします。 既知のパスワードまたはハッシュ化されたパスワードを持つユーザーを作成したい場合は、 password という名前の列を各ユーザー行に追加します。 Verify は、そのパスワードを持つユーザーを作成します。 データベースまたはLDAPがサポートされているフォーマットのいずれかで一方向ハッシュを提供している場合は、その値を取得し、その前に {TYPE} を付けます。 例えば、 Salted-SHA256 を使用している場合は、 {SSHA256} を値の前に付けなければなりません。
:パスワードに '+' の記号が含まれている場合は、 “+” の記号を “%2B” に置き換えてエスケープしてください。

CSVファイルの例

この例は、必要最低限の情報のみが記載されたCSVファイルです。
preferred_username,given_name,family_name,email
user1,John,Doe,jdoe@example.com
user2,Jane,Smith,jsmith@example.com
user3,John,Jones,jjones@example.com
注: カンマの後のスペースはインポートを区切ります。

ファイルをインポートする

ファイルが作成された後、サポートされているいくつかの追加設定があります。 次のコールでは、パラメータ notifyType=NONE により、新規アカウントのすべての電子メール通知が抑制されます。 最初のログイン時にランダムなパスワードが作成されますが、ユーザーはそれをリセットする必要はありません(ユーザーは後でリセットできます)。 初回ログイン時のパスワード変更要求を抑制するには、 usershouldnotneedtoresetpassword: true というヘッダーを追加します。
curl --location -X POST "https://${tenant_url}/v2.0/CSV/importUsers?notifyType=NONE" \
--header "Authorization: Bearer ${access_token}" \
--header 'usershouldnotneedtoresetpassword: true' \
--form 'file=@/path/to/file/user_import.csv'

ファイルが正しくフォーマットされ、受理された場合、IDが返送されます。 このIDを使用してステータスAPIをポーリングし、すべてが正常に動作しているかどうかを確認できます。 ユーザーは直線的に処理されます。 最大ファイルサイズ(10MB)のファイルは、処理に15~20分程度かかる場合があります。

注: ランダムパスワードの場合、通知設定に関わらず、ユーザーには常にメールが送信されます。 CSVファイルにパスワードが指定されている場合、通知設定がNONEに適用され、ユーザーにはメールが送信されません。

インポート状況を確認する

ユーザーが処理されている間、CSVジョブAPIを呼び出すことで、インポートの現在のステータスを確認できます。
curl --location --request GET "https://${tenant_url}/v2.0/CSV/jobs/${id}" \
--header "Authorization: Bearer ${access_token}"
この応答では、現在の state と、未処理のユーザー数(unprocessedCount )と、処理され追加されたユーザー数(processedCount )の統計情報が提供されます。エラーが発生した場合は、その件数(errorsCount )が提供されます。

一括ロード

一括APIを使用することで、何百万人ものユーザーを移行することができます。 参照 https://docs.verify.ibm.com/verify/reference/bulkrequest。 ただし、Verifyチームと協力して一括ロードのスケジュールを組んでもらう方が効率的です。 サポートチケットは、ウェブベースの IBM サポートコミュニティまたは電話( IBM 1-800-SERV(800-426-7378))で IBM サポート部門に開くことができます。 サービス管理チームが安全なアップロード先を提供します。 次に、ユーザーデータをこの場所にアップロードし、サービス管理チームが Verify にデータをロードします。