WebSphere Application Server - Express, Version 6.0.x   
             オペレーティング・システム: AIX , HP-UX, Linux, Solaris, Windows

             目次と検索結果のパーソナライズ化

セキュリティー

以下の情報は、WebSphere Application Server のセキュリティーに関する概要となります。

IBM WebSphere Application Server は、重要な Java 2 Platform Enterprise Edition (J2EE) リソースおよび管理リソースを保護するためのセキュリティーのインフラストラクチャーおよびメカニズムを提供します。 また、以下のような、企業のエンドツーエンド・セキュリティー要件に対応しています。 IBM WebSphere Application Server のセキュリティーは業界標準に基づき、オープン・アーキテクチャーを採用しており、以下を含むエンタープライズ情報システム (EIS) とのセキュアな接続およびインターオペラビリティーを確保します。 WebSphere Application Server では、以下のセキュリティー・プロバイダーもサポートされています。

業界標準ベース

IBM WebSphere Application Server では、 Web リソース、Web サービス・エンドポイント、および J2EE 仕様に準拠する Enterprise JavaBeans を保護するため、ポリシー・ベースおよび許可ベースの統合モデルを提供しています。 具体的には、WebSphere Application Server は J2EE 仕様の バージョン 1.4 に準拠し、J2EE Compatibility Test Suite に合格しています。

WebSphere Application Server のセキュリティーは、OS プラットフォーム、Java 仮想マシン (JVM)、および Java 2 セキュリティーの上に構築される階層化アーキテクチャーです。このセキュリティー・モデルは、以下を含む豊富なセキュリティー・テクノロジーを駆使します。
  • Java 2 セキュリティー・モデル。システム・リソースに対し、ポリシーおよび許可をベースにした、きめの細かいアクセス制御を提供します。
  • Common Secure Interoperability Version 2 (CSIv2) セキュリティー・プロトコル。Secure Authentication Services (SAS) セキュリティー・プロトコルもサポートされています。 どちらのプロトコルも、以前の WebSphere Application Server のリリースでサポートされています。 CSIv2 は J2EE 1.4 仕様の必須要素であり、さまざまなベンダーのアプリケーション・サーバー間のインターオペラビリティー、 およびエンタープライズ CORBA サービスとのインターオペラビリティーには不可欠です。
  • Java アプリケーション、サーブレット、およびエンタープライズ Bean 用の Java Authentication and Authorization Service (JAAS) プログラミング・モデル。
  • Enterprise Information Systems へのアクセスをサポートするリソース・アダプターに接続するため の J2EE コネクター・アーキテクチャー。

セキュア・ソケット通信、メッセージの暗号化、およびデータ暗号化をサポートする標準のセキュリティー・ モデルおよびインターフェースは、Java Secure Socket Extension (JSSE) および Java Cryptographic Extension (JCE) です。

オープン・アーキテクチャー・パラダイム

アプリケーション・サーバーは、複数層のエンタープライズ・コンピューティング・フレームワークの中核をなす部分です。 IBM WebSphere Application Server は、オープン・アーキテクチャー・パラダイムを採用し、エンタープライズ・ソフトウェア・コンポーネントと統合するプラグイン・ポイントを多数提供します。 プラグイン・ポイントは、J2EE の標準仕様が適用できるところでは必ず、この仕様を基にしています。

紺色の影が付いた背景は、 WebSphere Application Server バージョン 6 と他のビジネス・アプリケーション・コンポーネントとの境界を示します。

WebSphere Application Server では、Simple WebSphere Authentication Mechanism (SWAM) および Lightweight Third Party Authentication (LTPA) メカニズムが提供されています。 1 つの認証メカニズムのみを、 WebSphere Application Server のセキュリティー・ドメインのアクティブな認証メカニズムになるように構成することができます。 1 つのユーザー・レジストリー・インプリメンテーションだけを、WebSphere Application Server のセキュリティー・ドメイン のアクティブなユーザー・レジストリーになるように構成することができます。WebSphere Application Server の ユーザー・レジストリー・インプリメンテーションとしては、UNIX、Windows、および i5/OS ローカル OS と Lightweight Directory Access Protocol (LDAP) があります。また、この製品には、ファイル・ベースおよび Java database connectivity (JDBC) ベースのユーザー・レジストリー参照インプリメンテーションもあります。 この製品は、認証メカニズムとユーザー・レジストリーの柔軟な組み合わせをサポートしています。 SWAM は簡単に構成できるため、単一のアプリケーション・サーバー環境で有用です。 LTPA は、認証済みのユーザーのセキュリティー・トークンを生成します。 ID アサーションが使用可能になっている場合は、 分散環境で SWAM を使用することもできます。ID アサーション・フィーチャーは、CSIv2 セキュリティー・プロトコルでのみ 使用可能です。
注: SWAM は WebSphere Application Server のバージョン 6.1 では 推奨されません。また将来のリリースでは除去される予定です。

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 に移植するためのステップについては、セキュリティー・マイグレーションのセクションを参照してください。

