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データベース、管理ユーザーおよびパスワード・データで、ディクショナリ・データにより処理されます。
Oracle Database 10gから、Oracle Ultra Searchは、Secure Sockets Layer(SSL)をサポートするようになりました。したがって、Oracle Ultra Searchでは、HTTPベースのURLに加え、HTTPSベースのURL(SSLを使用したHTTP)にもアクセスできます。
Oracle Ultra Searchユーザーに管理権限を付与するには、ユーザーを管理グループに割り当てる必要があります。各ユーザーは、1つ以上のグループに属することができます。Oracle Ultra Searchインスタンスごとに次のグループが作成されます。
Oracle Ultra Searchユーザーは、次の2つに分類されます。
シングル・サインオン・ユーザー: これらのユーザーは、Oracle Internet Directoryにより管理され、OracleAS Single Sign-Onにより認証されます。Oracle Ultra Search管理ツールにより、シングル・サインオン・ユーザーがアクセスできるすべてのOracle Ultra Searchインスタンスが識別されます。これは、Oracle Identity Managementインフラストラクチャがインストールされている場合のみ使用可能です。
データベース・ユーザー: これらのユーザー(非シングル・サインオン・ユーザー)は、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で保護されています。
アクセス制御リスト(ACL)を使用するクロール済データは保護されます。
パスワードはすべて保護されます。
ユーザー定義のデータ・ソース・パラメータは保護されます。
Oracle Ultra Searchへのエントリ・ポイントには次の3つがあります。
Oracle Database: これには行レベルのセキュリティにより保護されるすべてのデータおよびメタデータが含まれ、パスワードはすべて暗号化されます。
Oracle Ultra Search管理ツール: これにはクロールされたデータは含まれません。Oracle Application Server Single Sign-Onまたはデータベース認証により認証する必要があります。
Oracle Ultra Search問合せツール: これにはクロールされたデータが含まれます。認証されていないユーザーは、公開データのみ参照できます。認証済のユーザーは、公開データおよびACLで保護された情報を参照できます。ユーザーは、プライベート情報にアクセスするには、認証を行う必要があります。
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 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ではセキュアな検索をサポートしており、指定された検索基準を満たすドキュメントのみが取得されます。
セキュアな検索では、索引付けされた各ドキュメントは、検索中に評価されるアクセス制御リスト(ACL)によって保護されます。問合せでは、保護されたドキュメントを読み取る権限を持っている場合にのみ、ドキュメントを戻します。
ここでは、次の項目について説明します。
Oracle Ultra Searchをインストールする前に、データベースのバージョン要件を確認します。
Oracle Database 9.2.0.4以上をインストール、またはこれにアップグレード。
9.2.0.4データベースを使用している場合は、リポジトリ作成アシスタント(RepCA)を使用して、9.2.0.4データベースをメタデータ・リポジトリに変換します。
OracleAS 10gインフラストラクチャ(Oracle Identity Managementのみ)をインストールします。インストール時に、手順2で作成したメタデータ・リポジトリを必ず参照してください。
RDBMS_SERVER_DN
パラメータが正しく設定されているかどうかを確認します。
このパラメータが正しく設定されていない場合は、パラメータを9.2.0.4データベースのRDBMS_SERVER_DN
に変更します。次に例を示します。
SQLPLUS>alter system set RDBMS_SERVER_DN = 'cn=iasdbM10, cn=OracleContext' scopt=spfile
データベースを再起動します。
OracleAS 10g中間層をインストールします。
「OracleAS 10gでセキュアな検索を有効にする前提要件」で示した要件を満たしていることを確認した後、次の作業を実行して、セキュアな検索を有効にします。
Oracle Internet DirectoryのSSLリンクを構成するには、次の作業を実行します。
SSL用のOracle Internet Directoryを構成するには、次のようにします。
Oracle Internet Directory用のウォレットを生成: Oracle Internet Directory用のウォレットを購入する必要があります。
SSLの自動ログオンを設定: Windowsオペレーティング・システムの場合は、Oracle Internet Directoryを実行しているマシン内のOracle Wallet Managerを起動します。Linuxプラットフォームの場合は、コマンド・プロンプトでowm
と入力します。Oracle Wallet Managerウィンドウで、次の操作を行います。
「ウォレット」、「開く」をクリックしてから、「新規作成」をクリックします。
ウォレットの場所を指定し、ウォレットのパスワードを入力します。自動ログオンをクリックして自動ログオン・オプションを有効にし、最後に「保存」をクリックしてOracle Wallet Managerを終了します。
ウォレットを使用してセキュアなポートでリスニングをするようにOracle Internet Directoryを構成: Windowsオペレーティング・システムの場合は、Oracle Directory Managerを起動します。Linuxプラットフォームの場合は、コマンド・プロンプトでoidadmin
と入力し、ツールを起動します。ツール・ウィンドウで、次の操作を行います。
「サーバー管理」ノードを開き、次に「ディレクトリ・サーバー」ノードを開きます。
「ディレクトリ・サーバー」を右クリックしてから、「類似作成」をクリックして構成セットを作成します。
「SSL設定」をクリックします。
「SSLクライアントとサーバー認証」と「SSLのみ」を選択します。
ウォレットのURLを入力します。次に例を示します。
file:/private/ias/lbalacha/m17/wallet/oidwallet
別の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)とディレクトリ」の手順 |
SSL用のデータベースを構成するには、次のようにします。
データベース用ウォレットを生成: Oracle Database用のウォレットを購入する必要があります。
SSLの自動ログオンを設定: Windowsオペレーティング・システムの場合は、Oracle Internet Directoryを実行しているマシン内のOracle Wallet Managerを起動します。Linuxプラットフォームの場合は、コマンド・プロンプトでowm
と入力します。Oracle Wallet Managerウィンドウで、次の操作を行います。
「ウォレット」、「開く」をクリックしてから、「新規作成」をクリックします。
ウォレットの場所を指定し、ウォレットのパスワードを入力します。自動ログオンをクリックして自動ログオン・オプションを有効にし、最後に「保存」をクリックしてOracle Wallet Managerを終了します。
データベース・ウォレットを使用して、次のコマンドでOracle Internet Directoryに接続できるかどうかをテストします。
ldapbind -p 636 -h isunaaa20 -U 3 -W file:. -P welcome1
このコマンドのオプションの意味は次のとおりです。
p
は、SSLポートです。
h
は、ホスト名です。
U
は、認証(セキュアと非セキュアの両方)です。
w
は、データベース・ウォレットの場所です。
P
は、データベース・ウォレットのパスワードです。
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)の手順 |
セキュアな検索では、XML DBリポジトリに/sys/apps/ultrasearch
フォルダが必要です。XML DBリポジトリに/sys/apps/ultrasearch
フォルダを作成するために、SQLスクリプトを実行する必要があります。このフォルダは、すべてのOracle Ultra Searchアクセス制御リスト(ACL)をXML DBに格納します。
/sys/apps/ultrasearch
フォルダを作成するには、次の手順を実行します。
$
ORACLE_HOME
/ultrasearch/admin
ディレクトリに移動します。
Oracle Ultra Searchデータベースに、SQL*Plusを使用してユーザーWKSYS
としてログインします。
@wk0prepxdb.sql
SQLスクリプトを実行します。
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データベースに、SQL*Plusを使用してユーザーWKSYS
としてログインします。
次のPL/SQL APIを起動します。
exec WK_ADM.SET_SECURE_MODE(1)
引数1
は、セキュアな検索をアクティブにしていることを示します。
Oracle Ultra Searchインスタンスを作成する必要があります。新規に作成されたインスタンスでは、セキュアな検索が使用可能になります。ただし、既存のインスタンスでは、セキュアな検索は使用可能になりません。
注意: その後いつでも、WK_ADM.SET_SECURE_MODE(0) コマンドを実行することにより、セキュリティを非アクティブ化できます。後から作成されたインスタンスでは、セキュアな検索はサポートされません。ただし、既存のセキュアな検索対応インスタンスは変更されません。したがって、Oracle Internet Directoryリンクが機能しなくなった場合、保護されているクロール済ドキュメントには検索を実行できません。 |
問合せアプリケーションでセキュアな検索をアクティブにするには、次の手順を実行します。
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>
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
$
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>
OC4J_Portal
インスタンスを再起動します。Oracle Enterprise Managerまたはopmnctl
のいずれかを使用して、インスタンスを再起動できます。
userarch.jsp
ファイルにアクセスして、セキュアな検索をテストします。