以下の情報は、WebSphere Application Server のセキュリティーに関する概要となります。
IBM WebSphere Application Server では、 Web リソース、Web サービス・エンドポイント、および J2EE 仕様に準拠する Enterprise JavaBeans を保護するため、ポリシー・ベースおよび許可ベースの統合モデルを提供しています。 具体的には、WebSphere Application Server は J2EE 仕様の バージョン 1.4 に準拠し、J2EE Compatibility Test Suite に合格しています。
セキュア・ソケット通信、メッセージの暗号化、およびデータ暗号化をサポートする標準のセキュリティー・ モデルおよびインターフェースは、Java Secure Socket Extension (JSSE) および Java Cryptographic Extension (JCE) です。
アプリケーション・サーバーは、複数層のエンタープライズ・コンピューティング・フレームワークの中核をなす部分です。 IBM WebSphere Application Server は、オープン・アーキテクチャー・パラダイムを採用し、エンタープライズ・ソフトウェア・コンポーネントと統合するプラグイン・ポイントを多数提供します。 プラグイン・ポイントは、J2EE の標準仕様が適用できるところでは必ず、この仕様を基にしています。
紺色の影が付いた背景は、 WebSphere Application Server バージョン 6 と他のビジネス・アプリケーション・コンポーネントとの境界を示します。
LTPA 認証メカニズムは、分散セキュリティー用に設計されています。 ダウンストリーム・サーバーはセキュリティー・トークンを検証できます。また、リバース・セキュア・プロキシー・サーバー とシングル・サインオン (SSO) とのトラスト・アソシエーション関係のセットアップもサポートします。 これについては後述します。 LTPA と LDAP またはカスタム・ユーザー・レジストリー・インターフェースとの組み合わせ以外に、 バージョン 5 またはバージョン 6 は、LocalOS ユーザー・レジストリー・インターフェースを備えた LTPA にも対応しています。
WebSphere Application Server は、J2EE コネクター・アーキテクチャーをサポートし、コンテナー管理認証を提供します。 WebSphere Application Server バージョン 6 は、デフォルトの Java 2 Connector (J2C) のプリンシパルおよび信任状マッピング・モジュールを提供します。 このモジュールは、任意の認証済みユーザーの信任状を、指定したエンタープライズ情報システム (EIS) セキュリティー・ドメインのパスワード信任状にマップします。 このマッピング・モジュールは、Java 2 コネクターおよび JAAS 仕様に従って設計された特別な JAAS ログイン・モジュールです。他のマッピング・ログイン・モジュールも接続できます。
このバージョンは、5.x リリースとの後方互換性を維持していますが、 新規セキュリティー機能を追加しており、新規業界標準になりつつあります。バージョン 5.x 開発環境で作成されたアプリケーションは、バージョン 6 でデプロイできます。Java 2 セキュリティーをバージョン 6 で実行する場合は、バージョン 4.0.x のアプリケーションには特別に注意を払う必要があります。 これは、バージョン 4 アプリケーションは、Java 2 セキュリティーに対応していない場合があるためです。 バックレベル・バージョンからバージョン 6 に移植するためのステップについては、セキュリティー・マイグレーションのセクションを参照してください。
WebSphere Application Server では、 Organization for the Advancement of Structured Information Standards (OASIS) Web サービス・セキュリティー・バージョン 1.0 仕様に基づいて Web サービスを保護することができます。このような標準は、Web サービス環境で交換されるメッセージの保護方法を 規定します。この仕様は、メッセージの保全性と機密性を保護するための中核機構を定義し、セキュリティー関連の要求と メッセージを関連付けるためのメカニズムを提供します。
WebSphere Application Server では、 インターオペラビリティー・モード・オプションにより、WebSphere Application Server バージョン 5.1.1 以降の シングル・サインオン (SSO) 接続が、前のバージョンのアプリケーション・サーバーと相互運用できるようになります。このオプションを選択した場合、WebSphere Application Server は応答に旧スタイルの LtpaToken を追加するため、 このトークン・タイプでのみ機能する他のサーバーに応答を送信することができます。 このオプションは、Web インバウンド・セキュリティー属性の伝搬オプションが使用可能になっている場合にのみ適用されます。シングル・サインオンの詳細については、Web ユーザー認証を最小化するためのシングル・サインオンのインプリメント を参照してください。
それぞれのコンテナーは、2 種類のセキュリティー (宣言セキュリティー とプログラマチック・セキュリティー) に対応しています。 宣言セキュリティーでは、アプリケーションのセキュリティー構造 (データの保全性と機密性、認証要件、セキュリティーの役割、アクセス制御など) が、そのアプリケーション外部の形式で表されます。 特にデプロイメント記述子は、J2EE プラットフォームにおける宣言セキュリティーの主要な手段です。 WebSphere Application Server は、デプロイメント記述子から引き出され、デプロイ担当者と管理者が 1 組の XML ディスクリプター・ファイルで 指定した情報を含む J2EE セキュリティー・ポリシーを維持します。コンテナーは、実行時には XML ディスクリプター・ファイルで定義されたセキュリティー・ポリシーを使用して、データ制約とアクセス制御を実行します。 宣言セキュリティー単独ではアプリケーションのセキュリティー・モデルを表現するのに十分でない場合には、 プログラマチック・セキュリティーがアプリケーション・コードによって使用され、アクセス判断を行うことがあります。 プログラマチック・セキュリティーのアプリケーション・プログラミング・インターフェース (API) は、 Enterprise JavaBeans (EJB) EJBContext インターフェースの 2 つのメソッド (isCallerInRole、 getCallerPrincipal) およびサーブレット HttpServletrequest インターフェースの 3 つのメソッド (isUserInRole、getUserPrincipal、getRemoteUser) で構成されています。
WebSphere Application Server Express では、ローカル OS のユーザー・レジストリーはマッピング機能をサポートしていません。
LTPA 認証メカニズムが構成され、シングル・サインオン (SSO) が使用可能になっていると、 認証済みクライアントに、指定したセキュリティー・ドメイン内のユーザーを表すセキュリティー Cookie が発行されます。
セキュリティー Cookie および基本認証情報がインターセプトされたり再実行されたりするのを防ぐために、 Secure Sockets Layer (SSL) の使用をお勧めします。トラスト・アソシエーションが構成されていると、WebSphere Application Server は、認証済みユーザーの ID を、 セキュア・リバース・プロキシー・サーバーとの間で確立した信頼関係に基づく、セキュリティー信任状にマップすることができます。
セキュリティーが使用可能になっていると、EJB コンテナーは EJB メソッドを起動してアクセス制御を実行します。 認証は、メソッド許可が特定の EJB メソッド用に定義されているかどうかに関係なく 行われます。
Java アプリケーション・クライアントは、いくつかの方法で認証データを提供することができます。 sas.client.props ファイルを使用すると、Java クライアントは、認証を行うのにユーザー ID とパスワードを 使用するか、SSL クライアント証明書を使用するかを指定できます。 クライアント証明書は、sas.client.props ファイル の定義に従って、鍵ファイルまたはハードウェア暗号カードに保管されます。ユーザー ID とパスワードは、 オプションで、sas.client.props ファイルで定義することもできます。
実行時には、Java クライアントはプログラマチック・ログインを実行することも、遅延認証 を実行することもできます。
Java クライアントが、保護されているエンタープライズ Bean に初めて アクセスしている遅延認証では、セキュリティー・ランタイムは、必要な認証データを取得しようとします。 sas.client.props ファイルでの構成設定に応じて、セキュリティー・ ランタイムは、このファイルから認証データを検索するか、ユーザーにプロンプトを出すかのいずれかを行います。 Java クライアントではプログラマチック・ログインを使用することもできます。 WebSphere Application Server は、JAAS プログラミング・モデルをサポートしており、プログラマチック・ログインの方法としては JAAS ログイン (LoginContext) が推奨されています。バージョン 5.x およびバージョン 6 では login_helper request_login ヘルパー関数は使用しないでください。login_helper APT にプログラムされている Java クライアントは、 本バージョンで実行できます。
EJB セキュリティー・コラボレーターは、アクセス・マネージャー・インプリメンテーションを使用して、 役割ベースのアクセス制御を実行します。
アクセス・マネージャーは、デプロイメント記述子から派生したセキュリティー・ポリシーに基づいて許可を決定します。 認証済みのユーザー・プリンシパルは、必要なセキュリティー役割のいずれかを持っている場合に、要求した EJB メソッドへアクセスできます。 EJB コードは、EJBContext メソッドの isCallerInRole および getCallerPrincipal を使用できます。 EJB コードでは、JAAS ログインを実行する JAAS プログラミング・モデル、WSSubject doAs および doAsPrivileged メソッド も使用できます。 doAs および doAsPrivileged PrivilegedAction ブロック内のコードは、サブジェクト ID を使用して実行 されます。 そうでない場合、EJB メソッドは RunAs 構成に応じて、指定した RunAs ID または呼び出し元の ID のいずれかを使用して実行されます。 J2EE RunAs 仕様は Enterprise Bean レベルです。 RunAs ID を指定すると、これがすべての Bean メソッドに適用されます。 IBM RunAs 拡張がバージョン 4.0 で 導入したメソッド・レベルは、引き続き本バージョンでもサポートされています。
連邦情報処理標準 (FIPS) は、米国連邦情報・技術局 (NIST) が、連邦コンピューター・システムのために発行した標準およびガイドラインです。 FIPS は、セキュリティーおよびインターオペラビリティーなど、標準に関する連邦政府の切実な要求がある一方で、 実施可能な業界標準または解決方法が存在しない場合のために開発されました。
WebSphere Application Server には、Java Secure Socket Extension (JSSE) および Java Cryptography Extension (JCE) を含む暗号モジュールが組み込まれています。この暗号モジュールは、FIPS 140-2 認証が行われています。 資料および WebSphere Application Server では、FIPS 認証を受けた IBM JSSE モジュールおよび JCE モジュールは、それぞれ IBMJSSEFIPS および IBMJCEFIPS と呼ばれています。 これは、FIPS モジュールと、IBM JSSE および IBM JCE モジュールとを区別するためです。
詳しくは、連邦情報処理標準 (FIPS) Java セキュア・ソケット拡張機能ファイルの構成 を参照してください。
IBMJCEFIPS 暗号モジュールは、FIPS が承認したアルゴリズムを含んでいます。このアルゴリズムは、IBM JCE モジュール内のアルゴリズムの適正なサブセットを形成しています。