Web サービス・セキュリティー

WebSphere Application Server では、 Organization for the Advancement of Structured Information Standards (OASIS) Web サービス・セキュリティー・バージョン 1.0 仕様に基づいて Web サービスを保護することができます。このような標準は、Web サービス環境で交換されるメッセージの保護方法を 規定します。この仕様は、メッセージの保全性と機密性を保護するための中核機構を定義し、セキュリティー関連の要求と メッセージを関連付けるためのメカニズムを提供します。

トラスト・アソシエーション

トラスト・アソシエーションにより、IBM WebSphere Application Server セキュリティーと サード・パーティー製セキュリティー・サーバーとを統合することができます。もっと具体的に述べると、リバース・プロキシー・サーバーがフロントエンド認証サーバーとして機能できるようになる一方で、WebSphere Application Server は、製品自体の認証ポリシーを、プロキシー・サーバーによって渡される信任状に適用します。 リバース・プロキシー・サーバーは、WebSphere Application Server にディスパッチされるすべての Web 要求に その認証ポリシーを適用します。トラスト・アソシエーション・インターセプター (TAI) をインプリメントする製品には、以下のものがあります。
  • IBM Tivoli Access Manager for e-business
  • WebSEAL
  • Caching Proxy
トラスト・アソシエーションの使用方法の詳細については、トラスト・アソシエーション を参照してください。

セキュリティー属性の伝搬

セキュリティー属性の伝搬により、WebSphere Application Server は、 セキュリティー属性を構成内のサーバー間でトランスポートできます。セキュリティー属性には、 認証済みサブジェクト・コンテンツおよびセキュリティー・コンテキスト情報が含まれます。WebSphere Application Server は、 これらのセキュリティー属性を以下のいずれかから取得できます。
  • 静的属性を照会するエンタープライズ・ユーザー・レジストリー
  • 静的または動的属性を照会できる、カスタム・ログイン・モジュール
セキュリティー属性の伝搬は、Java シリアライゼーションを使用して、 サブジェクト内に格納されているすべてのオブジェクトに伝搬サービスを提供します。セキュリティー属性の伝搬の使用方法の詳細については、セキュリティー属性の伝搬 を参照してください。

シングル・サインオン・インターオペラビリティー・モード

WebSphere Application Server では、 インターオペラビリティー・モード・オプションにより、WebSphere Application Server バージョン 5.1.1 以降の シングル・サインオン (SSO) 接続が、前のバージョンのアプリケーション・サーバーと相互運用できるようになります。このオプションを選択した場合、WebSphere Application Server は応答に旧スタイルの LtpaToken を追加するため、 このトークン・タイプでのみ機能する他のサーバーに応答を送信することができます。 このオプションは、Web インバウンド・セキュリティー属性の伝搬オプションが使用可能になっている場合にのみ適用されます。シングル・サインオンの詳細については、Web ユーザー認証を最小化するためのシングル・サインオンのインプリメント を参照してください。

Web コンテナーおよび EJB コンテナーを使用した J2EE リソースのセキュリティー

それぞれのコンテナーは、2 種類のセキュリティー (宣言セキュリティープログラマチック・セキュリティー) に対応しています。 宣言セキュリティーでは、アプリケーションのセキュリティー構造 (データの保全性と機密性、認証要件、セキュリティーの役割、アクセス制御など) が、そのアプリケーション外部の形式で表されます。 特にデプロイメント記述子は、J2EE プラットフォームにおける宣言セキュリティーの主要な手段です。 WebSphere Application Server は、デプロイメント記述子から引き出され、デプロイ担当者と管理者が 1 組の XML ディスクリプター・ファイルで 指定した情報を含む J2EE セキュリティー・ポリシーを維持します。コンテナーは、実行時には XML ディスクリプター・ファイルで定義されたセキュリティー・ポリシーを使用して、データ制約とアクセス制御を実行します。 宣言セキュリティー単独ではアプリケーションのセキュリティー・モデルを表現するのに十分でない場合には、 プログラマチック・セキュリティーがアプリケーション・コードによって使用され、アクセス判断を行うことがあります。 プログラマチック・セキュリティーのアプリケーション・プログラミング・インターフェース (API) は、 Enterprise JavaBeans (EJB) EJBContext インターフェースの 2 つのメソッド (isCallerInRolegetCallerPrincipal) およびサーブレット HttpServletrequest インターフェースの 3 つのメソッド (isUserInRolegetUserPrincipalgetRemoteUser) で構成されています。

