midPointによる「IDライフサイクル管理」「フルフィルメント」でアカウント管理のコスト削減midPointで学ぶIDガバナンス&管理(IGA)の基礎(3)

「IDガバナンス&管理」(IGA)についてOSS「midPoint」を利用したハンズオンで学ぶ連載。今回は、源泉からの取り込みと連携先へのアカウント情報連携をmidPointで試します。

» 2023年02月09日 05時00分 公開
[茂木昂士株式会社日立製作所]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 オープンソースソフトウェア(OSS)でありながら「IDガバナンス&管理」(Identity Governance and Administration:IGA)機能を備えた「midPoint」を使って、ハンズオン的にIGAについて学ぶ本連載『midPointで学ぶ「IDガバナンス&管理」(IGA)の基礎』。第2回では、midPointのハンズオン環境を構築しました。

 今回はこのハンズオン環境を使って、「IDライフサイクル管理」および「フルフィルメント」を体験していきます。

IDライフサイクル管理とは

 第1回でも説明されていますが、IDライフサイクル管理とはIDの登録から破棄までのライフサイクルを管理する機能です。IDのライフサイクル管理では下記のように、ユーザーの状態に合わせた作業が必要です。

  • 入社時に、全従業員が利用するサービスのIDを作成する
  • 異動に伴い、一部のサービスへのアクセス権限を削除/付与する
  • 昇進に伴い、サービスの管理権限を付与する
  • 退社の際に、全サービスへのアクセス権を削除する

 IGAでは、これらの状態管理を自動化したり、別のシステム(例えば人事システム)と連動して状態を変更したりするといった機能も提供されています。

midPointにおけるIDライフサイクル管理

 midPointでは、IDライフサイクルを図のように定義しています。

 midPointでは、IDの登録と破棄をそれぞれ「Provisioning」「Deprovisioning」と表現し、昇進や配置転換、プロフィールの変更といったさまざまなID状態のライフサイクルを想定しています。

 ここからはハンズオン環境を用いて、IDライフサイクル管理を説明していきます。

入社時のアカウント情報作成 - ID情報の取り込み/有効化 -

 ここでは「従業員の入社時に人事システムに登録された情報から、新規アカウントを作成する」というユースケースを説明します。人事システムからの情報は図のようにCSV形式で提供され、その情報を基にmidPointでアカウント情報を作成、有効化します。

 取り込み対象のCSVはハンズオン環境のリポジトリに含まれています。組織情報、従業員情報はそれぞれ下記の通りです。

組織情報 (data/midpoint/chapter-3/hr-org.csv)
orgno name parent
1000 Example社
1100 人事部 1000
…… …… ……


従業員情報 (data/midpoint/chapter-3/hr.csv)
empno firstname lastname password orgnum title
001 ありす 安藤 qwe123 1200 部長
002 佐島 qwe123 1210 課長
…… …… …… …… …… ……

 これらの情報をmidPointに取り込むために、コネクターの設定、組織情報および従業員情報のインポートを行います。

midPointコネクターの設定

 midPointでは、源泉からの情報取り込みや他システムとの連携のために、複数のコネクターが用意されています。CSVファイルからmidPointに情報を読み込むにはCSVコネクターを使用します。コネクターの設定はmidPointのウィザードでも可能ですが、今回は設定済みの定義ファイル(「resources/chapter-3/resource-csv-hr.xml」「resources/chapter-3/resource-csv-org.xml」)を用意しているのでこちらを利用します。

 まずはmidPointの管理コンソールから「リソース」→「リソース定義のインポート」にアクセスします。この画面から、CSVコネクターの設定ファイル(resource-csv-hr.xml、resource-csv-org.xml)を選択し、オブジェクトをインポートします。コネクターが正常にインポートされると、「すべてのリソース」に2つのリソース「HR System」(従業員情報)、「HR System - Org」(組織情報)が表示されます。

 表示されたリソースをクリックすると、リソースの詳細情報が表示されます。この状態ではまだコネクターが接続されていないので、「接続テスト」をクリックして接続をテストします。接続が成功すると、CSVから情報が読み込まれます。

組織情報、従業員情報のインポート

 次に、接続されたコネクターから組織情報および従業員情報をインポートします。

 コネクターの設定が完了し、CSVファイルへの接続が完了した段階ではまだ情報はmidPointと連携していません。midPointに連携させるには組織情報、従業員情報をインポートする必要があります。

 まずは組織情報を読み込むため、「HR System - Org」の詳細画面から「ジェネリックス」を選択し、検索対象として「リソース」を選択します。ここには、CSVファイルに記載されている組織情報の一覧が表示されています。ここから全ての組織情報を選択し「インポート」をクリックします。

 インポートが正常に終了すると、midPointに組織情報が反映されます。従業員情報も同じようにインポートします。

 なお今回は手動でインポートしましたが、midPointには「タスク」機能があり、自動で情報のインポートや同期などが行えます。

