サイオステクノロジーの藤原です。
前回はmidPointを構築しました(https://tech-lab.sios.jp/?p=42755)。
今回はmidPointでCSVからアカウントを作成したいと思います。
CSVの用意
源泉となるCSVを作成します。CSVはmidPointが載っているサーバ上に配置します。
ファイルにはmidPointが書き込みできる権限を与えます。
# vim /opt/midpoint/var/csv/csvresource.csv
| ユーザID | 姓(漢字) | 名(漢字) | メールアドレス |
| sios-test1 | 最雄 | 太郎 | sios-test1@siostest02.com |
| sios-test2 | 最雄 | 次郎 | sios-test2@siostest02.com |
| sios-test3 | 最雄 | 三郎 | sios-test3@siostest02.com |
リソースの作成
midPointと接続されるシステムはリソースとして定義されます。CSVのリソースを作成していきます。
- ホーム画面から左ペインの「リソース」>「新規リソース」を選択します

- 「スクラッチ」を選択します

- 「CsvConnector」を選択します

- 基本情報を入力し、「次へ:設定→」へ進みます

- 最初に配置したCSVのファイルパスを指定し、「次へ:ディスカバリー→」へ進みます
CSVファイルに書き込み権限がない場合、ここでエラーになります。

- 各項目を入力し、「次へ:スキーマ→」へ進みます

- デフォルトでAccountObjectClassにチェックが入っているので、そのまま「リソースの作成」を選択します

- リソースが作成できたので、「ウィザードを終了」からリソース一覧に戻ります

- 「CSVリソースblog用」が作成されました

- リソース・オブジェクトが認識されていることを確認します

- CSVに記載されたアカウントが認識されています

リソースの設定
midPointは基本的にリソースを作成しただけでは何も処理が発生しません。midPoint側にCSVのリソース・オブジェクトに対応するユーザーが存在しない場合に、ユーザーを作成するように設定します。
オブジェクトタイプの追加
- 先ほど作成したリソースを選択し、「スキーマ処理」を開きます

- 基本情報を入力し、「次へ:リソース・データ→」へ進みます
種類はアカウントを選択します。CSVリソースに記載されているのはアカウントであるためです。

- リソース・データを入力し、「次へ:MidPointデータ→」へ進みます
ここはデフォルトのまま進めます。

- MidPointデータを入力し、「設定を保存」を選択します
タイプはユーザー、アーキタイプはPersonを選択します

- オブジェクトタイプが作成されます

オブジェクトタイプの設定
- 作成したオブジェクトタイプにマッピングと同期の設定を行います

- マッピングを設定します。「インバウンドの追加」を選択します
CSVリソースのアカウントの属性と、midPoint側のアカウントの属性との紐づけを行います。

- 今回は以下のように属性をマッピングしました

- 次に同期の設定を行います
リソース側のアカウントとmidPoint側のアカウントを比較した時に、どのように処理を行うか定義します。
今回はリソース側のアカウントに対応するアカウントがmidPoint側に存在しない場合に、ユーザーを新規作成するような設定を行いました。

アカウント作成
- リソースのライフサイクル状態をActiveにして、変更が反映されるようにします

- リソース・オブジェクトから対象アカウントを選択し、右側のアイコンから「インポート」をクリックしてアカウントをインポートします
状況がLINKEDになっていれば、midPoint側にユーザーとアカウントが新規作成され、CSV側のアカウントと紐づいた状態になっています。

- 左ペインのユーザー>すべてのユーザーを開きます
先程インポートしたアカウントからユーザーが作成されたことが確認できます。