Java 2 セキュリティー

WebSphere Application Server は、Java 2 セキュリティー・モデルをサポートしています。黄色ボックス内のシステム・コードは、 管理サブシステム、Web コンテナー、EJB コンテナー・コードを含めて、すべて WebSphere Application Server の セキュリティー・ドメイン内で実行されており、現在のインプリメンテーションでは、AllPermission の権限を付与され、 すべてのシステム・リソースにアクセスできます。アプリケーションのセキュリティー・ドメイン内で 実行されているアプリケーション・コードは、デフォルトで J2EE 仕様に従ってアクセス権を付与されており、 制限されたシステム・リソース・セットにしかアクセスできません。WebSphere Application Server のランタイム・クラスは、WebSphere Application Server のクラス・ローダーに保護されているため、 アプリケーション・コードからは不可視になっています。

Java 2 Platform, Enterprise Edition コネクター・セキュリティー

WebSphere Application Server は、J2EE コネクター・アーキテクチャーをサポートし、コンテナー管理認証を提供します。 WebSphere Application Server は、デフォルトの J2C のプリンシパルおよび信任状マッピング・モジュールを提供します。 このモジュールは、任意の認証済みユーザーの信任状を、指定した EIS (Enterprise Information System) セキュリティー・ドメイン のパスワード信任状にマップします。

アプリケーション・サーバー・プロセスはすべて、デフォルトでは、セル・レベルのセキュリティー XML 文書で定義される共通の セキュリティー構成を共有することになっています。セキュリティー構成では、WebSphere Application Server のセキュリティーを実行 するかどうか、Java 2 セキュリティーを実行するかどうかを決定し、認証メカニズムとユーザー・レジストリー構成、 セキュリティー・プロトコル構成、JAAS ログイン構成、および Secure Sockets Layer 構成について決定します。 アプリケーションには、それぞれ固有のセキュリティー要件がある場合があります。 アプリケーション・サーバー・プロセスはそれぞれ、独自のセキュリティー要件に対応するように、サーバー別のセキュリティー 構成を作成することができます。 セキュリティー構成がすべて、アプリケーション・サーバー・レベルで変更できるわけではありません。 アプリケーション・サーバー・レベルで変更できるセキュリティー構成には、 アプリケーション・セキュリティーを実行すべきかどうか、Java 2 セキュリティーを実行すべきかどうかということと、 セキュリティー・プロトコル構成が含まれます。

管理サブシステム・セキュリティー構成は、常にセル・レベルのセキュリティー文書で決定されます。 Web コンテナーと EJB コンテナーのセキュリティー構成は、サーバー・レベルのセキュリティー文書ごとのオプションによって決定され、 セル・レベルのセキュリティー文書よりも優先されます。

セキュリティー構成は、 セル・レベルでもアプリケーション・サーバー・レベルでも、Web ベースの管理コンソール・アプリケーションか、該当するスクリプト・アプリケーションのいずれかで管理されます。

Web セキュリティー

Web リソースに対してセキュリティー・ポリシーを指定して IBM WebSphere Application Server セキュリティーを実行すると、Web コンテナーは、Web クライアントがそのリソースを要求したときに アクセス制御を実行します。 Web コンテナーはそのクライアントの認証データで、指定した認証メソッドに適合するクライアントがないかを調べ、データ制約が満たされていることを確認して、 認証済みユーザーに必要なセキュリティー役割があるかどうかを判断します。WebSphere Application Server は、 以下のログイン・メソッドをサポートします。
  • HTTP 基本認証
  • HTTPS クライアント認証
  • フォーム・ベースのログイン
クライアント証明書の WebSphere Application Server セキュリティー信任状へのマッピングでは、UserRegistry インプリメンテーションを使用して マッピングを実行します。

