Sun Java Enterprise System 2005Q4 技術の概要

第 3 章 Java Enterprise System 統合機能

この章では、Java ES コンポーネントを 1 つのソフトウェアシステムに統合する際に主な役割を果たす機能を理解するための概念および技術的な背景について説明します。

これらの機能は、異種インフラストラクチャー製品を手動で統合する場合と比較して、Java Enterprise System を使用するとどのような利点が得られるかを理解するのに役立ちます。

この章では、次の機能を取り上げています。

Java Enterprise System 統合インストーラ

Java ES のすべてのコンポーネントは、単一のインストーラを使ってインストールされます。このインストーラにより、インストールとアンインストールの手順の一貫性、およびすべてのコンポーネント間の動作の一貫性を保つことができます。

Java ES インストーラは、Java ES ソフトウェアを特定のホストシステムに転送する統合フレームワークです。インストーラを使用すると、コンピューティング環境内のどのコンピュータにも必要な数の Java ES コンポーネントを選択してインストールできます。インストーラは、インストール対象の特定の Java ES コンポーネントに応じて、一定のインストール時の設定も可能にします。

Java ES インストーラそのものは、分散インストールを実行しません。分散型 Java ES ソフトウェアソリューションを配備するには、Java ES インストーラを使用して、環境内のコンピュータごとに 1 台ずつ、適切なコンポーネントをインストールします。配備アーキテクチャーおよびコンポーネントの依存関係に基づいて、インストールセッションおよび設定手順を適切な順序で使用する必要があります。

このインストーラは、グラフィカルモードおよびテキストベースモードの両方で対話的に実行できる一方、パラメータ駆動型のサイレントインストールモードでも実行できます。このインストーラは英語のほかに、7 つの言語をサポートします。フランス語、ドイツ語、スペイン語、韓国語、簡体字中国語、繁体字中国語、および日本語です。

ここでは、Java ES の統合インストーラの次の点について説明します。詳細については、『Sun Java Enterprise System 2005Q4 インストールガイド(UNIX 版)』を参照してください。

既存のソフトウェアのチェック

インストーラは、インストール先のコンピュータを検証し、すでにインストールされている Java ES コンポーネントを確認します。次に、インストーラは複数のレベルでチェックを実行して、既存のすべてのコンポーネントが、相互に正常に機能するように適切なリリースレベルにあるかどうかを確認します。これにより、互換性がなく、アップグレードまたは削除する必要があるソフトウェアコンポーネントが表示されます。

同様に、インストーラは、J2SE や NSS など、すでにインストールされている Java ES 共有コンポーネント (「共有コンポーネント」を参照) を確認します。インストーラが互換性のないバージョンの共有コンポーネントを検出すると、そのリストが表示されます。インストールを続行すると、インストーラによって、自動的に共有コンポーネントが新しいバージョンにアップグレードされます。

依存性の確認

インストーラは、コンポーネントのチェックを広範囲に行い、ユーザーが選択したインストールコンポーネントが正しく連携して動作するか検証します。

多くのコンポーネントには、ほかのコンポーネントに対する依存性があります。インストーラは、これらの依存性を満たすためのロジックを備えています。このため、インストールするコンポーネントを選択すると、インストーラでは選択したコンポーネントに依存関係のあるコンポーネントおよびサブコンポーネントが自動的に選択されます。

選択したコンポーネント間にローカルな依存関係がある場合、このコンポーネントを選択解除することはできません。ただし、ローカルの依存関係ではない場合は、警告メッセージが表示されますが、別のホストコンピュータ上のコンポーネントによって依存関係が満たされるという前提に基づき、操作は続行できます。

初期設定

多くの Java ES コンポーネントは、初期設定をしてから起動する必要があります。コンポーネントによっては、Java ES インストーラでこの初期設定を実行できます。

インストーラで「今すぐ設定」オプションを選択すると、この初期設定を実行できます。 「あとで設定」オプションを選択して初期設定を省略してソフトウェアをインストールすることもできますが、この場合はインストールの完了後に明示的にインストールした各コンポーネントの初期設定を行う必要があります。

インストーラが初期設定を行うようにする場合は、インストール時に必要な設定情報を入力します。具体的には、管理者 ID やパスワードなど、すべてのコンポーネント製品に共通する一連のパラメータ値を指定できます。

アンインストール

