ヘッダーをスキップ

Oracle Containers for J2EE セキュリティ・ガイド
10g(10.1.3.4.0)

B50832-01
目次
目次
索引
索引

戻る 次へ

3 OC4Jセキュリティの概要

この章では、Oracle Containers for J2EE(OC4J)のセキュリティ実装の概要について説明します。この実装を使用すると、開発者は認証サービス、認可サービスおよび委任サービスをアプリケーションと統合できます。

この実装において重要なコンポーネントは、JAAS仕様をサポートするOracle Application Server Java Authentication and Authorization Service(JAAS)Providerです。

この章の内容は次のとおりです。

OracleAS JAAS Providerおよびセキュリティ・プロバイダの概要

OC4Jには、JAAS実装、Oracle Application Server Java Authentication and Authorization Service(JAAS)Providerが用意されています。OracleAS JAAS Providerでは、Java 2セキュリティ・モデルを使用するJ2SEアプリケーションおよびJ2EEアプリケーションに簡単に統合でき、開発者がアプリケーション環境に統合できるユーザー認証、認可および委任の各サービスを実装しています。アプリケーション開発者はこれらのサービスの開発にリソースを費やすかわりに、アプリケーションのプレゼンテーションおよびビジネス・ロジックに重点を置くことができます。

OC4Jアプリケーション用セキュリティ・フレームワークには、ファイルベース、Oracle Identity Management(LDAPディレクトリベース)、外部LDAPディレクトリ、Oracle Access Managerおよびカスタム(カスタム・ログイン・モジュールを使用)といういくつかの特定セキュリティ・プロバイダも、OracleAS JAAS Provider以外にサポートしているという重要な側面があります。

この項の以降の部分で、次の項目について説明します。

OracleAS JAAS Providerの概要

OracleAS JAAS Providerにより、JAASログイン構成プロバイダ・インタフェースおよびJAASポリシー・プロバイダ・インタフェースが実装されます。

OracleAS JAAS Providerを使用すれば、アプリケーションでリソース・ユーザーに対して密なアクセス制御を実施できます。セキュリティ対応アプリケーションがOC4Jで実行されるときの3つの重要な手順は次のとおりです。

  1. ログイン・モジュールを作成し、起動します。これには、OracleAS JAAS Providerが関与します。OC4Jには、サポートされるセキュリティ・プロバイダ用のログイン・モジュールが用意されています。カスタム・ログイン・モジュールを使用することもできます。

  2. ログインを試みているユーザーを認証します。これはセキュリティ・プロバイダが行います。

  3. ユーザーが実行を試みている操作のパーミッションをチェックすることによってユーザーを認可します。これには、OracleAS JAAS Providerが関与します。

OracleAS JAAS Providerは、デフォルトでOC4J製品の一部として構成されています。


注意

以前のリリースでは、OracleAS JAAS ProviderのかわりにJAZNという用語が使用されていました。現在、この用語は一般には使用されていませんが、コード(クラス名やパッケージ名として)およびAdmintoolのシェル・プロンプトではまだ使用されています。 


JAASフレームワークの機能の概要

表3-1に、OracleAS JAAS Providerにより実装されるJAASフレームワークの機能を示します。

表3-1    JAASフレームワークの機能 
機能  説明  関連項目 

認証 

  • J2EEアプリケーション環境のログイン認証用Oracleシングル・サインオン・ソリューションと統合します。

  • OracleAS CoreまたはJava Editionなど、非SSO環境向けにデフォルトのRealmLoginModuleクラスを提供します。

  • JAAS準拠のカスタム・ログイン・モジュールをすべてサポートします。

 

「OC4J環境での認証機能の概要」 

宣言によるモデル 

  • web.xmlejb-jar.xmlなどのJ2EEデプロイメント・ディスクリプタをJAASセキュリティと統合します。

 

 

認可 

  • J2EE認可モデルをサポートします。

  • JAAS認可モデルをサポートします。

  • Java Authorization Contract for Containersをサポートします。

 

「OC4J環境における認可API、JAASモードおよびJACC」 

レルム管理 

  • ユーザーおよびロール管理をサポートするために、パッケージoracle.security.jazn.realmが提供されます。

 

 

ポリシー管理 

  • 認可ポリシーの管理のために、パッケージoracle.security.jazn.policyが提供されます。

 

 

管理 

  • Oracle Enterprise Manager 10gまたはコマンドラインのOracleAS JAAS Provider Admintoolを使用して管理および構成をサポートします。

 

「Oracle Application ServerおよびOracleAS JAAS Provider向けのツール」 

JAZNUserManager 

  • ファイルベース・プロバイダ、Oracle Identity ManagementおよびOracle Access Managerと統合できるセキュリティ・プロバイダ実装を提供します。このクラスは、oracle.security.jazn.oc4jパッケージに含まれています。

 

 

OracleAS JAAS Providerのセキュリティ・レルム

JAASフレームワークでは、ユーザー・コミュニティは明示的に定義されません。ただし、J2EEにはレルムと呼ばれるユーザー・コミュニティの概念があります。

レルムは、同じ認証ポリシーによって制御されるユーザーとロールのコレクションです。すなわち、レルムは認証済ユーザーに対して一連のパーミッションを定義するセキュリティ・ドメインです。

各レルムには、一連の構成されたユーザーおよびロールが含まれています。(OC4J構成では、ユーザーとロールはすべてレルム定義内に構成できます。)

関連項目

 

サポートされているセキュリティ・プロバイダ

