この章では、Java ES コンポーネントを 1 つのソフトウェアシステムに統合する際に主な役割を果たす機能を理解するための概念および技術的な背景について説明します。これらの機能は、別のインフラストラクチャー製品を手動で統合する場合と比較した、Java ES を使用した場合の利点を理解するのに役立ちます。
この章は、次の節で構成されます。
Java ES のすべてのコンポーネントは、単一のインストーラを使ってインストールされます。Java ES インストーラは、Java ES ソフトウェアを特定のホストシステムに転送します。インストーラを使用すると、コンピューティング環境内の特定のホストに必要な数の Java ES コンポーネントを選択してインストールできます。インストーラは、インストール対象の特定の Java ES コンポーネントに応じて、一定のインストール時の設定も可能にします。
Java ES インストーラそのものは、分散インストールを実行しません。分散型 Java ES ソフトウェアソリューションを配備するには、Java ES インストーラを使用して、環境内のコンピュータごとに 1 台ずつ、適切なコンポーネントをインストールします。配備アーキテクチャーおよびコンポーネントの依存関係に基づいて、インストールセッションおよび設定手順を適切な順序で使用する必要があります。
このインストーラは、グラフィカルモードおよびテキストベースモードの両方で対話的に実行できる一方、パラメータ駆動型のサイレントインストールモードでも実行できます。このインストーラは英語のほかに、次の言語をサポートします。フランス語、ドイツ語、日本語、韓国語、スペイン語、簡体字中国語、および繁体字中国語です。
このセクションでは、Java ES の統合インストーラについて説明します。詳細については、『Sun Java Enterprise System 5 Update 1 Installation Guide for UNIX 』を参照してください。
インストーラは、インストール先のホストを検証し、すでにインストールされている Java ES コンポーネントを確認します。次に、インストーラは複数のレベルでチェックを実行して、既存のすべてのコンポーネントが、相互に正常に機能するように適切なリリースレベルにあるかどうかを確認します。これにより、互換性がなく、アップグレードまたは削除する必要があるソフトウェアコンポーネントが表示されます。
同様に、インストーラは、J2SE や NSS など、すでにインストールされている Java ES 共有コンポーネントを確認し、互換性のない共有コンポーネントを検出すると、その一覧が表示されます (「共有コンポーネント」を参照)。インストールを続行すると、インストーラによって、自動的に共有コンポーネントが新しいバージョンにアップグレードされます。
インストーラは、コンポーネントのチェックを広範囲に行い、ユーザーが選択したインストールコンポーネントが正しく連携して動作するか検証します。多くのコンポーネントには、ほかのコンポーネントに対する依存性があります。このため、インストールするコンポーネントを選択すると、インストーラでは選択したコンポーネントに依存関係のあるコンポーネントおよびサブコンポーネントが自動的に選択されます。選択したコンポーネント間にローカルな依存関係がある場合、このコンポーネントを選択解除することはできません。ただし、ローカルの依存関係ではない場合は、警告メッセージが表示されますが、別のホストコンピュータ上のコンポーネントによって依存関係が満たされるという前提に基づき、操作は続行できます。
多くの Java ES コンポーネントは、初期設定をしてから起動する必要があります。コンポーネントによっては、Java ES インストーラでこの初期設定を実行できます。
インストーラで「今すぐ設定」オプションを選択すると、この初期設定を実行できます。「あとで設定」オプションを選択して初期設定を省略してソフトウェアをインストールすることもできますが、この場合はインストールの完了後にインストールした各コンポーネントの初期設定を明示的に行う必要があります。
インストーラが初期設定を行うようにする場合は、インストール時に必要な設定情報を入力します。具体的には、管理者 ID やパスワードなど、すべてのコンポーネント製品に共通する一連のパラメータ値を指定できます。
Java ES には、アンインストールプログラムも用意されています。このプログラムを使用して、Java ES のインストーラによってローカルコンピュータにインストールされたコンポーネントを削除できます。アンインストーラはローカルな依存関係を確認し、依存関係が検出された場合は警告メッセージを出力します。アンインストーラは Java ES 共有コンポーネントを削除しません。インストーラと同様、アンインストーラはグラフィカルモード、テキストベースモード、またはサイレントモードで実行できます。
Java ES には、システムサービスをリアルタイムで監視する監視機能が含まれています。監視は、Sun Java System Monitoring Framework (共有コンポーネント (shared component))、および Sun Java System Monitoring Console (製品コンポーネント) によって実装されます。Monitoring Framework は自動的に設定および有効にされ、インストールされた各 Java ES コンポーネントのデータを収集します。Monitoring Console は監視対象データを表示するために使用するグラフィカルインタフェースです。Monitoring Console は Java ES のインストール中に選択可能なコンポーネントで、Monitoring Framework は自動的にインストールされます。
監視とは、実行時データを収集、公開し、サービス品質基準の計算を行うプロセスで、それによりシステム管理者はパフォーマンスを評価したり、警告メッセージを受け取ることができます。実行時の運用中に、管理者は Monitoring Console と対話してパフォーマンス統計を表示したり、しきい値を設定して動的に監視したり、カスタムジョブを定義したり、警告を確認したりします。
Java ES の重要な機能として、統合されたユーザーアイデンティティー管理と、統合された認証および承認フレームワークが挙げられます。この項では、Java ES から提供される、統合されたアイデンティティーサービスとセキュリティーサービスを理解するための技術的な背景について説明します。
Java ES 環境では、エンドユーザーに単一統合アイデンティティーが割り当てられています。この単一アイデンティティー (single identity)に基づいて、ポータル、Web ページなどの各種リソースへのアクセスや、メッセージング、カレンダ、インスタントメッセージングなどの各種サービスへのアクセスを、ユーザーに許可することができます。
この統合されたアイデンティティーおよびセキュリティー機能は、Directory Server、Access Manager、およびその他の Java ES コンポーネント間の緊密な連携動作に基づいています。
Java ES のサービスやリソースへのユーザーアクセスは、ユーザー固有の情報をユーザーリポジトリまたはディレクトリ内の単一のユーザーエントリ内に格納することで実現されます。通常、このユーザー固有の情報には、一意の名前とパスワード、電子メールアドレス、組織内のロール、Web ページの設定などのデータが含まれます。ユーザーエントリ内の情報を使用して、ユーザーを認証したり、特定リソースへのアクセスを承認したり、そのユーザーに各種のサービスを提供したりできます。
Java ES の場合、Directory Server が提供するディレクトリ内に、ユーザーエントリが格納されます。ユーザーが Java ES コンポーネントから提供されるサービスを要求すると、そのサービスでは Access Manager を使用してユーザーを認証し、特定リソースへのアクセスを承認します。要求されたサービスは、ユーザーのディレクトリエントリ内のユーザー固有の設定情報を確認します。サービスは、その情報を使用してユーザーが要求した作業を実行します。
次の図は、ユーザーの認証および承認を実行するため、またユーザーに対してサービスを提供するためのユーザーエントリへのアクセスを示しています。
このシステムによって可能になる機能の 1 つに、ユーザーが Web ベースですべての Java ES サービスにサインオンできる機能、つまり他のシステムサービスに対しても自動的に認証される機能があります。シングルサインオンとして知られるこの機能は、Java ES が提供する強力な機能のうちの 1 つです。
Java ES の認証および承認サービスは、Access Manager によって提供されます。Access Manager は、Directory Server 内の情報を使用することで、ユーザーと Java ES Web サービスまたは企業内のその他の Web ベースのサービスとの対話を仲介します。
Access Manager は、ポリシーエージェントと呼ばれる外部コンポーネントを使用します。ポリシーエージェントは、サービスをホストする Web サーバーまたは Access Manager によってセキュリティー保護されているリソースにプラグインとして追加されます。ユーザーがセキュリティー保護されたリソースに対する要求を送信したときに、ポリシーエージェントは Access Manager の代わりに対話を仲介します。Portal Server などの一部の Java ES コンポーネントでは、Access Manager SDK のサブコンポーネントによってポリシーエージェントの機能が提供されます。
Access Manager には、HTTP または HTTPS を介して企業内の Web サービスへのアクセスを要求したユーザーのアイデンティティーを検証する認証サービスが含まれています。たとえば、企業の従業員が同僚の電話番号を調べる必要がある場合に、ブラウザを使用してその企業のオンライン電話帳にアクセスします。電話帳サービスにログインするには、ユーザーが自分のユーザー ID とパスワードを入力する必要があります。
認証が行われる順序を図 3–2 に示します。ポリシーエージェントは、電話帳へのログオン要求を仲介し (1)、認証サービスに要求を送信します(2)。認証サービスでは、Directory Server に格納されている情報と照合して、ユーザー ID とパスワードを確認します (3)。ログイン要求が有効と認められると、そのユーザーは認証され (4)、(5)、および (6)、企業の電話帳が従業員に表示されます (7)。ログイン要求が有効と認められない場合は、エラーが生成されて認証に失敗します。
認証サービスは、証明書ベースの HTTPS を介した認証もサポートします。
前の段落で説明した認証の例では、重要な手順を説明しています。ユーザーの認証要求が検証されると、図 3–2 に示すように Access Manager のセッションサービスが起動されます (4)。セッションサービスによってセッショントークンが生成され、ここにユーザーのアイデンティティー情報およびトークン ID が保持されます (5)。セッショントークンはポリシーエージェントに返され (6)、さらに認証要求を発行したブラウザに Cookie として転送されます (7)。
認証されたユーザーがセキュリティー保護された別のサービスにアクセスしようとすると、ブラウザはセッショントークンを対応するポリシーエージェントに渡します。ポリシーエージェントはセッションサービスを使用して、そのユーザーの以前の認証が現在も有効であることを確認します。これにより、ユーザー ID およびパスワードの再入力を求めずに、そのユーザーに対して別のサービスへのアクセスが許可されます。
したがって、ユーザーは 1 回のサインオンだけで、Java ES が提供する Web ベースの複数のサービスから認証されます。シングルサインオン認証は、ユーザーが明示的にサインオフするか、セッションが期限切れになるまで有効です。
Access Manager には、Java ES 環境の Web ベースのリソースに対するアクセス制御機能を提供するポリシーサービスも含まれています。ポリシーとは、特定の条件下で特定のリソースへのアクセスが承認されるユーザーを記述したルールのことです。次の図に、承認が行なわれる順序を示します。
認証されたユーザーが Access Manager によってセキュリティー保護されたリソースに対する要求を発行すると (1)、ポリシーエージェントはポリシーサービスに通知します (2)。ポリシーサービスでは、Directory Server の情報を使用して (3)、そのユーザーにリソースへのアクセスポリシーがあるかどうかを確認するために、そのリソースを管理するアクセスポリシーを評価します (4)。ユーザーにアクセス権がある場合は(5)、リソース要求が受け入れられます (6)。
Access Manager を使用すると、1 つの企業内のポリシーを定義、変更、付与、取り消し、および削除することができます。ポリシーは Directory Server に格納され、組織エントリのポリシー関連の属性によって設定されます。ロールは、ユーザーに対して定義したり、ポリシー定義に組み込んだりできます。
ポリシーを適用するのは、Access Manager のポリシーエージェントの役目です。ポリシーサービスがアクセス要求を拒否すると、ポリシーエージェントは要求を発行したユーザーがセキュリティー保護されたリソースへアクセスすることを禁止します。
この節では、この章で使用されている重要な技術用語について説明します。ここでは、Java ES の文脈でどのように使用されているかの説明に重点を置いています。
データの書き込みよりも読み取りに対して最適化された特殊なデータベース。ほとんどのディレクトリは、業界標準のプロトコルである LDAP (Lightweight Directory Access Protocol) に基づいています。
特定の条件下で特定のリソースへのアクセスが承認されるユーザーを記述したルール。この規則は、組織内のユーザーグループまたはロールに基づいて規定することができます。
Java ES ディレクトリ内の単一ユーザーエントリに基づいてユーザーが所有するアイデンティティー。この 1 つのユーザーエントリに基づき、ユーザーは、ポータルや Web ページなどの各種 Java ES リソースや、メッセージング、カレンダ、およびインスタントメッセージングなどのサービスにアクセスできます。