Java Enterprise System には、アンインストールプログラムも用意されています。このプログラムを使用して、Java ES のインストーラによってローカルコンピュータにインストールされたコンポーネントを削除できます。アンインストーラはローカルな依存関係を確認し、そのような依存関係が検出された場合は警告メッセージを出力します。アンインストーラは、Java ES 共有コンポーネントを削除しません。

インストーラと同様、アンインストーラはグラフィカルモード、テキストベースモード、またはサイレントモードで実行できます。

統合されたアイデンティティーサービスとセキュリティーサービス

Java Enterprise System の重要な機能として、統合されたユーザーアイデンティティー管理と、統合された認証および承認フレームワークが挙げられます。

次の各項では、Java Enterprise System から提供される、統合されたアイデンティティーサービスとセキュリティーサービスを理解するための技術的な背景について説明します。

単一アイデンティティー

Java ES 環境では、エンドユーザーに単一統合アイデンティティーが割り当てられています。この 単一アイデンティティーに基づいて、ポータル、Web ページなどの各種リソースへのアクセスや、メッセージング、カレンダ、インスタントメッセージングなどの各種サービスへのアクセスを、ユーザーに許可することができます。

この統合されたアイデンティティーおよびセキュリティー機能は、Directory Server、Access Manager、およびその他の Java ES コンポーネント間の緊密な連携動作に基づいています。

Java ES のサービスやリソースへのユーザーアクセスは、ユーザー固有の情報をユーザーリポジトリまたはディレクトリ内の単一のユーザーエントリ内に格納することで実現されます。このユーザー固有の情報には、一意の名前とパスワード、電子メールアドレス、組織内のロール、Web ページの設定などが含まれます。ユーザーエントリ内の情報を使用して、ユーザーを認証したり、特定リソースへのアクセスを承認したり、そのユーザーに各種のサービスを提供したりできます。

Java Enterprise System の場合、Directory Server が提供するディレクトリ内に、ユーザーエントリが格納されます。ユーザーが Java ES コンポーネントから提供されるサービスを要求すると、そのサービスでは Access Manager を使用してユーザーを認証し、特定リソースへのアクセスを承認します。要求されたサービスは、ユーザーのディレクトリエントリ内のユーザー固有の設定情報を確認します。サービスは、その情報を使用してユーザーが要求した作業を実行します。

次の図は、ユーザーの認証および承認を実行するため、またユーザーに対してサービスを提供するためのユーザーエントリへのアクセスを示しています。

図 3–1 単一ユーザーエントリによる多数のサービスのサポート

複数の Java Enterprise System コンポーネントがディレクトリ内のシングルユーザーエントリと対話する状態を示す図。

このシステムによって可能になる機能の 1 つに、ユーザーが Web ベースですべての Java ES サービスにサインオンできる機能、つまり他のシステムサービスに対しても自動的に認証される機能があります。シングルサインオンとして知られるこの機能は、Java Enterprise System が提供する強力な機能のうちの 1 つです。

認証とシングルサイオン

Java ES の認証および承認サービスは、Access Manager によって提供されます。Access Manager は、Directory Server 内の情報を使用することで、ユーザーと Java ES Web サービスまたは企業内のその他の Web ベースのサービスとの対話を仲介します。

Access Manager は、ポリシーエージェントと呼ばれる外部コンポーネントを使用します。ポリシーエージェントは、サービスをホストする Web サーバーまたは Access Manager によってセキュリティー保護されているリソースにプラグインとして追加されます。ユーザーがセキュリティー保護されたリソースに対する要求を送信したときに、ポリシーエージェントは Access Manager の代わりに対話を仲介します。Portal Server や Communications Express といった一部の Java ES コンポーネントでは、Access Manager のサブコンポーネントによってポリシーエージェントの機能が提供されます (「Sun Java System Access Manager 7 2005Q4」を参照)。

認証

Access Manager には、HTTP または HTTPS を介して企業内の Web サービスへのアクセスを要求したユーザーのアイデンティティーを検証する認証サービスが含まれています。たとえば、企業の従業員が同僚の電話番号を調べる必要がある場合に、ブラウザを使用してその企業のオンライン電話帳にアクセスします。電話帳サービスにログインするには、ユーザーが自分のユーザー ID とパスワードを入力する必要があります。