Oracle Application Serverでは、次のセキュリティ・プロバイダがサポートされます。各セキュリティ・プロバイダは、事実上セキュリティ・プロバイダの一部である、該当するログイン・モジュール(ファイルベース・プロバイダおよびLDAPベース・プロバイダの場合はRealmLoginModule)に関連付けられます。さらに、各セキュリティ・プロバイダでは、レルム情報(ユーザーとロール)とJAASポリシー情報(パーミッション)からなるデータをセキュアかつ集中的に格納、取得および管理するために、リポジトリが使用されます。

図3-1に、サポートされているセキュリティ・プロバイダがどのようにセキュリティ・プロバイダ・フレームワーク全体と対話するかを示します。

図3-1    OC4Jセキュリティ・アーキテクチャ


画像の説明

OC4J環境での認証機能の概要

この項では、OC4Jにおける認証に関する次の項目について説明します。

サポートされるWebアプリケーションの認証方式

OC4Jでは、Basic、Digest、フォームベースおよびClient-Certという標準的な認証方式がサポートされます。これら認証方式の概要は「Webアプリケーションの標準認証方式」に記載されています。また、認証方式は標準のweb.xmlファイルに構成されています。詳細は、「認証方式(auth-method)の指定」を参照してください。

OC4Jでは、Oracle Application ServerとOC4Jに提供されている、各種シングル・サインオン認証方式もサポートされます。これら認証方式の概要は、以降の「Oracle Application Serverシングル・サインオン代替方法の概要」に記載されています。また、この項には詳細の参照先も記載されています。

OC4Jログイン・モジュールの概要

Oracleは、次のログイン・モジュールを提供しています。

OC4Jでは、ログイン・モジュール標準に準拠するカスタム・ログイン・モジュールもサポートされます。このことについては、第9章「ログイン・モジュール」全体で説明しています。

Oracle Application Serverシングル・サインオン代替方法の概要

シングル・サインオンとは、ユーザーが一度ログインすると、OC4のインスタンスまたはクラスタ内で複数のWebアプリケーションにアクセスできる機能のことです。次のシングル・サインオン認証方式は、Oracleに固有です。これらの認証方式を使用するかどうかは、標準のweb.xmlファイルではなく、Oracleのorion-application.xmlファイルの構成で指定されます。

JAZNUserManagerの委任(ファイルベース・プロバイダ)

OracleAS JAAS Provider JAZNUserManagerによって、OC4Jの認証が調整されます。Webアプリケーションの場合、HTTPリクエストをターゲット・サーブレットにディスパッチする前に、JAZNUserManagerが認証対象ユーザーの情報(SSO用Oracle HTTP Server mod_ossoモジュールなどによって設定)をHTTPリクエスト・オブジェクトから取得し、JAASサブジェクトをOC4J内に設定します。

JAZNUserManagerは、後述するように委任モデルをサポートしますが、実質的にはこれはファイルペース・プロバイダにのみ適用されます。委任を使用すると、ユーザーまたはグループがアプリケーションレベルJAZNUserManagerインスタンスに見つからない場合、リクエストが親ユーザー・マネージャに委任されます。

次の制限事項および説明に特に注意してください。

OC4J環境での認可機能の概要

OC4J環境の認可には次のような機能があります。詳細は、第5章「OC4Jでの認可」を参照してください。

セキュリティ・ロール・マッピングの概要

OC4Jでは、標準のディスクリプタに定義されたJ2EE論理ロール(単に「J2EEロール」と呼ばれます)をデプロイ・ロール(このドキュメントの以前のバージョンでは「JAASロール」と呼ばれていました)にマップし、特定のデプロイ・ロールのメンバーであるユーザーがリソースにアクセスできるようにします。このリソースには、関連付けられたJ2EEロールからアクセスできます。デプロイ・ロールはセキュリティ・プロバイダ内に定義されます。たとえば、ファイルベース・プロバイダの場合はsystem-jazn-data.xmlに、LDAPベース・プロバイダの場合はOracle Internet Directoryに、外部LDAPプロバイダの場合はカスタム・ログイン・モジュールまたはOracle Access Managerに定義されます。

セキュリティ・ロールの構成およびマッピングの基本的な手順は、次のとおりです。

  1. 標準のJ2EE機能を使用して、J2EE論理ロールをデプロイメント・ディスクリプタ(web.xmlおよびejb-jar.xml)に指定します。この手順には、OC4J固有のものはありません。J2EEロールは、<security-role>要素で宣言されます。

  2. 必要に応じて、アプリケーション・コード内に定義されたアプリケーション論理ロールを<security-role>要素に宣言されたJ2EEロールにリンクするためのセキュリティ・ロール参照を指定します。これは、標準のデプロイメント・ディスクリプタ内で<security-role-ref>要素を使用して行えます。このメカニズムを利用することで、アプリケーション・コードを変更せずに論理セキュリティ・ロールの定義を調整することができます。後は、希望するようにJ2EE論理ロールをアプリケーション・ロールにリンクするのみです。この手順には、OC4J固有のものはありません。

  3. デプロイ・ロールを構成するか、デフォルトのロールを使用します。たとえばファイルベース・プロバイダの場合、デプロイ・ロールが定義されている場所はOC4Jのsystem-jazn-data.xmlファイル、またはアプリケーション固有のjazn-data.xmlファイルです。LDAPベース・プロバイダの場合、デプロイ・ロールはOracle Internet Directoryに定義されています。

  4. J2EEロールをデプロイ・ロールにマップします。これを行うには、Application Server Controlを使用して、マッピングをorion-application.xmlorion-ejb-jar.xmlまたはorion-web.xml<security-role-mapping>要素に反映します。

    関連項目

     

アイデンティティ管理フレームワークとAPIの一般的な使用の概要

OC4J 10.1.3.1実装には、新機能であるサード・パーティのアイデンティティ・リポジトリ用の汎用目的サポートが用意されています。このサポートには、次のような機能があります。


戻る 次へ
Oracle
Copyright © 2003, 2008 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引