WebSphere Application Server Express では、ローカル OS のユーザー・レジストリーはマッピング機能をサポートしていません。

LTPA 認証メカニズムが構成され、シングル・サインオン (SSO) が使用可能になっていると、 認証済みクライアントに、指定したセキュリティー・ドメイン内のユーザーを表すセキュリティー Cookie が発行されます。

セキュリティー Cookie および基本認証情報がインターセプトされたり再実行されたりするのを防ぐために、 Secure Sockets Layer (SSL) の使用をお勧めします。トラスト・アソシエーションが構成されていると、WebSphere Application Server は、認証済みユーザーの ID を、 セキュア・リバース・プロキシー・サーバーとの間で確立した信頼関係に基づく、セキュリティー信任状にマップすることができます。

Web セキュリティー・コラボレーターと EJB セキュリティー・コラボレーターの場合は次のようになります。
  1. Web セキュリティー・コラボレーターは、アクセス・マネージャー・インプリメンテーションを使用して、役割ベースのアクセス制御を実行します。 アクセス・マネージャーは、デプロイメント記述子から派生したセキュリティー・ポリシーに基づいて許可を決定します。 認証済みのユーザー・プリンシパルは、必要なセキュリティー役割のいずれかを持っている場合に、 要求したサーブレットまたは JSP ファイルへアクセスできます。サーブレットおよび JSP ファイルは、 HttpServletRequest メソッド (isUserInRolegetUserPrincipal、 および getRemoteUser) を使用できます。例えば、管理コンソールは、isUserInRole メソッドを 使用して、ユーザー・プリンシパルに公開する適切な管理機能セット決定します。
  2. EJB セキュリティー・コラボレーターは、アクセス・マネージャー・インプリメンテーションを使用して、 役割ベースのアクセス制御を実行します。 アクセス・マネージャーは、デプロイメント記述子から派生したセキュリティー・ポリシーに基づいて許可を決定します。 認証済みのユーザー・プリンシパルは、必要なセキュリティー役割のいずれかを持っている場合に、要求した EJB メソッドへアクセスできます。 EJB コードは、EJBContext メソッドの isCallerInRole および getCallerPrincipal を使用できます。 EJB コードは、JAAS ログインを実行する JAAS プログラミング・モデル、WSSubject doAs および doAsPrivileged メソッドも使用できます。doAs および doAsPrivileged PrivilegedAction ブロック内のコードは、サブジェクト ID を使用して実行されます。 そうでない場合、EJB メソッドは RunAs 構成に応じて、指定した RunAs ID または呼び出し元の ID のいずれかを使用して実行されます。

EJB セキュリティー

セキュリティーが使用可能になっていると、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) による承認

連邦情報処理標準 (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 モジュールは、以下の対称暗号スイートをサポートしています。
  • AES (FIPS 197)
  • TripleDES (FIPS 46-3)
  • SHA1 メッセージ・ダイジェスト・アルゴリズム (FIPS 180-1)
IBMJCEFIPS モジュールは、以下のアルゴリズムをサポートしています。
  • デジタル・シグニチャー DSA および RSA アルゴリズム (FIPS 186-2)
  • ANSI X 9.31 (FIPS 186-2)
  • IBM Random Number Generator

IBMJCEFIPS 暗号モジュールは、FIPS が承認したアルゴリズムを含んでいます。このアルゴリズムは、IBM JCE モジュール内のアルゴリズムの適正なサブセットを形成しています。




関連概念
認証メカニズム
EJB セキュリティーの認証プロトコル
Common Secure Interoperability Version 2 のフィーチャー
代行
グローバル・セキュリティー
Java Authentication and Authorization Service (JAAS)
J2EE コネクター・セキュリティー
Lightweight Directory Access Protocol ユーザー・レジストリー
ローカル・オペレーティング・システムのユーザー・レジストリー
LTPA (Lightweight Third Party Authentication)
プログラマチック・ログイン
ユーザー・レジストリー
役割ベースの許可
トラスト・アソシエーション
関連タスク
連邦情報処理標準 (FIPS) Java セキュア・ソケット拡張機能ファイルの構成
JAX-RPC を使用したメッセージ・レベルでの Web サービス・アプリケーションの保護
WS-Security を基にしたバージョン 5.x アプリケーションの Web サービスの保護
関連情報
Cryptographic Module Validation Program FIPS 140-1 and FIPS 140-2 Pre-validation List
概念トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 11:31:28 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/welc_security.html