ヘッダーをスキップ
Oracle Ultra Search管理者ガイド
11gリリース1(11.1)
E05790-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

6 Oracle Ultra Searchのセキュリティ

Oracle Ultra Searchのセキュリティのアーキテクチャおよび構成について説明します。

この章では、次の項目について説明します。


関連項目:

  • Oracle Application Serverのセキュリティとそのコア機能の概要は、『Oracle Application Serverセキュリティ・ガイド』を参照してください。

  • OracleASインフラストラクチャのセキュリティのガイダンスは、『Oracle Identity Management概要および配置プランニング・ガイド』を参照してください。


Oracle Ultra Searchのセキュリティについて

ここでは、Oracle Ultra Searchセキュリティ・モデルについて説明します。次の項目が含まれます。

Oracle Ultra Searchセキュリティ・モデル

情報への不正なアクセスなどのセキュリティ上の問題により、生産性が失われる可能性があります。Oracle Ultra Searchのような検索エンジンでは、単一ゲートウェイで多種多様なコンテンツ・リポジトリにアクセスできます。これらの各リポジトリに独自のセキュリティ・モデルがあり、これによって特定のユーザーが特定のドキュメントにアクセスできるかどうかが決定されます。Oracle Ultra Searchでは複数のリポジトリのデータにアクセスできるため、不正なアクセスを防ぐには、各リポジトリ内の既存のセキュリティ情報が慎重にサポートされる必要があります。

ここでは、Oracle Ultra Searchのセキュリティ・アーキテクチャについて説明します。セキュリティは次のレベルで実装されます。

  • ユーザー認証

    これは、LDAPおよびOracle Internet DirectoryによりOracle Ultra Searchフロントエンド・インタフェースで行われるユーザーの識別です。

  • ユーザーの資格

    これにより、ユーザーが結果リストの特定の項目に関する情報にアクセスできるかどうかが決まります。これはアクセス制御リスト(ACL)により実装されます。Oracle Ultra Searchでは、ドキュメントの索引付けおよびOracle Ultra Searchへの格納時に各ドキュメントのアクセス制御リストを取得することで、マップされたセキュリティをサード・パーティ・リポジトリに提供します。Oracle Ultra Searchでは、アクセス権限を検証するためにリポジトリに接続する必要はありません。

  • Oracle Ultra Searchのセキュリティ

    Oracle Ultra Searchでの実際のセキュリティは、Oracle Ultra Searchデータベース、管理ユーザーおよびパスワード・データで、ディクショナリ・データにより処理されます。

Secure Sockets LayerおよびHTTPSを使用したOracle Ultra Search

Oracle Database 10gから、Oracle Ultra Searchは、Secure Sockets Layer(SSL)をサポートするようになりました。したがって、Oracle Ultra Searchでは、HTTPベースのURLに加え、HTTPSベースのURL(SSLを使用したHTTP)にもアクセスできます。


関連項目:

SSLでのOracle Ultra Searchの構成の詳細は、「SSL用のOracle Ultra Searchの構成」を参照してください。

ユーザーのクラスとその権限

Oracle Ultra Searchユーザーに管理権限を付与するには、ユーザーを管理グループに割り当てる必要があります。各ユーザーは、1つ以上のグループに属することができます。Oracle Ultra Searchインスタンスごとに次のグループが作成されます。

  1. インスタンス管理者: このグループのユーザーは、権限を持つインスタンスのみ管理できます。

  2. スーパーユーザー: このグループのユーザーは、インスタンスの作成、削除および権限の付与を含め、すべてのインスタンスを管理できます。

Oracle Ultra Searchユーザーは、次の2つに分類されます。

  1. シングル・サインオン・ユーザー: これらのユーザーは、Oracle Internet Directoryにより管理され、OracleAS Single Sign-Onにより認証されます。Oracle Ultra Search管理ツールにより、シングル・サインオン・ユーザーがアクセスできるすべてのOracle Ultra Searchインスタンスが識別されます。これは、Oracle Identity Managementインフラストラクチャがインストールされている場合のみ使用可能です。

  2. データベース・ユーザー: これらのユーザー(非シングル・サインオン・ユーザー)は、Oracle Ultra Searchが動作するデータベースに存在します。

