「全社認証基盤を持つエンタープライズ企業の情シスとしてIGAを試す」環境をmidPoint、Docker Composeで構築:midPointで学ぶIDガバナンス&管理(IGA)の基礎(2)
「IDガバナンス&管理」(IGA)についてOSS「midPoint」を利用したハンズオンで学ぶ連載。今回は、IGAを実現するハンズオン環境をmidPointで作ります。
オープンソースソフトウェア(OSS)でありながら「IDガバナンス&管理」(Identity Governance and Administration:IGA)機能を備えた「midPoint」を使って、ハンズオン的にIGAについて学ぶ本連載『midPointで学ぶ「IDガバナンス&管理」(IGA)の基礎』。第1回では、IGAの概要とその必要性について紹介しました。第2回では、そのIGA導入の効果を体感すべく、IGAを実現するハンズオン環境をmidPointで作ります。
midPointのインストール
midPointをインストールするには、バイナリーファイルを用いる方法とDockerイメージを用いる方法があります。後者のDockerイメージを用いる方法は、本記事の後半の「ハンズオン環境を構築してみよう!」で紹介します。
ここではより簡単で、ちょっとmidPointを触ってみたいときに便利な、前者のバイナリーファイルを用いる方法を紹介します。事前準備として、midPointはJavaアプリケーションなので、JDK(midPoint 4.4.3の場合は、OpenJDK 17が推奨)が必要です。
バイナリーファイルを用いる方法は、ファイルをダウンロードして解凍するだけと、非常に簡単です。例えば、本連載で使用するmidPointのバージョン4.4.3のファイル(「midpoint-4.4.3-dist.tar.gz」「midpoint-4.4.3-dist.zip」)は下記リンクからダウンロードできます。
なお最新バージョンは4.5ですが、LTS(Long-Term Support)のバージョンは4.4系なので、本記事では4.4系を使用しています。
解凍後、下記コマンドを実行すると、midPointが起動します。
$ ./bin/start.sh
> bin\start.bat
デフォルトでは、midPointは組み込みDB(H2データベース)をデータストアとして使用するので、設定不要で起動して操作を試せます。ただし、これはプロダクション環境での利用はサポートされておらず、開発やデモ用途などで利用可能なものです。なお、プロダクション環境においては、データベースは「PostgreSQL」が推奨されます。
起動には数分かかります。起動完了後、「http://localhost:8080/midpoint/」にアクセスすると、midPointのGUIのサインイン画面にアクセスできます。
ユーザー名に「administrator」、パスワードに「5ecr3t」と入力してサインインすると、midPointのホーム画面が表示されます。
midPointのGUIでは、行いたい操作に合わせて左側のメニューを選択します。midPointでは、基本的に全ての操作をこのGUIで行えます。プロフィールやパスワードの変更、アクセス要求といった一般ユーザー用の機能から、ユーザー管理やロール管理、リソース管理といったIT管理者用の機能まで、それぞれ「セルフサービス」「管理」としてカテゴライズされて提供されます。
ハンズオン環境の概要
ここからは今回構築するハンズオン環境を見ていきましょう。まずは、今回想定するシナリオの全体像から説明します。
今回皆さんは、Example社の情報システム部に所属する山田さんとして、下図の点線で囲まれたサービス開発部とサービス運用部の従業員のID管理を担当します。サービス開発部とサービス運用部にはそれぞれ1課と2課があり、さまざまな役職を持つ26人の従業員が配属されています。
サービス開発部やサービス運用部では、開発ツールや全社認証基盤、全社研修システムといった複数のシステムを利用しており、今回、これらシステムのID情報を一元管理するために、midPointを利用します。ID情報の大まかな流れとしては、下図のように、人事部からもらった従業員情報、組織情報(CSV形式)をインプットとしてmidPointでID情報を一元管理し、各システムに反映します。
- 開発ツール:主にサービス開発部の従業員が、サービスを開発する上でのタスク管理や進捗(しんちょく)管理に利用する。ID情報はPostgreSQLが保持する
- 全社認証基盤:Example社の全従業員が、各社内サービスへのログインに利用する。アクセス可能なサービスは役職とひも付いたロールで制御されている。ID情報は「OpenLDAP」が保持する
- 全社研修システム:Example社の全従業員が、自身のスキルアップのための研修受講に利用する。ID情報はシステム内部で保持しており、CSVをインポートすることで変更できる
本連載では、ハンズオン環境として、点線で囲まれた部分を構築します。
ハンズオン環境を構築してみよう!
前提として、ここではハンズオン環境のインストールと起動に「docker compose」コマンドを使うので、docker composeコマンドが動作する環境を準備してください。また、ハンズオン環境で使用するリソース類はGitHubの「midpoint-sample-configuration」リポジトリで公開しているので、適宜ご利用ください。
まずは、midpoint-sample-configurationリポジトリをクローンします。
$ git clone https://github.com/Hitachi/midpoint-sample-configuration $ cd midpoint-sample-configuration
次に、docker composeコマンドでハンズオン環境をインストール、起動します。Dockerサービスは立ち上がっているものとします。
$ docker compose up -d
これによって、次のような構成が出来上がります。
midPointには、「http://localhost:8080/midpoint/」でアクセスできます。ユーザー名は「administrator」、パスワードは「5ecr3t」です。なお、midPointのデータストアは、説明の簡易化のために今回はデフォルトの組み込みDB(H2データベース)のままとしています。
全社認証基盤が使用する想定のOpenLDAP(phpLDAPadmin)には、「http://localhost:8081/」でアクセスできます。ログインDNは「cn=admin,dc=example,dc=com」、パスワードは「secret」です。
開発ツールが使用する想定のPostgreSQL(pgAdmin)には、「http://localhost:8082/」でアクセスできます。メールアドレスは「taichi.yamada@example.com」、パスワードは「password」です。
midPointと各種連携先をつなぐコネクターの設定や、Example社の従業員情報、組織情報の取り込みは、次回以降、IGAのユースケースに沿って実施します。
次回は「フルフィルメント」にフォーカス
今回は、midPointのインストール方法を紹介し、ハンズオン環境を構築しました。次回はIGAのユースケースのうち、「フルフィルメント」にフォーカスして、コネクターの設定方法やID情報の連携方法を紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 特権アクセス保護/特権ID管理の本質、歴史、ID管理基盤/IDaaS(ID as a Service)との違い
古くて新しい「特権アクセス保護」について技術的内容を分かりやすく解説する連載。今回は、特権アクセス保護(PAM)の歴史と本質、具体的にどのように機能するのか、ID管理基盤/IDaaS(ID as a Service)との違いなどについて解説する。 - IDaaS分野のリーダーとされるOktaが日本に本格上陸
「IDaaS」と呼ばれるクラウド統合認証基盤の分野における有力企業であるOktaが日本法人を設立した。「クラウド」「デジタルトランスフォーメーション」「ゼロトラスト」をキーワードに、日本でのビジネス展開を本格化する。 - マイクロサービス時代のSSOを実現する「Keycloak」とは
本連載では、近年注目されている認証プロトコル「OpenID Connect」をサポートするオープンソースのシングルサインオン(SSO)ソフトウェア「Keycloak」の活用方法を解説していきます。第1回目は、APIにおける認証/認可の仕組みとKeycloakの概要を紹介します。