セキュリティの概要

PALポータルは、LoginModule と Policy の実装により、J2EE の認証・承認サービスを利用しています。 認証はユーザー ID により確立して、すべてのユーザー主体を持つ Subject を生成します。 ポータルコンテキスト内で、生成された Subject は org.apache.jetspeed.security.SecurityValve の実装でセッションへ格納されます。 Subject の主体は、適切なリソースへのユーザーアクセスを承認するためなどに使われます。 それにより、AccessController でユーザーのパーミッションを確認することで、JAAS 承認を利用しています。

以下にセキュリティアーキテクチャの概要図を示します。

各コンポーネントはコンポーネント設定ファイルで指定されています。

PALポータルのセキュリティアーキテクチャは JAAS に準拠しています。 必要に応じて、LoginModule や Policy の実装は変更可能です。 PALポータルの実装では、機能拡張しやすいように SPI モデルを採用しています。

認証概要

認証に関して、PALポータルでは Java の LoginModule 実装を利用しています。 LoginModule は、複数の認証システムからユーザー認証ができるように、DefaultLoginModule として柔軟な実装をしています。 DefaultLoginModule 内では、UserManager を利用して、さまざまな認証サービスへアクセスしています。 そのクラスダイアグラムは、以下の図のように、認証サービスへのアクセスを実装しています。

上記のコンポーネントについては、以下のとおりです。

コンポーネント説明
DefaultLoginModulePALポータル標準の LoginModule の実装で、UserManager の authenticate() メソッドを利用しています。 そのメソッドにより、設定された様々な AuthenticationProvider に対して、認証を提供することができます。
UserManager 認証とユーザー管理を提供するコンポーネントです。 AuthenticationProviderProxy や SecurityProvider を通して、様々な AuthenticationProvider が利用することができます。
SecurityProvider SPI の実装で利用可能なセキュリティプロバイダーを提供します。
AuthenticationProviderProxy 複数の AuthenticationProvider 実装のプロキシとして動作します。 AuthenticationProviderProx は、認証およびユーザー管理のために適切な AuthenticationProvider を呼び出すことができます。

承認概要

PALポータルは、主体とパーミッション間の関係を管理するデータベースを利用するための java.security.Policy を実装しています。

PermissionManager は与えられた主体に関連したパーミッションへのアクセスを提供します。

セキュリティサービス

PALポータルでは以下のセキュリティサービスへのインターフェースを提供しています。

  • UserManager: ユーザー管理機能を提供します。
  • GroupManager: グループ管理機能を提供します。
  • RoleManager: ロール管理機能を提供します。
  • PermissionManager: パーミッション管理機能を提供します。