Oracle Ultra Searchのデフォルト・ユーザー

Oracle Ultra Searchの新規インスタンスには、次のユーザーが含まれます。

  • WK_TEST: これは、WK_INSTと呼ばれるデフォルト・インスタンスをホスティングするインスタンス管理者ユーザーです。つまり、WK_TESTは、WK_INSTのインスタンス管理者です。セキュリティ上の理由から、WK_TESTはインストール後にロックされます。管理者は、DBAとしてデータベースにログインし、WK_TESTユーザー・アカウントのロックを解除してから、パスワードをWK_TESTに設定する必要があります。(パスワードはインストール後に失効します。)パスワードをWK_TEST以外に変更する場合は、データベースでパスワードを変更した後、管理ツールの「インスタンスの編集」ページを使用して、キャッシュされたスキーマ・パスワードも更新する必要があります。

  • WKSYS: これはデータベースのスーパーユーザーです。WKSYSは、WK_TESTなどの他のユーザーにスーパーユーザー権限を付与できます。すべてのOracle Ultra Searchデータベース・オブジェクトは、WKSYSスキーマにインストールされます。


注意:

インスタンスのホスティングには、WKUSERロールが必要です。

Oracle Ultra Searchで保護されるリソース

パブリックにクロールされるデータはすべて、パブリックにアクセスできます。

次のリソースは、Oracle Ultra Searchで保護されています。

  • アクセス制御リスト(ACL)を使用するクロール済データは保護されます。

  • パスワードはすべて保護されます。

  • ユーザー定義のデータ・ソース・パラメータは保護されます。

認可およびアクセス規定

Oracle Ultra Searchへのエントリ・ポイントには次の3つがあります。

  1. Oracle Database: これには行レベルのセキュリティにより保護されるすべてのデータおよびメタデータが含まれ、パスワードはすべて暗号化されます。

  2. Oracle Ultra Search管理ツール: これにはクロールされたデータは含まれません。Oracle Application Server Single Sign-Onまたはデータベース認証により認証する必要があります。

  3. Oracle Ultra Search問合せツール: これにはクロールされたデータが含まれます。認証されていないユーザーは、公開データのみ参照できます。認証済のユーザーは、公開データおよびACLで保護された情報を参照できます。ユーザーは、プライベート情報にアクセスするには、認証を行う必要があります。

Oracle Ultra Searchでセキュリティ・サービスが活用される仕組み

Oracle Ultra Searchでは、次の機能によりセキュリティ・サービスが活用されます。

  • Oracle Ultra SearchではSecure Sockets Layer(SSL)が使用されます。これは、インターネット上のメッセージ送信のセキュリティを管理する標準プロトコルです。これは、RMI接続、HTTPSクロールおよびセキュアなJDBCの保護に使用されます。

  • JAZN: Oracle Application Server Containers for J2EE(OC4J)は、JAZNと呼ばれるJava Authentication and Authorization Service(JAAS)プロバイダを実装しています。これにより、アプリケーション開発者にはユーザー認証、認可および委譲サービスが提供され、これらをアプリケーション環境に統合できます。

Oracle Ultra SearchでOracle Identity Managementインフラストラクチャが活用される仕組み

Oracle Ultra Searchでは、Oracle Application Server Single Sign-OnおよびOracle Internet Directoryにより、Oracle Identity Managementインフラストラクチャが活用されます。

Oracle Application Server Single Sign-Onにより、すべてのコンポーネントにログオンでき、Oracle Ultra Searchの管理インタフェースによって、データベース・ユーザーまたはシングル・サインオン・ユーザーのユーザー管理操作を実行できます。認証シングル・サインオン・ユーザーに、Oracle Ultra Searchのログオン画面が表示されることはありません。かわりに、認証SSOユーザーはインスタンスを即時に選択できます。Oracle Ultra Search管理ツールおよび問合せツールでは、シングル・サインオンが使用されます。

