Sun Java Enterprise System 2005Q4 技術の概要

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

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