Cosminexus V9 アプリケーションサーバ 機能解説 セキュリティ管理機能編

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

5.2.3 Java標準仕様(JAAS)に準拠したユーザ認証の概要

今までの業務システムのWeb化では,従来の業務システムが持っていたユーザ認証機構をWebのサービスから独自のインタフェースで呼び出していました。また,最初からJavaEEの技術技術で構築されるWeb業務サービスも,各社のアプリケーションサーバが提供する独自のユーザ認証機構を使って構築されてきました。これらのインタフェースの違いは,サービスを統合する場合の大きな障害になっていました。しかし,Javaの標準ユーザ認証の仕様としてJAAS(Java Authentication and Authorization Service) 1.0が決まり,現在ではJavaEEの技術で構築されるWeb業務サービスのユーザ認証の標準となっています。

<この項の構成>
(1) 統合ユーザ管理フレームワークと個別のユーザ管理の関連
(2) 標準ログインモジュールの概要

(1) 統合ユーザ管理フレームワークと個別のユーザ管理の関連

JAASでは,アプリケーションが認証を要求する側のインタフェース(API:アプリケーションプログラミングインタフェース)と,その要求を受け認証処理をする側のインタフェース(SPI:サービスプロバイダインタフェース)を規定しています。認証処理をする側のモジュールをログインモジュールといいます。APIとSPIの関係を次の図に示します。

図5-4 APIとSPIの関係

[図データ]

Application Serverでは,標準でパスワード認証の機能を持つ標準ログインモジュールを提供しています。この標準ログインモジュールを利用して,JAASのAPIを使用するJSP/サーブレットで作成されたJ2EEアプリケーションのユーザ管理ができます。

標準ログインモジュールを使用すれば,アプリケーション開発者は,独自に認証モジュールを開発する必要はありません。また,モジュールはスタック可能なので,標準ログインモジュールと連携する拡張認証モジュールを容易に追加できます。さらに,完全に独自認証機能を必要とするアプリケーションでは,容易に標準ログインモジュールを独自認証モジュールに置き換えて使用できます。これによって,JAASを使用してユーザ認証をしているアプリケーションプログラムを簡単にApplication Serverで統合できるようになります。

これを,JAAS対応ユーザ管理と呼びます。JAAS対応ユーザ管理の概要を次の図に示します。なお,図中のユーザ情報リポジトリとは,認証処理に必要なユーザ情報が格納されているリポジトリです。

図5-5 JAAS対応ユーザ管理の概要

[図データ]

統合ユーザ管理フレームワークに従って,JAAS対応ユーザ管理を使用すると,ある業務サービスで認証されたユーザを,別の業務サービスのユーザにマッピングして認証要求する,ユーザマッピングの機能を利用できます。また,独自のユーザ情報リポジトリを利用する場合でも,カスタムログインモジュールを作成すれば,その業務サービスも含めたシングルサインオンが実現できます。ユーザマッピングによるシングルサインオンの概要を次の図に示します。なお,図中のシングルサインオン情報リポジトリとは,シングルサインオンに必要なマッピング情報が格納されているリポジトリです。

図5-6 ユーザマッピング機能の概要

[図データ]

(2) 標準ログインモジュールの概要

標準ログインモジュールは,パッケージjavax.security.auth.spiに含まれるLoginModuleインタフェースの実装クラスです。実現する認証方法に応じて使い分けられます。

標準ログインモジュールの特徴を次に示します。

既存のユーザ情報(LDAP情報またはデータベース情報)を利用したユーザ認証ができます。
標準ログインモジュールでは,ユーザ認証に使用するユーザ情報を格納するリポジトリとしてLDAPディレクトリサーバまたはデータベース(RDB)を使用できます。
LDAPディレクトリサーバを使用する場合,標準のユーザ管理リポジトリのDIT(Directory Information Tree)の構造をApplication Serverが規定しています。また,すでにLDAPを導入しているときには,その情報を利用できるように簡単にカスタマイズできます。なお,DITとは,ユーザや組織の情報をツリー構造で管理するためのLDAPの仕組みです。詳細については,「5.2.4 統合ユーザ管理で使用するユーザ情報の管理方法」を参照してください。
認証方式としては,証明書を使用した認証やパスワード認証ができます。認証方式は,標準ログインモジュールの種類によって異なります。

ユーザ情報を参照できます。
ユーザ認証が成功した場合に,ログインユーザについての情報を参照できます。
JAASでは,認証が成功すると認証したユーザの情報をCredentialとしてSubjectに設定することが規定されています。また,これを要求元のアプリケーションからjava.util.setインタフェースで参照するための一般的なメソッド(getPublicCredentialsメソッドおよびgetPrivateCredentialsメソッド)が規定されています。
標準ログインモジュールでは,ユーザ情報を参照するためのインタフェースを提供しています。このインタフェースでは,コンフィグレーションに従って,ユーザの情報をApplication Serverが提供するUserAttributesインタフェースで扱うオブジェクトとして,Credentialに設定します。アプリケーションでは標準のインタフェースでこのオブジェクトを取り出し,該当オブジェクトのgetAttributeメソッドに属性名を指定して呼び出すことで,必要なユーザ情報を取得できます。また,属性名の別名(エイリアス)を指定して,情報を取得することもできます。

シングルサインオンを実現できます。
標準ログインモジュールは,シングルサインオンに対応できます。
なお,シングルサインオンを実現する場合,ユーザ情報を管理しているリポジトリの種類と関係なく,LDAPディレクトリサーバが必要です。