Oracle Internet Directoryは、Oracle固有のLDAPバージョン3準拠のディレクトリ・サービスであり、Oracle Database上にアプリケーションとして構築されています。Oracle Internet Directoryでは、Oracleの共通IDがホスティングされます。Oracle Ultra SearchインスタンスはすべてOracle Internet Directoryに登録されます。

Oracle Ultra Searchには固有のOracle Identity Managementがあります。したがって、Oracle Identity Managementインフラストラクチャが存在しない場合、Oracle Ultra SearchではOracle Databaseで使用可能な固有のユーザー管理が使用されます。

Oracle Ultra Searchの拡張性とセキュリティ

Oracle Ultra Searchは拡張可能(たとえば、クローラ・エージェントが拡張可能)ですが、これによるセキュリティ上の問題は発生しません。

Oracle Ultra Search用のセキュリティ・フレームワークの構成

ここでは、Oracle Ultra Search内での特別なセキュリティ構成について説明します。

Oracle Ultra Search用のセキュリティ・フレームワーク・オプションの構成

data-sources.xmlにクリア・テキストのパスワードを格納すると、セキュリティ上のリスクが発生します。これを防ぐには、パスワードの間接化を使用してパスワードを指定します。これにより、自動的に暗号化されるsystem-jazn-data.xmlにパスワードを入力します。data-sources.xmlからこのパスワードを指し示すことができます。


関連項目:


Oracle Ultra Searchでのセキュアな検索の構成

Oracle Ultra Searchではセキュアな検索をサポートしており、指定された検索基準を満たすドキュメントのみが取得されます。

セキュアな検索では、索引付けされた各ドキュメントは、検索中に評価されるアクセス制御リスト(ACL)によって保護されます。問合せでは、保護されたドキュメントを読み取る権限を持っている場合にのみ、ドキュメントを戻します。

ここでは、次の項目について説明します。

OracleAS 10gでセキュアな検索を有効にする前提要件

Oracle Ultra Searchをインストールする前に、データベースのバージョン要件を確認します。

  1. Oracle Database 9.2.0.4以上をインストール、またはこれにアップグレード。

  2. 9.2.0.4データベースを使用している場合は、リポジトリ作成アシスタント(RepCA)を使用して、9.2.0.4データベースをメタデータ・リポジトリに変換します。

  3. OracleAS 10gインフラストラクチャ(Oracle Identity Managementのみ)をインストールします。インストール時に、手順2で作成したメタデータ・リポジトリを必ず参照してください。

  4. RDBMS_SERVER_DNパラメータが正しく設定されているかどうかを確認します。

    このパラメータが正しく設定されていない場合は、パラメータを9.2.0.4データベースのRDBMS_SERVER_DNに変更します。次に例を示します。

    SQLPLUS>alter system set RDBMS_SERVER_DN = 'cn=iasdbM10, cn=OracleContext' scopt=spfile
    

    データベースを再起動します。

  5. OracleAS 10g中間層をインストールします。

OracleAS 10gでのセキュアな検索の有効化

「OracleAS 10gでセキュアな検索を有効にする前提要件」で示した要件を満たしていることを確認した後、次の作業を実行して、セキュアな検索を有効にします。

  1. Oracle Internet DirectoryのSSLリンクの構成

  2. /sys/apps/ultrasearchフォルダの作成

  3. Oracle Ultra Searchでのセキュアな検索機能のアクティブ化

  4. 問合せアプリケーションでのセキュアな検索のアクティブ化

Oracle Internet DirectoryのSSLリンクの構成

Oracle Internet DirectoryのSSLリンクを構成するには、次の作業を実行します。

作業1: SSL用のOracle Internet Directoryの構成

