Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

13.1.2 レルムを使用したユーザ管理とユーザマッピング

ここでは,統合ユーザ管理で使用する概念である,レルムとユーザマッピングについて説明します。

<この項の構成>
(1) レルム(Realm)
(2) レルム間のユーザマッピング

(1) レルム(Realm

レルムとは,同一の認証ポリシーを適用する範囲のことです。業務サービスを提供するアプリケーションは,提供するサービスの要件に従って,そのサービスを利用するユーザを区別します。ユーザを区別するための処理は,一般に認証処理と呼ばれます。認証処理は,サービスを利用するユーザを区別するための認証メカニズムと,そのためのユーザ認証データベース(ユーザ認証リポジトリ)によって分類できます。どのような認証メカニズム(群)を利用し,どのようなユーザをユーザ認証データベースに登録するかといった認証ポリシーを決定するのは,システムを管理するシステム管理者の仕事です。

単一のサービスを提供するシステムを構築する場合にはあまり問題になりませんが,多数のサービスを提供するシステムを構築する場合,どの範囲でどのような認証ポリシーを適用してシステムを運用するかという検討が必要です。Webシステムでは,同一の認証ポリシーを適用する範囲をレルムと呼び,それぞれのレルムを識別する名称のことをレルム名と呼びます。あるレルムで認証されたユーザは,該当レルム内でそのユーザを一意に識別する識別子(ユーザID)を持っています。

同じユーザ管理要件を持つ複数のアプリケーションは,一つのレルムで運用できます。新たにすべてのサービスを構築する場合,すべてのサービスを一つのレルムにして,認証されたユーザの持つセキュリティ属性によって各種のサービスに対してコントロールするようにできれば管理しやすいのですが,現実にはなかなかそのようなシステムの構築はされません。社内メールではメールのID,人事システムでは従業員番号,資材システムには部署コードでログインするといったように,企業システムにはすでに多くのレルムがあり,これらは別々に管理運用されています。

管理者は,Cosminexusを使用してこれらのサービスの統合をする場合,何のためにそのレルムが必要なのか分析し,運用管理を簡単にするためにできるだけ少ないレルムで運用できるように,レルムの統廃合を検討してください。レルムの運用例を次の図に示します。

図13-2 レルムの運用例

[図データ]

(2) レルム間のユーザマッピング

業務サービスを提供するアプリケーションは,ユーザの情報が必要になると,まずエンドユーザにユーザIDとパスワードの入力を求め,それを基にユーザを認証します。一度受けた認証の結果は,ログアウトするまで保持されます。ただし,ユーザIDおよびパスワードが異なるアプリケーションに続けてログインしようとすると,そのたびにアプリケーションからユーザIDとパスワードの入力を求められます。つまり,一度一つのアプリケーションで認証を受けたユーザであっても,異なるレルムで管理されているアプリケーションにアクセスするためには,そのつど認証を受ける必要があります。

これに対して,あるレルムでログインしたユーザが,ほかのレルムでどのユーザとして扱われるのかが分かれば,レルムが異なるJ2EEアプリケーションにログインするたびにユーザIDとパスワードを入力する必要はなくなります。統合ユーザ管理フレームワークでは,この問題を解決するために,あるレルムでログインしたユーザをほかのレルムのユーザにマッピングするユーザマッピングを実現します。

ユーザマッピングとは,元のレルムでの認証が成功したという認証状態が引き継がれていれば,自動的にほかのレルムにマッピングしてユーザ認証をするものです。ユーザマッピングをする場合,Cosminexusのシステム管理者が,あるレルムのユーザとほかのレルムのユーザとのマッピング情報をあらかじめシステムに定義しておきます。

次の図に示すようなユーザマッピングの例では,勤休管理サービスで認証されたユーザ「USER3」に対して,資材発注サービスのユーザ「dev_3」のマッピングを定義しておきます。これによって,勤休管理サービスに「USER3」として認証されたユーザは,資材発注サービスへのログイン操作をしなくても自動的に該当サービスに対して「dev_3」として認証されます。

図13-3 ユーザマッピングの例

[図データ]