Oracle® Fusion Middleware Oracle Platform Security Servicesによるアプリケーションの保護 12c (12.1.2) E47967-02 |
|
前 |
次 |
Oracle Platform Security Services (OPSS)は、サポート対象のプラットフォームまたはスタンドアロン・アプリケーションにデプロイされるアプリケーションを保護するセキュリティ・プラットフォームです。
この章では、次の各項でこのプラットフォームの主な機能を紹介します。
このドキュメントでは、Oracle Webサービスのセキュリティについては説明しません。このトピックの詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』を参照してください。
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では、アプリケーション・プログラミング・インタフェース(API)として抽象レイヤーを提供しています。これにより、開発者は、セキュリティおよびアイデンティティ管理の実装の詳細に関与する必要がなくなります。OPSSを使用すれば、開発者は、暗号キーの管理、リポジトリ・インタフェースや他のアイデンティティ管理インフラストラクチャについて詳しく把握しておく必要がありません。社内開発アプリケーション、サード・パーティ・アプリケーションおよび統合アプリケーションでは、OPSSを使用することで、企業全体で統一された同一のセキュリティ・サービス、アイデンティティ管理サービスおよび監査サービスを利用できます。
FAQ、ホワイトペーパー、サンプル・コード、フォーラム・ディスカッションなど、OPSS関連のニュースは、http://www.oracle.com/technology/products/id_mgmt/opss/index.html
を参照してください。
OPSSは、ロールベースのアクセス制御(RBAC)、Java Enterprise Edition (Java EE)およびJava Authorization and Authentication Services (JAAS)の各標準に準拠しています。
これらの標準に基づいているOPSSは、次の機能をサポートする統合セキュリティ・プラットフォームを提供します。
認証
IDアサーション
ファイングレインJAASパーミッションに基づいた認可
アプリケーション・ポリシーの指定と管理
資格証明ストア・フレームワークを使用したシステム資格証明のセキュアな格納とアクセス
キーストア・サービスを使用したキーと証明書のセキュアな格納とアクセス
監査
ロール管理とロール・マッピング
ユーザーおよびロールAPI
ID仮想化
セキュリティの構成と管理
SAMLとXACML
Oracle Security Developer Tools(暗号化ツールなど)
ポリシー管理API
Java Authorization Contract for Containers (JACC)
特定のOPSS機能の詳細は、このガイドの該当する章を参照してください。
WebLogic監査プロバイダの詳細は、『Oracle WebLogic Serverセキュリティの管理』のWebLogic監査プロバイダの構成に関する説明を参照してください。
OPSSは、Oracle WebLogic Serverアプリケーション・プラットフォームでサポートされています。
OPSSは、アプリケーション・サーバーのセキュリティとOracle Fusion Middlewareのセキュリティで構成されます。図1-1は、この2つのセキュリティ・フレームワークを組み合せた階層型アーキテクチャを示しています。
一番上のレイヤーにはOPSSセキュリティ・サービス、次のレイヤーにはサービス・プロバイダ、一番下のレイヤーには3種類の内の1つのリポジトリを使用するOPSSセキュリティ・ストアがそれぞれ含まれます。
セキュリティ・サービス・プロバイダ
セキュリティ・サービス・プロバイダ・インタフェース(SSPI)によって、Java EEコンテナ・セキュリティおよび環境に応じたリソースベースの認可が提供されます。
SSPIは、プラガブルなセキュリティ・プロバイダを実装するための一連のAPIです。これらのインタフェースを実装するモジュールをSSPIにプラグインすることで、カスタム認証や特定のロール・マッピングなどの特別なタイプのセキュリティ・サービスを提供できます。
詳細は、『Oracle WebLogic Serverセキュリティの理解』のセキュリティ・サービス・プロバイダ・インタフェース(SSPI)に関する説明を参照してください。
Oracle Platform Security Services
Java Authorization (JAZN)機能には、資格証明ストア・フレームワーク(CSF)、共通監査フレームワーク(CAF)、キーストア・サービスおよびその他のコンポーネントが含まれます。また、SSPIと結合してOracle Platform Security Services (OPSS)を構成します。
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リポジトリに移動(再関連付け)できます。
出荷時にはキーおよび証明書はファイルベースのキーストアに格納されていますが、データベースまたはLDAPリポジトリに再関連付けすることができます。
Oracle ADFは、エンドツーエンドJava EEフレームワークです。これによって、追加設定なしで使用できるインフラストラクチャ・サービスと、視覚的で宣言的な開発エクスペリエンスが提供され、開発が簡素化されます。
Oracle ADFのセキュリティはJAASセキュリティ・モデルに基づいており、このモデルはOPSSを使用しています。Oracle ADFのセキュリティでは、ファイルベース、LDAPベースまたはDBベースのセキュリティ・ストアがサポートされ、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ユーザー・インタフェースと簡素化されたデータベース・アクセス
関連情報については、「シナリオ2: Oracle ADFアプリケーションの保護」を参照してください。
アプリケーション・タイプに応じて、Oracle WebLogic管理コンソール、WLSTコマンド、Fusion Middleware ControlまたはOracle Entitlements Serverを使用してアプリケーション・セキュリティを管理するガイドラインは次のようになります。
Java EEアプリケーションの場合は、セキュリティをOracle WebLogic管理コンソール、Oracle Entitlements ServerまたはWLSTコマンドで管理します。
Oracle SOA、Oracle WebCenter、MDSおよびOracle ADFの各アプリケーションでは、Oracle WebLogic管理コンソールで認証を管理し、Fusion Middleware ControlおよびOracle Entitlements Serverで認可を管理します。
OPSSに統合するJava EEアプリケーションの場合、Oracle WebLogic管理コンソールで認証を管理し、Fusion Middleware ControlおよびOracle Entitlements Serverで認可を管理します。
セキュリティ管理の詳細は、第5章「セキュリティ管理」を参照してください。
この項では、次の各シナリオで、アプリケーションを保護するために一般的に使用される主なOPSS機能をまとめています。
その他のユースケースについては、第16.2項「セキュリティ統合のユースケース」を参照してください。
CSF、ユーザー/ロール、ポリシー管理などのOPSS APIを使用するようにJava EEアプリケーションを拡張できます。ユーザーの電子メール、電話、住所などのユーザー属性を取得するには、Identity Governance Framework APIまたはユーザー/ロールAPIを使用します。外部システム資格証明(ウォレットまたはLDAPベース・ストアに格納)を取得するには、CSF APIを使用します。認可ポリシー・データの管理には、ポリシー管理APIを使用します。アプリケーションのキーおよび証明書の管理にはキーストア・サービスAPIを使用します。
Oracle WebLogic Server上にデプロイされるサーブレット、JSP、EJBなどのJava EEアプリケーションは、認証と認可をファイルweb.xml
で指定することで宣言的に使用するように構成することも、isUserInRole
およびisCallerInRole
のコールによってプログラム的に使用するように構成することもできます。
カスタムの認証プロバイダには、標準のBasic認証、フォーム認証、クライアント証明書認証の各方法があります。サーブレットとEJBの間の認証は、ユーザー・ロールとエンタープライズ・グループを使用して制御します。これらのロールとグループは通常、LDAPリポジトリ、データベースまたはカスタムの認証プロバイダに格納します。
Oracle Application Development Framework (ADF)は、Oracle JDeveloperに用意されているJava EE開発フレームワークであり、Java EEアプリケーションのインフラストラクチャを実装するコードの作成を最小限に抑えることで、アプリケーションの開発を簡素化します。その結果、アプリケーション機能に開発リソースを集中できるようになります。Oracle ADFでは、これらのインフラストラクチャの実装をOracle JDeveloperフレームワークの中で実現し、Java EEの視覚的宣言的な開発アプローチによる開発エクスペリエンスの向上を図っています。
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 Application Development FrameworkによるFusion Webアプリケーションの開発』の第29章を参照してください。
Java EEアプリケーションで機能するOPSS機能のほとんどはJava SEアプリケーションでも機能しますが、その扱いにはいくつかの違いがあります。この項では、それらの違いについて説明します。
OPSSサービスの開始
Java SEアプリケーションでは、任意のOPSSセキュリティ操作を起動する前に、OPSSメソッドAppSecurityContext.
JpsStartup.start()
を使用する必要があります。
構成
OPSS関連の構成ファイルおよびデータ・ファイルはすべて、ドメイン・ホームの構成ディレクトリに格納されます。たとえば、Java SE環境の構成ファイルは、デフォルトで次の場所にインストールされるファイルjps-config-jse.xml
で定義されています。
$DOMAIN_HOME/config/fmwconfig/jps-config-jse.xml
別の場所を指定するには、次のスイッチを使用します。
-Doracle.security.jps.config=pathToConfigFile
このファイルの構文は、ファイルjps-config.xml
の構文と同じです。このファイルは、WebLogicコンテナで実行するコードで使用します。詳細は、付録A「OPSS構成ファイル・リファレンス」を参照してください。
Java SEアプリケーションのセキュリティ構成の詳細は、第19章「OPSSを使用するためのJava SEアプリケーションの構成」を参照してください。
クラスパスで指定する必要のあるJAR
Java SEアプリケーションでOPSSサービスを使用できるようにするには、次のJARファイルを必ずクラスパスに追加します。このJARファイルは、Oracleのインストール・ホームのモジュール領域にあります。
$ORACLE_HOME/oracle_common/modules/oracle.jps_12.1.2/jps-manifest.jar
ログイン・モジュール
Java SEアプリケーションでは標準のJAASログイン・モジュールを使用できます。ただし、WLS上で同じログイン・モジュールを使用する場合は、このログイン・モジュールを呼び出すカスタム認証プロバイダを実装します。SSPIインタフェースを使用すると、複数のカスタム認証プロバイダをWLSで統合できます。
Java SEアプリケーションでの使用にお薦めするログイン・モジュールはIdentityStoreログイン・モジュールです。このログイン・モジュールおよび他のログイン・モジュールの詳細は、第19.3.3項「ログイン・モジュール」を参照してください。
詳細は、『Oracle WebLogic Serverセキュリティ・プロバイダの開発』の「認証プロバイダ」を参照してください。