SSL用のOracle Internet Directoryを構成するには、次のようにします。

  1. Oracle Internet Directory用のウォレットを生成: Oracle Internet Directory用のウォレットを購入する必要があります。

  2. SSLの自動ログオンを設定: Windowsオペレーティング・システムの場合は、Oracle Internet Directoryを実行しているマシン内のOracle Wallet Managerを起動します。Linuxプラットフォームの場合は、コマンド・プロンプトでowmと入力します。Oracle Wallet Managerウィンドウで、次の操作を行います。

    1. 「ウォレット」「開く」をクリックしてから、「新規作成」をクリックします。

    2. ウォレットの場所を指定し、ウォレットのパスワードを入力します。自動ログオンをクリックして自動ログオン・オプションを有効にし、最後に「保存」をクリックしてOracle Wallet Managerを終了します。

  3. ウォレットを使用してセキュアなポートでリスニングをするようにOracle Internet Directoryを構成: Windowsオペレーティング・システムの場合は、Oracle Directory Managerを起動します。Linuxプラットフォームの場合は、コマンド・プロンプトでoidadminと入力し、ツールを起動します。ツール・ウィンドウで、次の操作を行います。

    1. 「サーバー管理」ノードを開き、次に「ディレクトリ・サーバー」ノードを開きます。

    2. 「ディレクトリ・サーバー」を右クリックしてから、「類似作成」をクリックして構成セットを作成します。

    3. 「SSL設定」をクリックします。

    4. 「SSLクライアントとサーバー認証」「SSLのみ」を選択します。

    5. ウォレットのURLを入力します。次に例を示します。

      file:/private/ias/lbalacha/m17/wallet/oidwallet
      
  4. 別のOracle Internet Directoryインスタンスを起動します。次の例は、別のOracle Internet Directoryインスタンスの起動方法を示しています。

    oidctl server=oidldapd conf=2 instance=5 start
    

    この例のパラメータの意味は次のとおりです。

    • confは、構成セット番号です。これは、先に作成した構成セットです。

    • instanceは、Oracle Internet Directoryインスタンス番号です。任意の番号を使用できます。

    次のコマンドを使用して、Oracle Internet Directory SSLインスタンスの正常に起動するかどうかをテストする必要があります。

    ldapbind -p 363 -U 3 -W file:. -P welcome1
    

    このコマンドのオプションの意味は次のとおりです。

    • pは、SSLポートです。

    • Uは、認証(セキュアと非セキュアの両方)です。

    • wは、ウォレットの場所です。

    • Pは、ウォレットのパスワードです。


    注意:

    Oracle Internet Directory SSLインスタンスが正常に起動した場合、バインド成功メッセージが表示されます。


    関連項目:

    『Oracle Internet Directory管理者ガイド』の第13章「Secure Socket Layer(SSL)とディレクトリ」の手順

作業2: SSL用のデータベースの構成

