ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Serverセキュリティのプログラミング
11g リリース1(10.3.6)
B61619-04
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

2 WebLogic Securityプログラミングの概要

この節では、以下の内容について説明します。

セキュリティとは

セキュリティとは、コンピュータに保存されているデータまたはコンピュータ間でやりとりされるデータが危険にさらされないことを保証する技術です。ほとんどの場合、セキュリティ対策では証明データとデータ暗号化を利用します。一般に証明データは、ユーザーに特定のアプリケーションまたはシステムへのアクセスを許可する秘密の単語または句です。データ暗号化とは、その秘密の単語または句を保持しているか提供しなければ解釈できないような形式にデータを変換することです。

電子商取引(e- コマース)向けアプリケーションなどの分散アプリケーションでは、悪意のある何者かがデータを横取りし、処理を混乱させ、不正な入力を行う起点となるような多数のアクセス・ポイントが提供されます。ビジネスの分散化が進むにつれて、セキュリティが侵害される可能性も大きくなります。したがって、アプリケーションの分散に伴い、その基盤となる分散コンピューティング・ソフトウェアによってセキュリティを実現することがますます重要になります。

アプリケーション・サーバーは、エンド・ユーザーと貴重なデータやリソースとの間の重要なレイヤーに位置しています。WebLogic Serverは、これらのリソースを保護するために認証、認可、および暗号化サービスを提供します。しかし、こうしたサービスでは、デプロイメント環境の弱点を見つけ出して悪用することでアクセスを取得した侵入者から、リソースを守ることはできません。

したがって、インターネットまたはイントラネット上でWebLogic Serverをデプロイする場合には、独立したセキュリティ専門家に依頼して、セキュリティ・プランと手順を検討してもらい、インストール済みシステムの監査を受け、改善点のアドバイスを受けるとよいでしょう。

