0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

midPoint by OpenStandiaAdvent Calendar 2024

Day 10

midPoint における名寄せ処理

Last updated at Posted at 2024-12-09

midPoint by OpenStandia Advent Calendar 2024 の10日目は、5日目で設定したリソース設定のCorrelation設定(名寄せ設定)について、補足します。

5日目までで構築した環境が前提となります。

名寄のための設定

設定のポイントは以下の2点です。

1つ目の設定で、名寄せ対象のデータをどういうロジックで探し出すか定義します。

2つ目の設定では、名寄せ対象のデータを発見した際に、実行するアクションを設定します。通常、名寄対象を発見した際には同期を行うようにしたいケースが多いので、5日目の記事では 「紐づけ(Link)」 というアクションを指定していました。要件に合わせて別のアクションを設定することも可能です。

名寄せのシナリオを試す

以下のシナリオを試してみます。

  1. HRシステムからユーザー情報が連携される前に、諸事情により先行してIGA/IDM側に手動でユーザー登録を実施した
  2. その後、HRシステムから正式なユーザー情報が連携されたので、名寄せを行いHRシステムのデータで更新をかけたい

その他のシナリオとして、複数の源泉システムからデータを取り込み、midPoint上の同一ユーザーに反映するといったことも考えられます。例えば、電話番号やメールアドレスはHRシステムから連携されず、別システムで割り当てが行われ、そこからデータが連携されるなどです。

手動によるユーザー登録

5日目では以下のユーザーCSVを取り込んでいました。

users.csv
employeeNumber,givenName,familyName,email,primaryOrgId,secondaryOrgIds
1001,太郎,山田,taro.yamada@example.com,005,006;007
1002,花子,佐藤,hanako.sato@example.com,006,005;009
1003,次郎,鈴木,jiro.suzuki@example.com,007,006
1004,美咲,高橋,misaki.takahashi@example.com,008,009
1005,健一,田中,kenichi.tanaka@example.com,009,008
1006,陽菜,伊藤,hina.ito@example.com,005,
1007,,渡辺,sho.watanabe@example.com,006,
1008,さくら,小林,sakura.kobayashi@example.com,007,
1009,,中村,yu.nakamura@example.com,008,005;007
1010,一郎,山本,ichiro.yamamoto@example.com,009,006

ここにまだ存在しない、1011を手動で追加します。画面左メニューより「ユーザー > 新規ユーザー」をクリックします。

image.png

種類は、「すべてのユーザー」を選択します。

アーキタイプを使ってユーザー種別を別途定義しておくと、そのユーザー種別を表示させて、種別ごとに異なる作成画面を提供できるようになります。「Person」というアーキタイプがデフォルトで設定されているので、ここではPersonを選ぶことができます。

image.png

新規ユーザー画面が開くので、以下の情報を入力して保存します。メールアドレスや所属組織はHRから後日来るものとして、ここでは未設定としておきます。

  • 名前1011
  • 太郎
  • 鈴木

image.png

HRシステムからの同期で名寄せして更新

CSVに、1011,太郎,鈴木,taro.suzuki@example.com,009,行を追加します。

users.csv
employeeNumber,givenName,familyName,email,primaryOrgId,secondaryOrgIds
1001,太郎,山田,taro.yamada@example.com,005,006;007
1002,花子,佐藤,hanako.sato@example.com,006,005;009
1003,次郎,鈴木,jiro.suzuki@example.com,007,006
1004,美咲,高橋,misaki.takahashi@example.com,008,009
1005,健一,田中,kenichi.tanaka@example.com,009,008
1006,陽菜,伊藤,hina.ito@example.com,005,
1007,,渡辺,sho.watanabe@example.com,006,
1008,さくら,小林,sakura.kobayashi@example.com,007,
1009,,中村,yu.nakamura@example.com,008,005;007
1010,一郎,山本,ichiro.yamamoto@example.com,009,006
1011,太郎,鈴木,taro.suzuki@example.com,009,

これで取り込みのタスクを実行します。タスク実行完了後、タスクの「オペレーション統計」メニューを開くと、「Synchronization situation transitions」のところに、UnlinkedLinkedになったものが1件あると示されています。

image.png

ユーザー一覧を確認してみます。手動登録していた1011にメールアドレスが設定されていることが分かります。

image.png

詳細を開くと、所属組織も反映されていることが分かります。

image.png

もし、リソースの同期設定で状況がUnlinked時のアクション設定をせずにインポートタスクを実行すると、CSVから1011のユーザー情報は取り込まれず、更新は行われません。タスクの「オペレーション統計」メニューを開くと、Correlation設定により名寄せを行い状況がUnlinkedのものを検知したが、対応する同期のアクション設定がないため、何も行われていないことが示されています(Unlinkedのまま終了)。

image.png

逆に、リソースのCorrelation設定をせずにインポートタスクを実行すると、タスクは「部分的なエラー」で終了します。

image.png

タスクの「オペレーション統計」メニューを開くと、名寄せを行っていないためUnlinkedは検出されず、Unmatchedと判定されています。そして「失敗」としてカウントされていることが分かります。

image.png

状況がUnmatchedの場合は、midPointに新規追加を行うアクション(フォーカスを追加)を設定しているため、midPointにユーザーの登録が発生します。しかし今回、1011は先行して画面から登録済みであり、そしてname属性はユニークチェックが行われますので、1011は重複しエラーとなっています。タスクの「エラー」メニューを開くとこのエラーについて記録されていることが分かります。このように、名寄せ設定を行っていないと同一のユーザーかどうか判断できないため、エラーとなります。

image.png

プロビジョニング時の名寄せ

今回は源泉からmidPointに取り込む際の名寄せ処理でしたが、プロビジョニング時の名寄せ処理も存在します。例えば、プロビジョニング先となる連携先システム側において、同名のユーザーが管理者操作により先に登録されてしまったケースです。

その他、まだ連携先としては繋がっていない既存システムを、midPointからのプロビジョニング先に新たに加えるというケースでも、既にアカウントなどが存在しますので名寄せ処理が必要になります。

プロビジョニングの設定については今後の記事で紹介する予定ですので、その際にプロビジョニング時の名寄せの挙動についても紹介できればと思います。

高度な名寄せ

設定の詳細については今回は割愛しますが、より複雑な名寄せ処理を実装することも可能です。

今回はemployeeNumberで名寄せを行うというシンプルなものでしたが、他の属性を利用したり、複数の属性を組み合わせて名寄せすることもできます。以下のドキュメントに詳細情報が記載されています。

また、名寄せでマッチングしたユーザーが複数存在する場合に、ワークフローを起動して管理者によるマニュアル判定させることも可能です。以下は例として「姓」だけで名寄せした場合に、名寄せ候補が二人見つかった場合のマニュアル作業の画面です。管理者が判断してどれを紐付けるか決定します。このようなマニュアル操作と組み合わせた名寄せ処理も、midPointでは実装することができます。

image.png

まとめ

10日目では、5日目で設定したリソース設定のCorrelation設定(名寄せ設定)について、補足解説しました。実際の現場では、この名寄せが中々難しくて検討に時間がかかることがありますが、ロジックさえうまく決まれば、midPointの名寄せ機能を使ってスマートに対応できる可能性があります。是非活用していただければと思います。

次回はいよいよ、プロビジョニング設定を追加予定です。お楽しみに!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?