Oracle® Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド 11g リリース 1 (11.1.1) B61375-02 |
|
前 |
次 |
この項では、Oracle Reports Servicesのセキュリティを維持するために実行する必要のある管理作業を説明します。
OracleAS Single Sign-Onのデフォルト設定を使用するために、Oracle Reports Servlet(rwservlet
)構成ファイル(rwservlet.properties
)のSINGLESIGNON
パラメータはYES
に設定されています。つまり、この設定によりOracleAS Single Sign-Onを使用してユーザーが認証されます。オラクル社ではこれを通常のセキュリティ配置モデルと考えており、完全にカスタマイズしたセキュリティ構成で実行する場合にのみ<singlesignon>no</singlesignon>
に設定してください。
構成ファイルを直接変更するのではなく、Oracle Enterprise Managerを使用して構成設定を変更します。OracleAS Single Sign-Onを有効化したり無効化するには、第7.8.6項「Single Sign-Onの有効化と無効化」を参照してください。
11g リリース1(11.1.1)では、デフォルトでPortalベース・セキュリティを使用してReports Serverが保護されます。ただし、JAZN-XML認可などのJPSベース・セキュリティを有効にすることができます。詳細は、第15章「Oracle Reports Servicesの保護」を参照してください。
構成ファイルを直接変更するのではなく、Oracle Enterprise Managerを使用して構成設定を変更します。セキュリティを有効化したり無効化するには、第7.8.1項「セキュリティの有効化と無効化」を参照してください。
Oracle Fusion Middlewareをインストールする際に、アイデンティティ・ストア、ポリシー・ストアおよび資格証明ストアを選択するように求められます。デフォルトでは、これらはファイル・ベースのストアとなります。インストール後、これらのストアのいずれかをLDAPベースのストア(Oracle Internet Directoryなど)に変更できます。詳細は、Oracle Fusion Middlewareセキュリティ・ガイドのID、ポリシーおよび資格証明に関する項を参照してください。
OracleAS Single Sign-Onによりデータソースのセキュリティを有効にする手順は次のとおりです。
レポートを起動するURLにSSOCONN
を組み込みます。
3つの方法のいずれかを使用して、Oracle Internet Directoryにデータソース接続情報を入力します。
独自のプラッガブル・データ・ソースに対してOracleAS Single Sign-Onを使用してデータソースのセキュリティを実装する場合には、さらに次の手順を実行する必要があります。
新しいリソース・タイプをOracle Internet Directoryに追加します。
次の各項では、これらの手順を説明します。
OracleAS Single Sign-Onによりデータソースのセキュリティを有効にするには、次の形式の値のOracleAS Single Sign-Onパラメータ(SSOCONN
)をURLに組み込む(またはキー・マップ・ファイルを介して参照する)必要があります。
key_name/data_source_type/conn_string_parameter
key_name
は、データベースへの接続に必要な情報を提供するOracle Internet Directoryに格納されている文字列にマップされています。Oracle Reportsによってkey_name
が検出されると、Oracle Internet Directoryに格納されている対応鍵を現行のユーザーが所有しているかどうかがチェックされます。所有している場合、Oracle Reportsではその鍵に格納されている文字列を使用してデータソースに接続します。所有していない場合は、key_name
が公開鍵にマップされているかどうかチェックされます。マップされている場合は、Oracle Reportsではその鍵が使用されます。マップされていない場合、Oracle Delegated Administration Servicesでは新しいリソースを作成するようにユーザーは要求されます。
data_source_type
は、接続するデータソースの種類です。これにより、key_name
に関連付けられている文字列の形式が認識されます。data_source_type
値は、Oracle Internet Directoryに格納されている有効なリソース・タイプである必要があります。Oracle Reportsには、次のデータソースについてデフォルトのリソース・タイプが用意されています。
Oracleデータベース(OracleDB
)
JDBC PDS(JDBCPDS
)
独自のプラッガブル・データ・ソースについて、Oracle Internet Directoryに追加リソース・タイプも作成できます。
conn_string_parameter
は、Oracle Reportsのシステム・パラメータまたはユーザー・パラメータを示します。このパラメータを使用して、Oracle Reportsに接続文字列を渡します。たとえば、OracleDB
データソースの場合、Oracle ReportsではUSERID
パラメータにより接続文字列を受け取り、これを使用して指定Oracleデータベースに接続します。同様に、JDBCPDS
の場合はP_JDBCPDS
が使用されます。独自のプラッガブル・データ・ソースがある場合、Oracle Reportsに接続文字列を渡すために独自のユーザー・パラメータを定義して、それをSSOCONN
のconn_string_parameter
として指定する必要があります。
Oracleデータベースの場合、SSOCONN
を使用してレポートをコールするURLは次のようになります。
http://myhost.mycompany.com:7779/reports/rwservlet?server=rs_cped
&report=my.rdf&destype=cache&ssoconn=mykey/OracleDB/userid&desformat=html
JDBCデータソースの場合、Single Sign-Onの値は次のようになります。
http://myhost.mycompany.com:7779/reports/rwservlet?server=rs_cped
&report=Jdbcthin.rdf&destype=cache&desformat=html&ssoconn=jd1/jdbcpds/p_jdbcpds
この場合、jd1
はOracle Internet Directoryのリソース名です。
使用上の注意
SSOCONN
をコマンドラインで使用する場合は、次のことが行えません。
同一のコマンドラインでAUTHID
を指定します。
セキュアでないReports Serverに対して実行します。
rwservlet.properties
のSINGLESIGNON
をNO
に設定します。
SSOCONN
をコマンドラインで使用する場合にこのいずれかを実行すると、エラーが発生します。
OracleAS Single Sign-Onによりデータソースのセキュリティを機能させるには、各ユーザーのデータ接続情報をOracle Internet Directoryに格納するか、リソースをすべてのユーザーに利用可能なデフォルト・リソースにする必要があります。次のいずれかの方法で、この情報をOracle Internet Directoryに入力できます。
少数のユーザーの接続情報のみ入力する場合(開発環境など)、Oracle Delegated Administration Services(DAS)を使用して、ユーザーごとに接続文字列情報を直接Oracle Internet Directoryに入力できます。
注意: ユーザーがOracle Delegated Administration Servicesにアクセスする前に、あらかじめ管理者がそのユーザーのユーザーIDをOracle Internet Directoryに入力しておく必要があります。この手順は、他のソースのLDAPディレクトリにすでに入力されている情報をバッチ・ロードすることで実行できます。バッチ・ロードの詳細は、Oracle Fusion Middleware Oracle Internet Directory管理者ガイドを参照してください。 |
Oracle Fusion Middlewareをインストールする際に、Oracle Delegated Administration Servicesの場所を指定します。このURLを使用して、管理を目的としてOracle Delegated Administration Servicesにアクセスします。Oracle Delegated Administration Servicesにアクセスしたら、「プリファレンス」タブの「リソースのアクセス情報」セクションでユーザーの情報を入力します。図17-2を参照してください。この場合、リソースが入力されていないと「プリファレンス」タブが表示されないことに注意してください。
図17-2 Delegated Administration Servicesの「プリファレンス」タブ
多数のユーザーのデータソース情報を入力する場合、ユーザー・プロンプトまたはバッチを使用してOracle Internet Directoryに入力します。
ユーザーに各自の接続文字列情報を入力させる場合、あらかじめOracle Internet Directoryにデータソース接続情報を入力する必要はありません。レポートの起動時にSSOCONN
を使用する場合、Oracle Internet Directoryに鍵の接続文字列が格納されておらず、その鍵がすべてのユーザーに利用可能な公開鍵でなければ、Oracle Delegated Administration Servicesの「リソースの作成」ページがユーザーに表示されるので、各自のデータソース接続文字列を入力する必要があります。図17-3を参照してください。ユーザーが入力した文字列は今後の使用のために、Oracle Delegated Administration ServicesによってOracle Internet Directoryに格納され、新しく入力された接続文字列をレポートのデータソース接続文字列としてrwservletで使用します。
注意: この機能により、異なるデータソース接続文字列を使用する多くのユーザーが、同じレポートのURLを使用できるようになります。 |
図17-3 Oracle Delegated Administration Servicesの「リソースの作成」
注意: 「リソースの作成」ダイアログでJDBC接続文字列を入力するには、「データベース」フィールドにhostname:port:sid と入力します。 |
Oracle Reports Servicesのリソースは、次のエントリでOracle Internet Directoryに作成されます。
orclresourcename=resource_name, cn=Resource Access Descriptor, orclownerguid=guid, cn=Extended Properties, cn=OracleContext, dc=us,dc=oracle,dc=comFoot 1
処理を開始する前にリソースのバッチ・ロードを開始する前に、Oracle Internet Directoryの前述のエントリにorclownerguid=
guid
を作成しておく必要があります。Oracle Delegated Administration Servicesを使用してユーザーを作成した場合は、orclownerguid=
guid
が自動的に作成されているため、「リソースのバッチ・ロード」の作業を開始できます。
LDIFファイルでOracle Internet Directoryにユーザーを入力した場合は、「リソースのバッチ・ロード」の手順を実行する前に、次の手順を実行する必要があります。
ユーザーのGUIDを取得します。
Oracle Internet Directoryにユーザーを作成した方法に応じて、GUIDを取得する方法がいくつかあります。Oracle Internet Directory LDAP APIを使用してユーザーのGUIDを取得できます。また、次のようにldapsearch
コマンドを使用して取得することもできます。
D:\Oracle\BIN>ldapsearch -h host_name -p port_num -L -D cn=orcladmin -w orcladmin's_password -b "cn=users,dc=us,dc=oracle,dc=com" -s sub "objectclass=*" dn orclguid
cn=Extended Properties, cn=OracleContext, dc=us, dc=oracle, dc=com
で、ユーザー・エントリorclownerguid=
guid
を作成します。
プレースホルダを実際の値に置き換えて、サンプル・スクリプトORACLE_HOME
\reports\samples\scripts\createuser.ldif
を変更します。
ldapadd
を使用してcreateuser.ldif
をロードします。例:
D:\Oracle\BIN>ldapadd -D cn=orcladmin -w welcome1 -h host_name -p port_num -f createuser.ldif
orclownerguid=
guid
を作成したら、「リソースのバッチ・ロード」に進みます。
リソースのバッチ・ロード: 次の手順に従って、ユーザーのデータソース・リソースをバッチ・ロードします。
orclownerguid=
guid
, cn=Extended Properties, cn=OracleContext, dc=us, dc=oracle, dc=com
でユーザーのリソース・エントリであるorclresourcename=
resource_name
, cn=Resource Access Descriptor
を作成します。ここで、orclownerguid=
guid
は「処理を開始する前に」で作成したGUIDとなります。
プレースホルダを実際の値に置き換えて、サンプル・スクリプトORACLE_HOME
\reports\samples\scripts\createresource.ldif
を変更します。
ldapadd
を使用してcreateresource.ldif
をロードします。例:
D:\Oracle\BIN>ldapadd -D cn=orcladmin -w orcladmin's_password -h host_name -p port_num -f createresource.ldif
すべてのユーザーがリソースを使用できるようにする手順は次のとおりです。
Oracle Delegated Administration Servicesを起動して、「ホーム」タブに移動します。
管理者(orcladmin)としてログインします。
「構成」タブをクリックします。
「プリファレンス」サブ・タブをクリックすると、図17-4のようなページが表示されます。
図17-4 Oracle Internet Directoryの「構成」タブの「プリファレンス」ページ
「デフォルトのリソース・アクセス情報」の「作成」をクリックします。
「リソースの作成」ページで、リソース名を入力し、ドロップダウン・リストからリソース・タイプを選択します。たとえば、「JDBCPDS」を選択します。
「次へ」をクリックします。
接続情報を入力します。たとえば、scott/tiger@mydb
と入力します。
「実行」をクリックします。
「OK」をクリックします。
「デフォルトのリソース・アクセス情報」にそのリソースが表示され、すべてのユーザーが使用できるようになります。
新しいリソース・タイプを追加して独自のプラッガブル・データソースをサポートするには、次の手順を実行する必要があります。
Oracle Delegated Administration Servicesを起動して、「ホーム」タブに移動します。
管理者(orcladmin
)としてログインします。
「構成」タブをクリックします。
「プリファレンス」サブ・タブをクリックすると、図17-4のようなページが表示されます。
「リソース・タイプ情報の構成」で「作成」をクリックすると、図17-5のようなページが表示されます。
フィールドにデータを入力します。少なくとも必須フィールドにはデータを入力してください。表17-1では、これらのフィールドについて説明します。
表17-1 「リソース・タイプの作成」プロパティ
プロパティ | 説明 |
---|---|
リソース・タイプ名 |
新しいリソース・タイプの名前です。この名前は、 |
表示名 |
ユーザー・インタフェースに表示されるリソース・タイプの名前です。 |
説明 |
リソース・タイプの説明や、そのリソース・タイプに関連するその他のテキスト情報です。 |
認証クラス |
必須フィールドですが、Oracle Reports Servicesには使用されません。このフィールド値にはダミーのテキストを入力しておきます。 |
接続文字列フォーマット |
そのリソースに関してOracle Internet Directoryに格納されている値を使用して、Oracle Reports Servicesで接続文字列がどのように構成されるかを定義します。例: OracleデータベースまたはJDBCデータソースの場合、接続文字列は次のような形式になります。
この文字列は、ユーザー名の後にスラッシュ、パスワード、アット・マーク(
|
ユーザー名/IDフィールド名 |
|
パスワード・フィールド名 |
|
追加フィールド1から3 |
|
「実行」をクリックします。リソース・タイプが作成され、SSOCONN
値のdata_source_type
部分で参照できるようになります。
第15章「Oracle Reports Servicesの保護」で説明したように、ユーザーの権限を確認して既存のデータソース接続情報を取得するには、Oracle Reports ServicesではOracle Internet Directoryに接続する必要があります。Oracle Internet Directoryに接続する場合、次の点を検討する必要があります。
Oracle Reports Servicesは、アプリケーション・エンティティとしてOracle Internet Directoryに接続します。デフォルトでは、Oracle Reports Servicesのアプリケーション・エンティティは、それぞれOracle Fusion Middlewareのインストールに固有です。同一のOracle Fusion Middlewareインストール先(ORACLE_HOME
)から起動されるすべてのReports Serverは、同じアプリケーション・エンティティを使用してOracle Internet Directoryに接続します。この設定によって、Reports Serverでは、それぞれのOracle Fusion Middlewareインスタンスに関連するOracle Internet Directoryの情報にのみアクセスできます。
たとえば、財務グループ用と人事管理グループ用の2つのOracle Fusion Middlewareインスタンスがあるとします。財務グループ用のOracle Fusion MiddlewareインスタンスのReports Serverでは、人事管理グループにのみ関連する情報にアクセスできません。また、その逆についても同じです。このように、Oracle Internet Directoryに格納される情報はデフォルトでよりセキュアになります。
Oracle Reports Servicesの以前のリリースでは、すべてのReports Serverが同一のアプリケーション・エンティティとしてOracle Internet Directoryに接続していました。その結果、Reports ServerからOracle Internet Directory内の情報へのアクセスを制限できませんでした。
制限が少ないセキュリティ・モードに戻す場合、『Oracle Fusion Middlewareリリース・ノート』の「Oracle Reports Services」を参照してください。
Reports Serverはデフォルトで、Oracle Fusion MiddlewareとともにインストールされるOracle Internet Directoryインスタンスを使用するように構成されます。システムを新しく構築する場合は、この構成が適切です。しかし、既存のOracle Internet DirectoryインスタンスをReports Serverで使用する場合、構成を調整する必要があります。
Oracle Internet Directoryインスタンスの変更は、Oracle Fusion Middlewareの中間層を完全に変更する処理の一部として実行する必要があります。このプロセスの詳細は、『Oracle Fusion Middleware管理者ガイド』でApplication Serverインスタンスの再構成に関する章を参照してください。
脚注の凡例
脚注 1: dc=us,dc=oracle,dc=comは、このインスタンスでの例にすぎません。通常、これらの項目には環境に応じた値を入力します。