セキュリティ問題と適切なセキュリティ対策についてできるかぎり知識を増やすことも重要です。ドキュメント『Oracle WebLogic Server本番環境の保護』では、WebLogic Serverを本番環境にデプロイする前に検討すべき重要なセキュリティ対策について説明します。ドキュメント『Oracle WebLogic Serverロールおよびポリシーによるリソースの保護』では、様々なタイプのWebLogicリソースを紹介し、WebLogic Serverを使用してそれらのリソースを保護するための情報を提供します。Webサーバーの保護に関する最新情報を得るために、カーネギー・メロン大学が運営するCERT(tm) Coordination Centerが公開している『Security Improvement Modules, Security Practices, and Technical Implementations information』(http://www.cert.org/)にも目を通すことをお薦めします。

Oracleのセキュリティ勧告で推奨されている対策は是非、実行してください。Oracle製品に関して問題が発生した場合には、Oracleから、その報告と適切な対策を示した指示が配信されます。サイトのセキュリティ関連の問題を担当されている方は、今後、通知を受け取れるように登録を行ってください。

管理コンソールとセキュリティ

セキュリティに関しては、Webアプリケーション、EJB、Java EEコネクタ、およびエンタープライズ・アプリケーションのデプロイメント記述子の定義および編集に、管理コンソールを使用できます。このドキュメントWebLogicセキュリティのプログラミングでは、管理コンソールを使用したセキュリティの構成方法については説明しません。管理コンソールを使用してデプロイメント記述子を定義および編集する方法の詳細は、『Oracle WebLogic Serverロールおよびポリシーによるリソースの保護』および『Oracle WebLogic Serverの保護』を参照してください。

WebLogic Serverでサポートされているセキュリティのタイプ

WebLogic Serverでは次のセキュリティ・メカニズムがサポートされます。

認証

認証とは、呼出し側とサービス・プロバイダが、特定のユーザーまたはシステムのかわりに動作していることを証明する際に使用するメカニズムのことです。認証は、資格証明を使用して「あなたは誰」という問いに答えます。証明が双方向で行われる場合、相互認証と呼ばれます。

WebLogic Serverは、ユーザー名およびパスワードによる認証と証明書による認証をサポートしています。WebLogic Serverは、証明書認証について一方向と双方向のSSL (Secure Sockets Layer)認証を両方ともサポートしています。双方向のSSL認証は、相互認証の一形態です。

WebLogic Serverでは、ユーザーまたはシステム・プロセスのIDを証明するために認証プロバイダを使用します。認証プロバイダでは、ID情報を記憶したり、トランスポートしたり、その情報が必要な場合に(サブジェクトを通じて)システムの様々なコンポーネントで利用できるようにしたりします。認証プロバイダは、WebアプリケーションおよびEJBデプロイメント記述子ファイル、または管理コンソール、あるいはその両方を使用して構成できます。

認可

認可とは、ユーザーのIDなどの情報に基づいて、ユーザーとWebLogicリソースとのやり取りを管理するプロセスのことです。言い換えれば、認可とは「自分は何にアクセスできますか」という質問に答えるものです。

WebLogic Serverでは、WebLogic認可プロバイダはユーザーとWebLogicリソースとの対話を制限して、整合性、機密性、および可用性を確保します。認可プロバイダは、WebアプリケーションおよびEJBデプロイメント記述子ファイル、または管理コンソール、あるいはその両方を使用して構成できます。

WebLogic Serverでは、プログラムによる認可(このドキュメントではプログラムによるセキュリティともいう)を使用してユーザーとWebLogicリソースとの対話を制限することもできます。

Java EEセキュリティ

ユーザー認証とユーザー認可を実装および使用するために、WebLogic Serverでは、Java EE Development Kit 6.0(JDK 6.0)のセキュリティ・サービスが利用されます。他のJava EEコンポーネントと同様、セキュリティ・サービスも標準化されたモジュール・コンポーネントに基づいています。WebLogic Serverは、標準に従ってこれらのJavaセキュリティ・サービス・メソッドを実装し、追加のプログラミングを必要とせずに、細かなアプリケーションの動作を自動的に処理する拡張機能を追加します。

セキュリティAPI

ここでは、WebLogic Serverが実装およびサポートしているセキュリティ関連のパッケージとクラスについて説明します。これらのパッケージを使用して、WebLogic Serverとクライアント・アプリケーション、Enterprise JavaBeans (EJB)、およびWebアプリケーションとの間の対話を保護します。


注意:

WebLogicセキュリティ・パッケージ、クラス、およびメソッドの中には、WebLogic Serverのこのリリースでは非推奨となっているものがあります。非推奨となったパッケージおよびクラスの詳細は、「付録A 非推奨のセキュリティAPI」を参照してください。

この節では、以下の内容について説明します。

JAASクライアント・アプリケーションAPI

JAAS認証を使用するクライアント・アプリケーションを作成するには、Java APIおよびWebLogic APIを使用します。

この節では、以下の内容について説明します。

Java JAASクライアント・アプリケーションAPI

JAASクライアント・アプリケーションの作成には、以下のJava APIを使用します。このAPIはhttp://download.oracle.com/javase/6/docs/api/index.htmlから入手できます。

  • javax.naming

  • javax.security.auth

  • javax.security.auth.callback

  • javax.security.auth.login

  • javax.security.auth.spi

これらのAPIの使い方については、「JAAS認証API」を参照してください。

WebLogic JAASクライアント・アプリケーションAPI

JAASクライアント・アプリケーションの作成には、以下のWebLogic APIを使用します。

これらのAPIの使い方については、「JAAS認証API」を参照してください。

SSLクライアント・アプリケーションAPI

SSL認証を使用するクライアント・アプリケーションを作成するには、Java APIおよびWebLogic APIを使用します。

この節では、以下の内容について説明します。

Java SSLクライアント・アプリケーションAPI

SSLクライアント・アプリケーションの作成には、次のJava API(http://download.oracle.com/javase/6/docs/api/index.html)を使用します。

  • java.security

  • java.security.cert

  • javax.crypto

  • javax.naming

  • javax.net

  • javax.security

  • javax.servlet

  • javax.servet.http

WebLogic Serverは、javax.net.SSL API(http://download.oracle.com/javase/6/docs/api/index.html)もサポートしていますが、WebLogic ServerでSSLを使用する際にはweblogic.security.SSLパッケージを使用することをお薦めします。

これらのAPIの使い方については、「SSL認証API」を参照してください。

WebLogic SSLクライアント・アプリケーションAPI

SSLクライアント・アプリケーションの作成には、以下のWebLogic APIを使用します。

これらのAPIの使い方については、「SSL認証API」を参照してください。

その他のAPI

さらに、以下のAPIがWebLogic Serverアプリケーションの開発に使用されます。

  • weblogic.security.jacc

    このAPIはRoleMapperインタフェースを提供します。JACC (Java Authorization Contract for Containers)を実装する場合は、このパッケージをjavax.security.jaccパッケージ(http://download.oracle.com/javaee/6/api/javax/security/jacc/package-summary.html)とともに使用できます。WebLogic JACCプロバイダの詳細は、「Java Authorization Contract for Containersの使用」を参照してください。JACCプロバイダの開発の詳細は、http://java.sun.com/j2ee/javaaccを参照してください。

  • weblogic.security.net

    このAPIはネットワーク接続フィルタの実装に使用されるインタフェースおよびクラスを提供します。ネットワーク接続フィルタは、ネットワーク接続を開始したクライアントのIPアドレス、ドメイン、またはプロトコルなどの属性に基づいてWebLogic Serverへの接続を許可または拒否します。このAPIの使い方の詳細は、第7章「ネットワーク接続フィルタの使い方」を参照してください。

  • weblogic.security.pk

    このAPIは、証明書パスを作成および検証するためのインタフェースとクラスを提供します。このAPIを使用して証明書チェーンを作成および検証する方法については、第10章「証明書パスの作成と検証」を参照してください。

    証明書および証明書パスに関する追加情報については、java.security.certパッケージ(http://download.oracle.com/javase/6/docs/api/java/security/cert/package-summary.html)を参照してください。

  • weblogic.security.providers.saml

    このAPIは、ユーザーおよびグループ情報からSAML (Security Assertion Markup Language)アサーションへのマッピングや、SAMLアサーションのキャッシュおよび取得に使用するインタフェースとクラスを提供します。

    SAMLは、セキュリティ情報をやり取りするためのXMLベースのフレームワークです。WebLogic Serverでは、SAML V2.0およびV1.1(ブラウザ/POSTプロファイルおよびブラウザ/アーティファクト・プロファイルを含む)がサポートされます。SAML認可はサポートされません。

    SAMLの詳細は、http://www.oasis-open.orgを参照してください。

  • weblogic.security.service

    このAPIには、セキュリティ・プロバイダをサポートするインタフェース、クラスおよび例外が含まれます。WebLogic Securityフレームワークは、このAPIで提供されるインタフェース、クラスおよび例外からなります。このAPIのインタフェース、クラスおよび例外は、weblogic.security.spiパッケージのインタフェース、クラスおよび例外と関連付けて使用します。このAPIの使用方法の詳細は、『Oracle WebLogic Serverセキュリティ・プロバイダの開発』を参照してください。

  • weblogic.security.services

    このAPIはサーバー側の認証クラスを提供します。このクラスは、サーバーへのローカル・ログインの実行に使用されます。ユーザーを認証し、デフォルトのセキュリティ・レルムを使用して資格証明を返すためのCallbackHandlersと共に使用されるログイン・メソッドを提供します。

  • weblogic.security.spi

    このパッケージはセキュリティ・サービス・プロバイダ・インタフェース(SSPI)を提供します。カスタム・セキュリティ・プロバイダの開発に使用されるインタフェース、クラスおよび例外を提供します。多くの場合、これらのインタフェース、クラスおよび例外は、weblogic.security.service APIのインタフェース、クラスおよび例外と関連付けて使用します。このパッケージからのインタフェース、クラスおよび例外を実装することで、セキュリティ・プロバイダの実行時クラスを作成できます。SSPIの使用方法の詳細は、『Oracle WebLogic Serverセキュリティ・プロバイダの開発』を参照してください。

  • weblogic.servlet.security

    このAPIは、サーブレット・アプリケーション内からプログラムによる認証をサポートするサーバー側APIを備えています。このAPIの使い方の詳細は、「プログラムによる認証APIの使用」を参照してください。