Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

midPointで構築するシステムの構成例

More than 1 year has passed since last update.

はじめに

midPointアドベントカレンダー3日目はmidPointを利用する場合のID管理システムの構成例をご紹介します。

midPointはDBとしてH2 Databaseを内包しており、単体でも利用可能です。今回のmidPointアドベントカレンダーの中で紹介していくmidPointの機能群を試す程度であれば、フルフィルメント(プロビジョニング)を行う場合は連携するRDBやLDAP等を用意する必要はありますが、基本的に2日目の記事を参考にインストールしたもので十分です。

しかし、実際に運用していくうえでは性能や可用性を考慮する必要があります。本記事では、midPointを実際に運用する上での基本的な構成をご紹介します。また、midPointとアクセス管理プロダクトを組み合わせた統合的な認証基盤として運用するような構成もご紹介します。

単体利用

上述の通り、midPointは単体でもIDライフサイクル管理やポリシー管理、プロビジョニングといったアドベントカレンダー1日目で触れているような機能が一通り利用可能です。プロビジョニングする周辺システムも含めた簡単な図は以下のとおりです。

単体利用.png

単体では、IDを保管するIDリポジトリとして、内包しているH2 Databaseを利用しています。

実運用を想定した構成

データベース

実際にmidPointを運用していく場合、H2 Databaseでは性能的に不利であったり、可用性向上のためにDBの冗長構成を取りたいといった目的で、基本的にH2 Database以外のDBを利用することになるかと思います。外部のDBを使う場合の構成例は以下のとおりです。

データベース.png

上図ではPostgreSQLとしていますが、midPointでは様々なDBプロダクトに対応しています。公式に対応がうたわれているDBプロダクトは以下の表のとおりです。

DB 備考
H2 Database midPointに内包しているデフォルトで利用するDB
PostgreSQL
MariaDB 公式にテストされているのはVer 10.0.28
MySQL Ver 5.6.4以降に対応
Oracle Database 12c
SQL Server 2008, 2014, 2016

PostgreSQLやMariaDB、MySQLに対応しているため、Amazon RDSなどのマネージドサービスも利用可能です。

冗長構成

midPointは冗長構成を取ることもできます。

冗長構成.png

冗長構成とした場合は、タスク(プロビジョニング等のジョブ実行)も分散実行されます。また、万が一タスク実行中のノードがダウンしたような場合でも、残りのノードでそのタスクを実行するといった動作をすることで可用性が確保されています。タスク定義はDBに格納されており、このタスク実行機能は内部的にはJavaのジョブスケジューリングライブラリのQuartzが利用されています。

冗長構成-障害時.png

なお、冗長構成時のDBとしてH2 Databaseも利用することは可能ですが、非推奨とされています。

統合認証基盤

最後にmidPointにアクセス管理プロダクトを組み合わせることで統合認証基盤として活用する構成をご紹介します。ここでは、アクセス管理プロダクトはNRI OpenStandiaとして採用事例の多いKeycloakを例にしています。

統合認証基盤.png

Keycloakを組み合わせることでID管理だけでなく、SSOも実現することができます。midPoint自体も、Spring Securityによるリクエストヘッダ情報での認証に対応しているので、Keycloak GatekeeperやApache HTTP Server+mod_auth_openidcなどのリバプロ型のOIDC/SAMLのクライアントプロキシを利用することによりSSOに対応することができます。

Keycloakについては、OpenStandiaの過去のアドベントカレンダーのKeycloak by OpenStandia Advent Calendar 2017などをご参照ください。

おわりに

以上、midPointを利用したID管理システムの構成のご紹介でした。

midPointは各種DBプロダクトに対応しており、冗長構成も取れ、非機能面でもID管理システムとしての採用に足るプロダクトです。また、Keycloakなどのアクセス管理プロダクトと組み合わせることで統合認証基盤として活用することができます。

参考

n1330
nri
NRIは「コンサルティング」「金融 ITソリューション」「産業 ITソリューション」「IT 基盤サービス」の4事業でお客様のビジネスや快適な社会、暮らしを支えています。※各記事の内容は個人の見解であり、所属する組織の公式見解ではありません。
https://www.nri.com/jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away