SSL用のデータベースを構成するには、次のようにします。

  1. データベース用ウォレットを生成: Oracle Database用のウォレットを購入する必要があります。

  2. SSLの自動ログオンを設定: Windowsオペレーティング・システムの場合は、Oracle Internet Directoryを実行しているマシン内のOracle Wallet Managerを起動します。Linuxプラットフォームの場合は、コマンド・プロンプトでowmと入力します。Oracle Wallet Managerウィンドウで、次の操作を行います。

    1. 「ウォレット」「開く」をクリックしてから、「新規作成」をクリックします。

    2. ウォレットの場所を指定し、ウォレットのパスワードを入力します。自動ログオンをクリックして自動ログオン・オプションを有効にし、最後に「保存」をクリックしてOracle Wallet Managerを終了します。

  3. データベース・ウォレットを使用して、次のコマンドでOracle Internet Directoryに接続できるかどうかをテストします。

    ldapbind -p 636 -h isunaaa20 -U 3 -W file:. -P welcome1
    

    このコマンドのオプションの意味は次のとおりです。

    • pは、SSLポートです。

    • hは、ホスト名です。

    • Uは、認証(セキュアと非セキュアの両方)です。

    • wは、データベース・ウォレットの場所です。

    • Pは、データベース・ウォレットのパスワードです。

  4. ldap.oraファイルを更新: $ORACLE_HOME/network/admin/ldap.oraでSSLポートのエントリを変更します。次に例を示します。

    DIRECTORY_SERVERS=(isunaaa20.us.oracle.com:389:636
    

関連項目:

Oracle Databaseリリース9.2の『Oracle Advanced Security管理者ガイド』の第15章「エンタープライズ・ユーザー・セキュリティの管理」(第II部、タスク1からタスク3)の手順

/sys/apps/ultrasearchフォルダの作成

セキュアな検索では、XML DBリポジトリに/sys/apps/ultrasearchフォルダが必要です。XML DBリポジトリに/sys/apps/ultrasearchフォルダを作成するために、SQLスクリプトを実行する必要があります。このフォルダは、すべてのOracle Ultra Searchアクセス制御リスト(ACL)をXML DBに格納します。

/sys/apps/ultrasearchフォルダを作成するには、次の手順を実行します。

  1. $ORACLE_HOME/ultrasearch/adminディレクトリに移動します。

  2. Oracle Ultra Searchデータベースに、SQL*Plusを使用してユーザーWKSYSとしてログインします。

  3. @wk0prepxdb.sqlSQLスクリプトを実行します。

    wk0prepxdb.sql scriptを実行すると、次のSQL文を実行して検証ができます。

    SELECT any_path FROM resource_view WHERE any_path LIKE '%ultrasearch%';
    

    前述のSQL文で、次の2行が表示されます。

    /sys/apps/ultrasearch
    /sys/apps/ultrasearch_acl.xml
    

    この確認メッセージが表示されない場合、この手順は失敗しており、この先の手順には進めません。

Oracle Ultra Searchでのセキュアな検索機能のアクティブ化

Oracle Ultra Searchのセキュアな検索機能は、デフォルトではアクティブになっていません。前述の手順をすべて完了した後、この機能を明示的にアクティブにする必要があります。

セキュアな検索機能をアクティブにするには、次のようにします。

  1. Oracle Ultra Searchデータベースに、SQL*Plusを使用してユーザーWKSYSとしてログインします。

  2. 次のPL/SQL APIを起動します。

    exec WK_ADM.SET_SECURE_MODE(1)
    

    引数1は、セキュアな検索をアクティブにしていることを示します。

    Oracle Ultra Searchインスタンスを作成する必要があります。新規に作成されたインスタンスでは、セキュアな検索が使用可能になります。ただし、既存のインスタンスでは、セキュアな検索は使用可能になりません。


注意:

その後いつでも、WK_ADM.SET_SECURE_MODE(0)コマンドを実行することにより、セキュリティを非アクティブ化できます。後から作成されたインスタンスでは、セキュアな検索はサポートされません。ただし、既存のセキュアな検索対応インスタンスは変更されません。したがって、Oracle Internet Directoryリンクが機能しなくなった場合、保護されているクロール済ドキュメントには検索を実行できません。

問合せアプリケーションでのセキュアな検索のアクティブ化

問合せアプリケーションでセキュアな検索をアクティブにするには、次の手順を実行します。

  1. Oracle Internet Directoryに接続できるよう、OC4J jazn.xmlファイルを編集します。

    <jazn provider="LDAP" default-realm="us" location="ldap://localhost:3060">
    <property name="ldap.user" value="orcladmin"/>
    <property name="ldap.password" value="!welcome"/>
    </jazn>
    
  2. orion-application.xmlファイルを編集して、JAZN LDAPを次のようにアクティブ化します。

    • $ORACLE_ HOME/j2ee/OC4J_ Portal/applications/UltrasearchQuery/META-INF/orion-application.xmlの行<jazn provider="LDAP"/>からコメントを削除します。

    • 次のコマンドを使用して、キャッシュ済のバージョンを削除します。

      rm $ORACLE_HOME/j2ee/OC4J_ Portal/application-  deployments/UltrasearchQuery/orion-application.xml
      
  3. $ORACLE_ HOME/j2ee/OC4J_ Portal/applications/UltrasearchQuery/query/WEB-INF/web.xmlファイルを編集して、usearch.jspで次のようにログイン機能を有効にします。

    <servlet>
    <servlet-name>usearch</servlet-name>
    <jsp-file>usearch.jsp</jsp-file>
    <init-param>
    -----------------------
    <param-name>login enabled</param-name>
    <param-value>true</param-value>  (Note: Change false to true)
    </init-param>
    
  4. OC4J_Portalインスタンスを再起動します。Oracle Enterprise Managerまたはopmnctlのいずれかを使用して、インスタンスを再起動できます。

  5. userarch.jspファイルにアクセスして、セキュアな検索をテストします。