Sun GlassFish Enterprise Server 2.1 管理ガイド

認証と承認について

認証と承認は、アプリケーションサーバーセキュリティーの中心的な概念です。ここでは、認証と承認に関連する次の項目について説明します。

エンティティーの認証

「認証」とは、あるエンティティー (ユーザー、アプリケーション、またはコンポーネント) が別のエンティティーが主張している本人であることを確認する方法です。エンティティーは、「セキュリティー資格」を使用して自らを認証します。資格には、ユーザー名、パスワード、デジタル証明書などが含まれます。

通常、認証はユーザー名とパスワードでユーザーがアプリケーションにログインすることを意味していますが、アプリケーションがサーバーのリソースを要求するとき、セキュリティー資格を提供する EJB を指す場合もあります。普通、サーバーやアプリケーションはクライアントに認証を要求しますが、さらにクライアントもサーバーに自らの認証を要求できます。双方向で認証する場合、これを相互認証と呼びます。

エンティティーが保護対象リソースにアクセスを試行する場合、Enterprise Server はそのリソースに対して設定されている認証メカニズムを使用してアクセスを認可するかどうかを決定します。たとえば、ユーザーが Web ブラウザでユーザー名およびパスワードを入力でき、アプリケーションがその資格を確認する場合、そのユーザーは認証されます。それ以降のセッションで、ユーザーはこの認証済みのセキュリティー ID に関連付けられます。

Enterprise Server は、4 種類の認証をサポートします。アプリケーションは、配備記述子で使用する認証タイプを指定します。

表 9–1 Enterprise Server の認証方法

認証方法

通信プロトコル

説明

ユーザー資格の暗号化

BASIC 

HTTP (オプションで SSL) 

サーバーのビルトインポップアップログインダイアログボックスを使用します。 

SSL を使用しないかぎりありません。 

FORM 

HTTP (オプションで SSL) 

アプリケーションが独自仕様のカスタムログインおよびエラーページを提供します。 

SSL を使用しないかぎりありません。 

CLIENT-CERT 

HTTPS (HTTP over SSL) 

サーバーは公開鍵証明書を使用してクライアントを認証します。 

SSL 

DIGEST 

HTTP および SIP 

サーバーは暗号化された応答に基づいてクライアントを認証します。 

SSL および TLS 

シングルサインオンの確認

シングルサインオンとは、1 つの仮想サーバーインスタンスの複数のアプリケーションがユーザー認証状態を共有することを可能にするものです。シングルサインオンによって、1 つのアプリケーションにログインしたユーザーは、同じ認証情報が必要なほかのアプリケーションに暗黙的にログインするようになります。

シングルサインオンはグループに基づいています。配備記述子が同じ「グループ」を定義し、かつ同じ認証方法 (BASIC、FORM、CLIENT-CERT) を使用するすべての Web アプリケーションはシングルサインオンを共有します。

デフォルトでシングルサインオンは、Enterprise Server に定義された仮想サーバーで有効です。

ユーザーの承認

いったんユーザーが認証されると、「承認」のレベルによってどのような操作が可能かが決まります。ユーザーの承認は、ユーザーの「ロール」に基づいています。たとえば、人事管理アプリケーションでは、管理者には社員全員の個人情報を見ることを承認し、社員には自身の個人情報だけを見ることを承認します。ロールの詳細については、「ユーザー、グループ、ロール、およびレルムについて」を参照してください。

JACC プロバイダの指定

JACC (Java Authorization Contract for Containers) は Java EE 仕様の一部で、プラグイン可能な承認プロバイダ用のインタフェースを定義しています。これによって、管理者は認証を行うためにサードパーティー製のプラグインモジュールを設定できます。

デフォルトで、Enterprise Server は JACC 仕様に準拠する単純なファイルベースの承認エンジンを提供します。その他のサードパーティー製の JACC プロバイダを指定することもできます。

JACC プロバイダは JAAS (Java Authentication and Authorization Service) の API を使用します。JAAS によって、サービスが認証およびユーザーに対するアクセス制御を行うことが可能になります。これは、標準 PAM (Pluggable Authentication Module) フレームワークの Java テクノロジバージョンを実装しています。

認証および承認の決定の監査

Enterprise Server は、「監査モジュール」によってすべての認証および承認の決定の監査トレールを提供します。Enterprise Server は、デフォルトの監査モジュールのほか、監査モジュールのカスタマイズ機能も提供します。

メッセージセキュリティーの設定

「メッセージセキュリティー」によって、サーバーは、メッセージレイヤーで Web サービスの呼び出しおよび応答をエンドツーエンドで認証できます。Enterprise Server は、SOAP レイヤーのメッセージセキュリティープロバイダを使用して、メッセージセキュリティーを実装します。メッセージセキュリティープロバイダは、要求メッセージおよび応答メッセージに必要な認証のタイプなどの情報を提供します。サポートされている認証には次のタイプが含まれます。

このリリースには、2 つのメッセージセキュリティープロバイダが付属しています。メッセージセキュリティープロバイダは、SOAP レイヤーの認証用に設定されます。設定可能なプロバイダには、ClientProviderServerProvider があります。

メッセージレイヤーセキュリティーのサポートは、プラグイン可能な認証モジュールの形式で Enterprise Server とそのクライアントコンテナに統合されています。Enterprise Server では、メッセージレイヤーセキュリティーはデフォルトで無効になっています。

メッセージレベルのセキュリティーは、Enterprise Server 全体または特定のアプリケーションあるいはメソッドに対して設定できます。Enterprise Server レベルのメッセージセキュリティーの設定については、第 10 章メッセージセキュリティーの設定を参照してください。アプリケーションレベルのメッセージセキュリティーの設定については、『Developer's Guide』を参照してください。