WebLogic Security プログラマーズ ガイド
クライアント アプリケーションの開発と、Web アプリケーションおよびエンタープライズ JavaBean (EJB) へのセキュリティ機能の付加を主な業務とする Java プログラマです。他のエンジニアリング チームや品質保証 (QA) チーム、データベース チームと連携して、セキュリティ機能を実装します。アプリケーション開発者は、サーブレット、JSP、JSEE などの J2EE コンポーネントを含む Java、および Java セキュリティについて実用的かつ深い知識を備えています。
アプリケーション開発者は、WebLogic セキュリティと Java 2 セキュリティ アプリケーション プログラミング インタフェース (API) を使用してアプリケーションのセキュリティを確保します。したがって、このマニュアルは Web アプリケーション、Java アプリケーション、およびエンタープライズ JavaBean (EJB) のセキュリティを確保するためにそれらの API を使用する手順を紹介します。
WebLogic Server に統合されるセキュリティ製品のシステム アーキテクチャとインフラストラクチャの定義と、WebLogic Server で使用するカスタム セキュリティ プロバイダの開発を主な業務とする開発者です。アプリケーション設計者と連携して、セキュリティ アーキテクチャを、確実に設計に従ってセキュリティ ホールが発生しないように実装します。また、セキュリティが確実に正しくコンフィグレーションされるよう、サーバ管理者とも連携します。セキュリティ開発者は、認証、認可、監査 (AAA)、Java Management eXtension (JMX) などの Java に対する深い知識、および WebLogic Server とセキュリティ プロバイダの機能に対する実践的な知識をはじめとしたセキュリティ概念をしっかりと理解しています。
セキュリティ ベンダは、セキュリティ サービス プロバイダ インタフェース (SSPI) を使用して WebLogic Server で使用するカスタム セキュリティ プロバイダを開発します。ただし、このタスクについてはこのマニュアルで扱いません。SSPI を使ってカスタム セキュリティ プロバイダを開発する方法については、『WebLogic Security サービスの開発』を参照してください。
アプリケーション設計者と密接に連携しながら、サーバおよびサーバ上で動作するアプリケーションのセキュリティ方式の設計、潜在的なセキュリティ リスクの特定、およびセキュリティ上の問題を防止するコンフィグレーションの提案を行う管理者です。関連する責務として、重要なプロダクション システムの保守、セキュリティ レルムのコンフィグレーションと管理、サーバ リソースとアプリケーション リソースへの認証および認可方式の実装、セキュリティ機能のアップグレード、およびセキュリティ プロバイダのデータベースの保守などが含まれる場合もあります。サーバ管理者は、Web アプリケーションと EJB のセキュリティ、公開鍵セキュリティ、および SSL を含む、Java セキュリティ アーキテクチャについて深い知識を備えています。
アプリケーション管理者は、サーバ管理者と連携してセキュリティ コンフィグレーション、認証および認可方式を実装および管理したり、定義されたセキュリティ レルムでデプロイされたアプリケーション リソースへのアクセスを設定および管理したりします。アプリケーション管理者は、セキュリティの概念や Java セキュリティ アーキテクチャの一般的な知識を持っています。アプリケーション管理者は、Java、XML、デプロイメント記述子を理解し、サーバ ログおよび監査ログでセキュリティ イベントを特定できます。
管理者は通常、アプリケーションを実際に稼働させるときに、Administration Console を使用してアプリケーションのデプロイ、コンフィグレーション、および管理を行いますが、アプリケーション開発者も Administration Console を使用して実際の稼働前にアプリケーションをテストする場合があります。アプリケーションをテストするときには、最低でも、アプリケーションがデプロイされてコンフィグレーションされている必要があります。このマニュアルではセキュリティに関連した管理のいくつかの側面を取り上げていません。Administration Console を使用してセキュリティ タスクを行う方法の説明については、『WebLogic Security の管理』、『WebLogic リソースのセキュリティ』、および『Administration Console オンライン ヘルプ』を参照先として示します。
このマニュアルでは、WebLogic セキュリティ プロバイダとカスタム セキュリティ プロバイダのコンフィグレーション方法については説明していません。WebLogic セキュリティ プロバイダとカスタム セキュリティ プロバイダのコンフィグレーションの詳細については、『WebLogic Security の管理』を参照してください。
注意 : このマニュアルは、WebLogic Server で使用するカスタム セキュリティ プロバイダを記述しようと考えている開発者向けではありません。カスタム セキュリティ プロバイダの記述方法については説明していません。カスタム セキュリティ プロバイダの開発については、『WebLogic Security サービスの開発』を参照してください。
セキュリティとは、コンピュータに保存されているデータまたはコンピュータ間でやりとりされるデータが危険にさらされないことを保証する技術です。ほとんどの場合、セキュリティ対策では証明データとデータ暗号化を利用します。一般に証明データは、ユーザに特定のアプリケーションまたはシステムへのアクセスを許可する秘密の単語または句です。データ暗号化とは、その秘密の単語または句を保持しているか提供しなければ解釈できないような形式にデータを変換することです。
電子商取引 (e- コマース) 向けアプリケーションなどの分散アプリケーションでは、悪意のある何者かがデータを横取りし、処理を混乱させ、不正な入力を行う起点となるような多数のアクセス ポイントが提供されます。ビジネスの分散化が進むにつれて、セキュリティが侵害される可能性も大きくなります。したがって、アプリケーションの分散に伴い、その基盤となる分散コンピューティング ソフトウェアによってセキュリティを実現することがますます重要になります。
アプリケーション サーバは、エンド ユーザと貴重なデータやリソースとの間の重要なレイヤに位置しています。WebLogic Server は、これらのリソースを保護するために認証、認可、および暗号化サービスを提供します。しかし、こうしたサービスでは、デプロイメント環境の弱点を見つけ出して悪用することでアクセスを取得した侵入者から、リソースを守ることはできません。
したがって、インターネットまたはイントラネット上で WebLogic Server をデプロイする場合には、独立したセキュリティ専門家に依頼して、セキュリティ プランと手順を検討してもらい、インストール済みシステムの監査を受け、改善点のアドバイスを受けるとよいでしょう。
セキュリティ問題と適切なセキュリティ対策についてできる限り知識を増やすことも重要です。マニュアル『プロダクション環境のセキュリティ』では、WebLogic Server をプロダクション環境にデプロイする前に検討すべき重要なセキュリティ対策について説明します。マニュアル『WebLogic リソースのセキュリティ』では、さまざまなタイプの WebLogic リソースを紹介し、WebLogic Server を使用してそれらのリソースを保護するための情報を提供します。Web サーバのセキュリティ対策の最新情報については、カーネギー メロン大学が運営する CERTTM Coordination Center が公開している「Security Improvement Modules, Security Practices, and Technical Implementations」に目を通すことをお勧めします。
BEA の「セキュリティアドバイザリ」ページで推奨されている対策は是非、実行してください。BEA Products に関して問題が発生した場合には、BEA から、その報告と適切な対策を示した指示が配信されます。サイトのセキュリティ問題を担当されている方は、今後、BEA からセキュリティ関連の問題の通知を受信できるよう、登録を行ってください。BEA では、BEA Products に関するセキュリティ問題をご報告いただくための電子メール アドレス (security-report@bea.com
) も用意しています。また、リリースされている各サービス パックの適用もお勧めします。サービス パックには、製品の各バージョンおよび以前にリリースされた各「サービス パック」のすべてのバグの修正が含まれています。
さらに、WebLogic Server のプロダクション環境の保護に役に立つ、BEA パートナ製品もあります。詳細については、『BEA パートナページ』を参照してください。
WebLogic Server では次のセキュリティ メカニズムがサポートされます。
認証とは、呼び出し側とサービス プロバイダが、特定のユーザまたはシステムの代わりに動作していることを証明する際に使用するメカニズムのことです。認証は、資格を使用して「あなたは誰」という問いに答えます。証明が双方向で行われる場合、相互認証と呼ばれます。
WebLogic Server は、ユーザ名およびパスワードによる認証と証明書による認証をサポートしています。WebLogic Server は、証明書認証について一方向と双方向の SSL 認証を両方ともサポートしています。双方向の SSL 認証は、相互認証の一形態です。
WebLogic Server では、ユーザまたはシステム プロセスの ID を証明するために認証プロバイダを使用します。認証プロバイダでは、ID 情報を記憶したり、転送したり、その情報が必要な場合に (サブジェクトを通じて) システムのさまざまなコンポーネントで利用できるようにしたりします。認証プロバイダは、Web アプリケーションおよび EJB デプロイメント記述子ファイル、または Administration Console、あるいはその両方を使用してコンフィグレーションできます。
認可とは、ユーザの ID などの情報に基づいて、ユーザと WebLogic リソースとのやり取りを管理するプロセスのことです。言い換えれば、認可とは「自分は何にアクセスできますか」という質問に答えるものです。
WebLogic Server では、WebLogic 認可プロバイダはユーザと WebLogic リソースとの対話を制限して、整合性、機密性、および可用性を確保します。認可プロバイダは、Web アプリケーションおよび EJB デプロイメント記述子ファイル、または Administration Console、あるいはその両方を使用してコンフィグレーションできます。
WebLogic Server では、プログラムによる認可 (このマニュアルではプログラムによるセキュリティともいう) を使用してユーザと WebLogic リソースとの対話を制限することもできます。
ユーザ認証とユーザ認可を実装および使用するために、BEA WebLogic Server では、Java 2 Platform、Enterprise Edition (J2EE) の SDK バージョン 1.4.1 のセキュリティ サービスが利用されます。他の J2EE コンポーネントと同様、セキュリティ サービスも標準化されたモジュール コンポーネントに基づいています。BEA WebLogic Server は、標準に従ってこれらの Java セキュリティ サービス メソッドを実装し、細かなアプリケーションの動作をプログラミングを必要とせずに自動的に処理する拡張を追加します。
ここでは、WebLogic Server が実装およびサポートしているセキュリティ関連のパッケージとクラスについて説明します。これらのパッケージを使用して、WebLogic Server とクライアント アプリケーション、エンタープライズ JavaBean (EJB)、および Web アプリケーションとの間の対話を保護します。
注意 : WebLogic セキュリティ パッケージ、クラス、およびメソッドの中には、WebLogic Server のこのリリースでは非推奨となっているものがあります。非推奨となったパッケージおよびクラスの詳細については、「非推奨のセキュリティ API」を参照してください。
JAAS 認証を使用するクライアント アプリケーションを作成するには、Java API および WebLogic API を使用します。
JAAS クライアント アプリケーションの作成には、以下の Java API を使用します。
これらの API の使い方については、「JAAS 認証 API」を参照してください。
JAAS クライアント アプリケーションの作成には、以下の WebLogic API を使用します。
これらの API の使い方については、「JAAS 認証 API」を参照してください。
SSL 認証を使用するクライアント アプリケーションを作成するには、Java API および WebLogic API を使用します。
SSL クライアント アプリケーションの作成には、以下の Java API を使用します。
WebLogic Server はまた、「 javax.net.SSL」API もサポートしていますが、WebLogic Server で SSL を使用する際には weblogic.security.SSL
パッケージを使用することをお勧めします。
これらの API の使い方については、「SSL 認証 API」を参照してください。
SSL クライアント アプリケーションの作成には、以下の WebLogic API を使用します。
これらの API の使い方については、「SSL 認証 API」を参照してください。
さらに、以下の API が WebLogic Server アプリケーションの開発に使用されます。
この API はネットワーク接続フィルタの実装に使用されるインタフェースおよびクラスを提供します。ネットワーク接続フィルタは、ネットワーク接続を開始したクライアントの IP アドレス、ドメイン、またはプロトコルなどの属性に基づいて WebLogic Server への接続を許可または拒否します。この API の使い方の詳細については、「ネットワーク接続フィルタの使い方」を参照してください。
この API には、セキュリティ プロバイダをサポートするインタフェース、クラス、および例外が含まれます。WebLogic Security フレームワークは、この API で提供されるインタフェース、クラス、および例外から成ります。この API のインタフェース、クラス、および例外は、weblogic.security.spi
パッケージのインタフェース、クラス、および例外と関連付けて使用します。この API の使い方の詳細については、『WebLogic Security サービスの開発』を参照してください。
この API はサーバサイドの認証クラスを提供します。このクラスは、サーバへのローカル ログインの実行に使用されます。ユーザを認証し、デフォルトのセキュリティ レルムを使用して資格を返すための CallbackHandlers と共に使用されるログイン メソッドを提供します。
このパッケージはセキュリティ サービス プロバイダ インタフェース (SSPI) を提供します。カスタム セキュリティ プロバイダの開発に使用されるインタフェース、クラス、および例外を提供します。多くの場合、これらのインタフェース、クラス、および例外は、weblogic.security.service
API のインタフェース、クラス、および例外と関連付けて使用します。このパッケージからのインタフェース、クラス、および例外を実装することで、セキュリティ プロバイダの実行時クラスを作成できます。SSPI の使い方の詳細については、『WebLogic Security サービスの開発』を参照してください。
この API は、サーブレット アプリケーション内からプログラムによる認証をサポートするサーバサイド API を備えています。この API の使い方の詳細については、「プログラムによる認証 API の使用」を参照してください。
セキュリティに関しては、Web アプリケーション、EJB、J2EE コネクタ、およびエンタープライズ アプリケーションのデプロイメント記述子を定義および編集に、Administration Console を使用できます。このマニュアル『WebLogic Security プログラマーズ ガイド』では、Administration Console を使用したセキュリティのコンフィグレーション方法については説明しません。Administration Console を使用してデプロイメント記述子を定義および編集する方法については、『WebLogic リソースのセキュリティ』および『WebLogic Security の管理』を参照してください。
マニュアル内のセキュリティ タスクおよびコード例では、カスタム セキュリティ プロバイダではなく、WebLogic Server 配布キットの WebLogic セキュリティ プロバイダを使用することを前提にしています。カスタム セキュリティ プロバイダを使用する場合、WebLogic セキュリティ API の使い方は同じですが、カスタム セキュリティ プロバイダの管理手順が異なります。
注意 : このマニュアルでは、WebLogic セキュリティ プロバイダまたはカスタム セキュリティ プロバイダの包括的なコンフィグレーション方法については説明していません。WebLogic セキュリティ プロバイダとカスタム セキュリティ プロバイダのコンフィグレーションの詳細については、『WebLogic Security の管理』を参照してください。