認証が行われる順序を図 3–2 に示します。ポリシーエージェントは、電話帳へのログオン要求を仲介し (1)、認証サービスに要求を送信します(2)。認証サービスでは、Directory Server に格納されている情報と照合して、ユーザー ID とパスワードを確認します (3)。ログイン要求が有効と認められると、そのユーザーは認証され (4)、(5)、および (6)、企業の電話帳が従業員に表示されます (7)。ログイン要求が有効と認められない場合は、エラーが生成されて認証に失敗します。

認証サービスは、証明書ベースの HTTPS を介した認証もサポートします。

図 3–2 認証順序

Web ブラウザ、ポリシーエージェント、認証サービス、セッションサービス、および Directory Server を使用する認証の順序を示す図。

シングルサインオン

前の段落で説明した認証の例では、重要な手順を説明しています。ユーザーの認証要求が検証されると、図 3–2 に示すように Access Manager のセッションサービスが起動されます (4)。セッションサービスによってセッショントークンが生成され、ここにユーザーのアイデンティティー情報およびトークン ID が保持されます (5)。セッショントークンはポリシーエージェントに返され (6)、さらに認証要求を発行したブラウザに Cookie として転送されます (7)。

認証されたユーザーがセキュリティー保護された別のサービスにアクセスしようとすると、ブラウザはセッショントークンを対応するポリシーエージェントに渡します。ポリシーエージェントはセッションサービスを使用して、そのユーザーの以前の認証が現在も有効であることを確認します。 これにより、ユーザー ID およびパスワードの再入力を求めずに、そのユーザーに対して別のサービスへのアクセスが許可されます。

したがって、ユーザーは 1 回のサインオンだけで、Java Enterprise System が提供する Web ベースの複数のサービスから認証されます。シングルサインオン認証は、ユーザーが明示的にサインオフするか、セッションが期限切れになるまで有効です。

承認

Access Manager には、Java ES 環境の Web ベースのリソースに対するアクセス制御機能を提供するポリシーサービスも含まれています。ポリシーとは、特定の条件下で特定のリソースへのアクセスが承認されるユーザーを記述したルールのことです。次の図に、承認が行なわれる順序を示します。

図 3–3 承認順序

本文で説明した、Web ブラウザ、ポリシーエージェント、ポリシーサービス、および Directory Server を使用する承認の順序を示す図。

認証されたユーザーが Access Manager によってセキュリティー保護されたリソースに対する要求を発行すると (1)、ポリシーエージェントはポリシーサービスに通知します (2)。 ポリシーサービスでは、Directory Server の情報を使用して (3)、そのユーザーにリソースへのアクセスポリシーがあるかどうかを確認するために、そのリソースを管理するアクセスポリシーを評価します (4)。ユーザーにアクセス権がある場合は(5)、リソース要求が受け入れられます (6)。

Access Manager を使用すると、1 つの企業内のポリシーを定義、変更、付与、取り消し、および削除することができます。ポリシーは Directory Server に格納され、組織エントリのポリシー関連の属性によって設定されます。ロールは、ユーザーに対して定義したり、ポリシー定義に組み込んだりできます。

ポリシーを適用するのは、Access Manager のポリシーエージェントの役目です。ポリシーサービスがアクセス要求を拒否すると、ポリシーエージェントは要求を発行したユーザーがセキュリティー保護されたリソースへアクセスすることを禁止します。

この章の重要な用語

この節では、この章で使用されている重要な技術用語について説明します。ここでは、用語間の関係や Java Enterprise System の文脈でどのように使用されているかの説明に重点を置いています。

ディレクトリ

データの書き込みよりも読み取りに対して最適化された特殊なデータベース。ほとんどのディレクトリは、業界標準のプロトコルである LDAP (Lightweight Directory Access Protocol) に基づいています。

ポリシー

特定の条件下で特定のリソースへのアクセスが承認されるユーザーを記述したルール。このルールは、ユーザーのグループまたは組織内のロールに基づいて決められることもあります。

単一アイデンティティー

Java Enterprise System ディレクトリ内の単一ユーザーエントリに基づいてユーザーが所有するアイデンティティー。ユーザーは、この単一のユーザーエントリに基づいて、ポータルなどの各種の Java Enterprise System リソース、Web ページ、さらにメッセージング、カレンダ、インスタントメッセージングなどのサービスへのアクセスが許可されます。

シングルサインオン

分散型システム内のあるサービスに対するユーザー認証を、システム内のほかのサービスにも自動的に適用できるようにする機能。