Oracle Platform Security Services (OPSS)は、サポート対象のプラットフォームまたはスタンドアロン・アプリケーションにデプロイされるアプリケーションの保護に使用可能なセキュリティ・プラットフォームです。この章では、次の各項でこのプラットフォームの主な機能を紹介します。
このドキュメントでは、Oracle Webサービスのセキュリティについては説明しません。詳細は、『Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド』を参照してください。
Oracle Fusion Middlewareのセキュリティに関する概要は、『Oracle Fusion Middlewareセキュリティ概要』を参照してください。
OPSSは、エンタープライズ製品開発チーム、システム・インテグレータおよび独立系ソフトウェア・ベンダー向けに、Java SEアプリケーションおよびJava EEアプリケーションで使用できる、標準に基づいた移植可能でエンタープライズ・レベルの統合セキュリティ・フレームワークを提供します。
また、基盤となるセキュリティ・プラットフォームとして、WebLogic Server、Server Oriented Architecture (SOA)アプリケーション、Oracle WebCenter、Oracle Application Development Framework (ADF)アプリケーション、Oracle Entitlement ServerなどのOracle Fusion Middlewareにセキュリティを提供します。OPSSは、サード・パーティのアプリケーション・サーバーに移植できるように設計されているので、OPSSを使用すれば1つのセキュリティ・フレームワークでOracle環境とサード・パーティ環境の両方に対応できます。これにより、アプリケーションの開発、管理およびメンテナンスに要する費用を削減できます。
OPSSでは、アプリケーション・プログラミング・インタフェース(API)として抽象レイヤーを提供しています。これにより、開発者は、セキュリティおよびアイデンティティ管理の実装の詳細に関与する必要がなくなります。OPSSを使用すれば、開発者は、暗号キーの管理、リポジトリ・インタフェースや他のアイデンティティ管理インフラストラクチャについて詳しく把握しておく必要がありません。社内開発アプリケーション、サード・パーティ・アプリケーションおよび統合アプリケーションでは、OPSSを使用することで、企業全体で統一された同一のセキュリティ・サービス、アイデンティティ管理サービスおよび監査サービスを利用できます。
FAQ、ホワイトペーパー、サンプル・コード、フォーラム・ディスカッションなど、OPSS関連のニュースは、http://www.oracle.com/technology/products/id_mgmt/opss/index.html
を参照してください。
OPSSは、ロールベースのアクセス制御(RBAC)、Java Enterprise Edition (JavaEE)およびJava Authorization and Authentication Services (JAAS)の各標準に準拠しています。
これらの標準に基づいているOPSSは、次の機能をサポートする統合セキュリティ・プラットフォームを提供します。
認証
IDアサーション
ファイングレインJAASパーミッションに基づいた認可
アプリケーション・ポリシーの指定と管理
資格証明ストア・フレームワークを使用したシステム資格証明のセキュアな格納とアクセス
監査
ロール管理とロール・マッピング
ユーザーおよびロールAPI
ID仮想化
セキュリティの構成と管理
SAMLとXACML
Oracle Security Developer Tools(暗号化ツールなど)
ポリシー管理API
Java Authorization for Containers (JAAC)
特定のOPSS機能の詳細は、このガイドの該当する章を参照してください。
WebLogic監査プロバイダの詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverの保護』のWebLogic監査プロバイダの構成に関する項を参照してください。
OPSSは、次のアプリケーション・サーバー・プラットフォームでサポートされています。
Oracle WebLogic Server
IBM WebSphere Application Server Network Deployment (ND) 7.0
IBM WebSphere Application Server 7.0
このガイドでは、Oracle WebLogic Serverに関連するOPSS機能について記載しています。この機能は、他のすべてのプラットフォームに対しても一様に適用できます。特にサード・パーティのサーバーに該当する内容は、Oracle Fusion Middlewareサード・パーティ・アプリケーション・サーバー・ガイドを参照してください。
OPSSは、アプリケーション・サーバーのセキュリティとOracle Fusion Middlewareのセキュリティで構成されます。次の図は、この2つのセキュリティ・フレームワークを組み合せた階層型アーキテクチャをOracle WebLogic Serverを使用した場合を例に示したものです。
この図では、様々なセキュリティ・コンポーネントをレイヤーとして示しています。最上位のレイヤーは、Oracle WebLogic Serverとそのサーバーで実行するJavaアプリケーションで構成されています。その下のレイヤーは、認証、認可、CSFおよびユーザー/ロールの各APIとID仮想化で構成されています。最下位のレイヤーには、サービス・プロバイダ・インタフェース(SPI)レイヤーとサービス・プロバイダがあります。最下位のレイヤーは、LDAPサーバーやデータベース・サーバーなどのセキュリティ・データ・リポジトリと対話します。
前述の図のプロバイダのリストはすべてを網羅してはいません。この他に、ロール・マッピング・プロバイダや監査プロバイダなどがあります。
セキュリティ・サービス・プロバイダ・インタフェース
セキュリティ・サービス・プロバイダ・インタフェース(SSPI)は、Java EEコンテナのセキュリティをパーミッションベース・モード(JACCの場合)またはリソースベース・モード(JACCではない場合)で提供します。また、環境にリソースベースの認可を提供します。
SSPIは、プラッガブルなセキュリティ・プロバイダを実装するための一連のAPIです。これらのインタフェースを実装するモジュールをSSPIにプラグインすることで、カスタム認証や特定のロール・マッピングなどの特別なタイプのセキュリティ・サービスを提供できます。
詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverセキュリティの理解』のセキュリティ・サービス・プロバイダ・インタフェース(SSPI)に関する項を参照してください。
Oracle Platform Security Services
Java Authorization (JAZN)機能が再設計され、資格証明ストア・フレームワーク(CSF)、共通監査フレームワーク(CAF)およびその他のコンポーネントを扱うように拡張されました。また、SSPIと結合してOracle Platform Security Services (OPSS)を構成します。
OPSSには、資格証明ストア・フレームワーク(CSF)、ユーザー/ロールAPI、ID仮想化、共通監査フレームワーク、アイデンティティ・サービスおよび設計段階でのサポート向上を提供します。
OPSSには、次の利点があります。
アプリケーションとドメインの問題に対する開発リソースの集中が可能
エンタープライズ・デプロイメントのサポート
複数のLDAPサーバーおよびSSOシステムのサポート
Oracle WebLogic Serverで認定済である
Oracleの製品およびテクノロジとの事前統合
開発者および管理者の一貫したセキュリティ・エクスペリエンス
あらゆるタイプのアプリケーションを対象にしたAPIの統一セット
抽象レイヤー(宣言的API)による開発時間の最適化
アプリケーションのセキュリティ・メンテナンスの簡素化
アプリケーション・コードの変更を必要としない、セキュリティ・ルールの変更
管理者の作業の負荷軽減
アイデンティティ管理システムとの統合
レガシー・セキュリティ・プロバイダおよびサード・パーティ・セキュリティ・プロバイダとの統合
OPSSは、SSPIとJPSを結合することで、アプリケーション・サーバーとOracleアプリケーションを単一の環境でシームレスに実行可能なフレームワークを提供します。
OPSSでは、Java EEアプリケーションおよびOracle Fusion Middlewareアプリケーション(Oracle WebCenterやOracle SOA Suiteなど)のセキュリティをサポートしています。
開発者は、OPSSのAPIを使用することで、あらゆるタイプのアプリケーションを保護し、他のセキュリティ・アーティファクト(LDAPサーバー、RDBMS、カスタムのセキュリティ・コンポーネントなど)と統合できます。
管理者は、OPSSを使用することで、大規模なエンタープライズ・アプリケーションを小規模な一定のツール・セットでデプロイし、それらのアプリケーションのセキュリティ全体を管理できます。OPSSにより、アプリケーション・コードを変更することなくセキュリティ構成を変更できるため、アプリケーション・セキュリティのメンテナンスが簡単になります。
Oracle WebLogic Serverでは、デフォルトで追加設定なしに、ユーザーとグループが埋込みLDAPリポジトリに格納されます。なお、他の種類のLDAPリポジトリにあるアイデンティティ・データを使用するようにドメインを構成することもできます。このようなLDAPリポジトリとして、Oracle Internet Directory、Active Directory、Novell eDirectory、OpenLDAPなどがあります。さらに、Oracle WebLogic Serverでは、ここにあげていない他のLDAPサーバーで使用できる汎用的なデフォルトのLDAP認証プロバイダを提供しています。
ポリシーおよび資格証明は、特別な設定をしなくてもファイルベースのストアに格納されます。これらのストアは、Oracle Internet Directoryサーバーの支援を受けるLDAPリポジトリに移動(再関連付け)できます。
注意: このガイドでは、WebLogicのセキュリティ機能については詳しく説明しません。SSPIに関する特定の情報を使用または想定している箇所では、適切なドキュメントを参照先として示しています。 |
Oracle ADFは、エンドツーエンドJava EEフレームワークです。これによって、追加設定なしで使用できるインフラストラクチャ・サービスと、視覚的で宣言的な開発エクスペリエンスが提供され、開発が簡素化されます。
Oracle ADFのセキュリティはJAASセキュリティ・モデルに基づいており、このモデルはOPSSを使用しています。Oracle ADFのセキュリティでは、LDAPベースまたはファイルベースのポリシー・ストアおよび資格証明ストアをサポートし、OPSSが提供するパーミッションベースのファイングレイン認可を採用しています。また、視覚的宣言的なエディタとOracle ADFのセキュリティ・ウィザードの支援によりアプリケーション・セキュリティの構成を簡素化しています。このエディタとウィザードはOracle JDeveloper 11gに用意されているもので、このガイドでこのツールを参照する場合はすべて11gリリースのものを指すものとします。
Oracle ADFのセキュリティの認可は、コンポーネント(フローとページ)の保護を可能にし、設計時にはOracle JDeveloperと統合されます。通常、セキュリティ機能のテストを実行する統合サーバーにアプリケーションをデプロイした場合は、実行時にOracle ADFのセキュリティの認可が可能です。
Oracle ADFアプリケーションの開発段階で、Oracle WebLogic Server管理コンソールを使用し、アプリケーションのデプロイ先とする特定のドメインで認証プロバイダを構成します。また、ファイルベースとしたポリシー・ストアをファイルjazn-data.xml
に格納します。デプロイの詳細は、第6.3.1項「テスト環境へのデプロイ」を参照してください。
要約すると、Oracle ADFのセキュリティによって提供されるものは次のとおりです。
詳細な宣言的セキュリティの制御
セキュリティ・アーティファクトの視覚的宣言的開発
ロール階層での簡素化したパーミッションの割当て
EL(式言語)を使用したOracle ADFリソースへのアクセス
迅速な開発とテスト・サイクルを可能にするOracle JDeveloperとの統合
リッチなWebユーザー・インタフェースと簡素化されたデータベース・アクセス
Oracle WebLogic管理コンソール、OPSSスクリプト、Fusion Middleware Control、またはOracle Authorization Policy Managerを使用してアプリケーションのセキュリティを管理するためのガイドラインは、そのアプリケーションのタイプに応じて次のとおりです。
JavaEEアプリケーションの場合は、セキュリティをOracle WebLogic管理コンソール、Oracle Authorization Policy ManagerまたはOPSSスクリプトで管理します。
Oracle SOA、Oracle WebCenter、MDSおよびOracle ADFの各アプリケーションでは、Oracle WebLogic管理コンソールで認証を管理し、Fusion Middleware ControlおよびOracle Authorization Policy Managerで認可を管理します。
OPSSに統合するJavaEEアプリケーションの場合、Oracle WebLogic管理コンソールで認証を管理し、Fusion Middleware ControlおよびOracle Authorization Policy Managerで認可を管理します。
セキュリティ管理の詳細は、第5章「セキュリティ管理」を参照してください。
この項では、開発者が次の各シナリオで様々な種類のアプリケーションに実装すると考えられる主なOPSS機能をまとめています。
CSF、ユーザー/ロール、ポリシー管理などのOPSS APIを使用するようにJavaEEアプリケーションを拡張できます。ユーザーの電子メール、電話、住所などのユーザー属性を取得するには、Identity Governance Framework APIまたはユーザー/ロールAPIを使用します。外部システム資格証明(LDAPベース・ストアのウォレットに格納)を取得するには、CSF APIを使用します。また、認可ポリシー・データの管理には、ポリシー管理APIを使用します。
Oracle WebLogic Server上にデプロイされるサーブレット、JSP、EJBなどのJavaEEアプリケーションは、認証と認可をファイルweb.xml
で指定することで宣言的に使用するように構成することも、isUserInRole
およびisCallerInRole
のコールによってプログラム的に使用するように構成することもできます。
カスタムの認証プロバイダには、標準のBasic認証、フォーム認証、クライアント証明書認証の各方法があります。サーブレットとEJBの間の認証は、ユーザー・ロールとエンタープライズ・グループを使用して制御します。これらのロールとグループは通常、LDAPリポジトリ、データベースまたはカスタムの認証プロバイダに格納します。
Oracle Application Development Framework (ADF)は、Oracle JDeveloperに用意されているJavaEE開発フレームワークであり、JavaEEアプリケーションのインフラストラクチャを実装するコードの作成を最小限に抑えることで、アプリケーションの開発を簡素化します。その結果、アプリケーション機能に開発リソースを集中できるようになります。Oracle ADFでは、これらのインフラストラクチャの実装をOracle JDeveloperフレームワークの中で実現し、JavaEEの視覚的宣言的な開発アプローチによる開発エクスペリエンスの向上を図っています。
Oracle ADFではOPSSが暗黙的に使用されるので、開発者は通常、OPSS APIを直接操作するコードを作成する必要はありませんが、当然のことながら、OPSS APIへの直接コールを使用することもできます。
Oracle ADFでは、まずコンテナ認証を使用し、それに続いてJAASベースの認可を使用することで、Oracle ADFリソースへのアクセスを制御します。これらの認可ポリシーでは、アプリケーション固有のロールおよびJAAS認可パーミッションを指定できます。Oracle ADFの接続資格証明は、資格証明ストアに安全に格納されます。
Oracle WebLogic Server上にデプロイしたOracle ADFアプリケーションおよびOracle WebCenterアプリケーションには、デフォルトで指定されているようなWebLogic認証プロバイダが組み込まれますが、シングル・サインオン・ソリューション(Oracle Access ManagerまたはOracle Application Serverシングル・サインオン)を組み込むこともできます。
また、アプリケーションでは、OPSSの機能である匿名ロールと認証ロールのサポート、ポリシー管理APIおよび資格証明ストア・フレームワークを任意に使用することが普通です。
これらのトピックの詳細は、次の各項を参照してください。
Oracle ADF アプリケーションを開発および保護する方法の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』の第29章を参照してください。
JavaEEアプリケーションで機能するOPSS機能のほとんどはJavaSEアプリケーションでも機能しますが、その扱いにはいくつかの違いがあります。この項では、それらの違いについて説明します。
構成
OPSS関連の構成ファイルおよびデータ・ファイルはすべて、ドメイン・ホームの構成ディレクトリに格納されます。たとえば、JavaSE環境の構成ファイルは、デフォルトで次の場所にインストールされるファイルjps-config-jse.xml
で定義されています。
$DOMAIN_HOME/config/fmwconfig/jps-config-jse.xml
別の場所を指定するには、次のスイッチを使用します。
-Doracle.security.jps.config=pathToConfigFile
このファイルの構文は、ファイルjps-config.xml
の構文と同じです。このファイルは、WebLogicコンテナで実行するコードで使用します。詳細は、付録A「OPSS構成ファイル・リファレンス」を参照してください。
JavaSEアプリケーション向けセキュリティの構成の詳細は、第22.2項「JavaSEアプリケーション向け認証の開発」および第24.1項「JavaSEアプリケーションでのポリシー・ストアと資格証明ストアの構成」を参照してください。
クラスパスで指定する必要のあるJAR
JavaSEアプリケーションでOPSSサービスを使用できるようにするには、次のJARファイルを必ずクラスパスに追加します。このJARファイルは、Oracleのインストール・ホームのモジュール領域にあります。
$ORACLE_HOME/oracle_common/modules/oracle.jps_11.1.1/jps-manifest.jar
ログイン・モジュール
JavaSEアプリケーションでは標準のJAASログイン・モジュールを使用できます。ただし、WLS上で同じログイン・モジュールを使用する場合は、このログイン・モジュールを呼び出すカスタム認証プロバイダを実装します。SSPIインタフェースを使用すると、複数のカスタム認証プロバイダをWLSで統合できます。
JavaSEアプリケーションでの使用に推奨するログイン・モジュールはIdentityStoreログイン・モジュールです。
詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverセキュリティ・プロバイダの開発』の認証プロバイダに関する項を参照してください。