情報取り込みの確認

 ここでは、インポートされた情報を確認します。

 まずは、組織情報の確認です。midPointの「組織構造」を開くと、インポートされた組織情報が反映され、組織階層も反映されていることを確認できます。

 次は、従業員情報です。「ユーザー」画面で確認できます。

 ユーザーの名前をクリックすると、ユーザーの詳細情報を確認できます。従業員番号や役職といった情報も取り込まれています。

 ここまでで、組織情報、従業員情報がmidPointにインポートされ、管理対象となりました。

他システムへのアカウント情報連携 - フルフィルメント -

 ここからは、作成されたアカウント情報で社内の各システムを利用できるようにするために、フルフィルメントによってアカウント情報を連携させるユースケースを説明します。

 フルフィルメントとはIGAを構成する要素の一つで、アプリケーションや認証基盤などにアカウント情報を自動的に連携させる機能です。midPointでは、搭載されている多彩なコネクターを利用することで、数多くのシステムとアカウント情報の連携が可能です。

 以降、人事システムからインポートしたアカウント情報が、フルフィルメントによって他のアプリケーションに連携されることを確認していきます。

アカウント情報連携のためのコネクター設定

 ハンズオン環境では、図のように全社認証基盤(OpenLDAP)、開発ツール(PostgreSQL)、全社研修システム(CSV)の3つの連携先が用意されています。

 これらの連携先に関するコネクターの設定は「resource-ldap.xml」「resource-database.xml」「resource-csv-learning.xml」という名前で「resources/chapter-3」ディレクトリに準備してあります。これらのファイルをインポートして各種コネクターを設定します。全てのインポートが成功すると、図のようにLDAP(全社認証基盤)、Developer Tools(開発ツール)、Learning System(全社研修システム)のリソースが作成されます。

リソースへのアサイン

 アカウント情報を連携させるには、アカウントに対してリソースをアサインする必要があります。今回はGUI操作によってアサインしますが、所属組織やロールに合わせた自動アサインも可能です。自動アサインに関しては次回以降で詳しく説明します。

 アカウントに対してリソースをアサインするには、対象のアカウントを選択し「アサイン」→「リソース」を選択します。

 テーブルの左下のボタンをクリックすると、アカウントにアサイン可能なリソースが表示されます。アサインしたいリソース(今回はLearning System)を選択し、追加をクリックします。

 アカウントの変更内容を保存すると、リソースへのアサインが完了します。リソースのアサイン状態は、「アサイン」→「すべての直接/間接アサイン」で確認できます。

アカウント情報連携の確認

 次に、リソースにアサインされたアカウントの情報が連携されていることを確認します。

 今回は全社研修システムに対してアカウントをアサインしたので、連携先のCSVファイル「data/midpoint/chapter-3/learning.csv」にアカウント情報が連携されます。内容を確認すると、下記のように氏名や従業員番号、パスワードとアカウントの状態(有効/無効)が連携されていることを確認できます。

empno firstname lastname password enabled
001 ありす 安藤 qwe123 true

監査ログによる変更内容の確認

 次に、監査ログによってアカウント状態の変更を確認します。midPointの「レポート」→「監査ログビューアー」に移動すると、図のようにこれまでの操作が監査ログという形で記録されています。

 それぞれの監査ログには、操作したアカウントや対象となったアカウント、変更内容などが記録されます。今回の例では、アカウント「001」に対してLearning Systemのリソースがアサインされたこと、Learning Systemにアカウント「001」が追加されたことを確認できます。

アカウント情報にリソースがアサインされている

Learning Systemにアカウントが追加されている

退社時のアカウント停止

 最後に、従業員の休職や退社によってアカウントを停止するユースケースについて説明します。アカウントの停止時も、ここまでで設定したフルフィルメントによって、アカウント状態の連携やアカウント情報の削除が各システムに対して自動で行われます。

 アカウントを無効にするには、対象のアカウントの右側にあるボタンから「無効」をクリックします(通常は人事システムのCSVからエントリが自動的に削除され、その内容がmidPointに連携される挙動ですが、今回は管理コンソールからの操作による挙動を示します)。

 アカウントが無効化された状態で再度CSVファイルを確認すると、アカウントの状態が変更されていることを確認できます。

empno firstname lastname password enabled
001 ありす 安藤 qwe123 false

 今回はCSVファイルへの連携だけを試しましたが、ハンズオン環境ではOpenLDAPやPostgreSQLへの連携も可能です。興味がある方は試してみてください。

 このようにmidPointで管理しているアカウントの状態や情報が、各アプリケーションに自動で反映および記録されることで、アカウント管理のコストを削減できます。

まとめ

 第3回では、midPointを利用したIDライフサイクルの管理とフルフィルメントによる連携を紹介しました。第4回では、エンタイトルメント管理による権限の制御や、ロールによるリソースへの自動アサインを紹介します。

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

4AI by @IT - AIを作り、動かし、守り、生かす
Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。