Oracle® Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド 11gリリース2 (11.1.2) B70751-03 |
|
![]() 前 |
![]() 次 |
この項では、Oracle Reports Servicesのセキュリティを維持するために実行する必要のある管理作業を説明します。
Single Sign-Onのデフォルト設定を使用するために、Oracle Reports Servlet (rwservlet
)構成ファイル(rwservlet.properties
)のSINGLESIGNON
パラメータはYES
に設定されています。つまり、この設定によりOracleAS Single Sign-Onを使用してユーザーが認証されます。オラクル社ではこれを通常のセキュリティ配置モデルと考えており、完全にカスタマイズしたセキュリティ構成で実行する場合にのみ<singlesignon>no</singlesignon>
に設定してください。
ReportsアプリケーションがOAM 11gサーバーを使用して認証される場合、Single Sign-OnパラメータがNo
に設定されていても、Reports認証ページではなく、OAM認証ページが表示されます。
構成ファイルを直接変更するのではなく、Oracle Enterprise Managerを使用して構成設定を変更します。OracleAS Single Sign-Onを有効化したり無効化するには、第6.8.6項「Single Sign-Onの有効化と無効化」を参照してください。
JAZN-XML認可などのJPSベース・セキュリティを有効にすることができます。詳細は、第14章「Oracle Reports Servicesの保護」を参照してください。
構成ファイルを直接変更するのではなく、Oracle Enterprise Managerを使用して構成設定を変更します。セキュリティを有効化したり無効化するには、第6.8.1項「セキュリティの有効化と無効化」を参照してください。
Oracle Fusion Middlewareをインストールする際に、アイデンティティ・ストア、ポリシー・ストアおよび資格証明ストアを選択するように求められます。デフォルトでは、これらはファイル・ベースのストアとなります。インストール後、これらのストアのいずれかをLDAPベースのストア(Oracle Internet Directoryなど)に変更できます。詳細は、Oracle Fusion Middlewareセキュリティ・ガイドのID、ポリシーおよび資格証明の理解に関する項を参照してください。
Single Sign-Onによりデータ・ソースのセキュリティを有効にする手順は次のとおりです。
レポートを起動するURLにSSOCONN
を組み込みます。
3つの方法のいずれかを使用して、Oracle Internet Directoryにデータ・ソース接続情報を入力します。
独自のプラガブル・データ・ソースに対してSingle Sign-Onを使用してデータ・ソースのセキュリティを実装する場合には、さらに次の手順を実行する必要があります。
新しいリソース・タイプをOracle Internet Directoryに追加します。
次の各項では、これらの手順を説明します。
Single Sign-Onによりデータ・ソースのセキュリティを有効にするには、次の形式の値のSingle Sign-Onパラメータ(SSOCONN
)をURLに組み込む(またはキー・マップ・ファイルを介して参照する)必要があります。
key_name/data_source_type/conn_string_parameter
key_name
は、データベースへの接続に必要な情報を提供するOracle Internet Directoryに格納されている文字列にマップされています。
key_name
のマッピングの機能は、Single Sign-On環境で使用されている認証サーバーにより異なります。
Oracle Single Sign-On Serverが認証サーバーとして使用されている場合のマッピング
この場合、Oracle Reportsによってkey_name
が検出されると、Oracle Internet Directoryに格納されている対応キーを現行のユーザーが所有しているかどうかがチェックされます。そうである場合、Oracle Reportsではそのキーに格納されている文字列を使用してデータ・ソースに接続します。そうでない場合は、key_name
が公開キーにマップされているかどうかチェックし、マップされていればそのキーを使用します。そうでない場合、Oracle Delegated Administration Servicesにより、新しいリソースを作成するようにユーザーは要求されます。
Oracle Access Managerが認証サーバーとして使用されている場合のマッピング
この場合、Oracle Reportsによってkey_name
が検出されると、Oracle Internet Directoryに格納されている対応キーを現行のユーザーが所有しているかどうかがチェックされます。そうである場合、Oracle Reportsではそのキーに格納されている文字列を使用してデータ・ソースに接続します。そうでない場合は、key_name
が公開キーにマップされているかどうかチェックし、マップされていればそのキーを使用します。そうでない場合は、Oracle Reportsにより「キーが存在しません」というエラー・メッセージが表示されます。
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
をコマンドラインで使用する場合にこのいずれかを実行すると、エラーが発生します。
Single Sign-Onによりデータ・ソースのセキュリティを機能させるには、各ユーザーのデータ接続情報をOracle Internet Directoryに格納するか、リソースをすべてのユーザーに利用可能なデフォルト・リソースにする必要があります。次のいずれかの方法で、この情報をOracle Internet Directoryに入力できます。
Oracle Delegated Administration Services (DAS)はOracle Single Sign On Server (OSSO)とともにのみ使用されます。Oracle Access Manager (OAM)サーバーではOID内に新しいリソースを作成するためにDASは使用されません。
OSSO Serverの場合、少数のユーザーの接続情報のみ入力するときは、Oracle Delegated Administration Services (DAS)を使用して、ユーザーごとに接続文字列情報を直接Oracle Internet Directoryに入力できます。
ノート: ユーザーがOracle Delegated Administration Servicesにアクセスする前に、あらかじめ管理者がそのユーザーのユーザーIDをOracle Internet Directoryに入力しておく必要があります。このステップは、他のソースのLDAPディレクトリにすでに入力されている情報をバッチ・ロードすることで実行できます。 バッチ・ロードの詳細は、Oracle Fusion Middleware Oracle Internet Directory管理者ガイドを参照してください。 |
このDAS URLを使用して、管理を目的としてOracle Delegated Administration Servicesにアクセスします。Oracle Delegated Administration Servicesにアクセスしたら、「プリファレンス」タブの「リソースのアクセス情報」セクションでユーザーの情報を入力します。図16-4を参照してください。この場合、リソースが入力されていないと「プリファレンス」タブが表示されないことに注意してください。
図16-4 Delegated Administration Servicesの「プリファレンス」タブ
多数のユーザーのデータ・ソース情報を入力する場合、ユーザー・プロンプトまたはバッチを使用してOracle Internet Directoryに入力します。
ユーザーに各自の接続文字列情報を入力させる場合、あらかじめOracle Internet Directoryにデータ・ソース接続情報を入力する必要はありません。
認証サーバーとしてOSSO Serverを使用している場合、レポートの起動時にSSOCONN
を使用しても、そのキーに対する接続文字列がOracle Internet Directoryに格納されておらず、そのキーがすべてのユーザーに利用可能な公開キーでなければ、Oracle Delegated Administration Servicesの「リソースの作成」ページがユーザーに表示されるので、各自のデータ・ソース接続文字列を入力する必要があります。図16-5を参照してください。ユーザーが入力した文字列は今後の使用のために、Oracle Delegated Administration ServicesによってOracle Internet Directoryに格納され、新しく入力された接続文字列をレポートのデータ・ソース接続文字列としてrwservletで使用します。
認証サーバーとしてOAMを使用している場合は、レポートの起動時にSSOCONN
を使用しても、そのキーに対する接続文字列がOracle Internet Directoryに存在しなければ、Oracle Reportsにより「キーが存在しません」というエラー・メッセージが表示されます。OTN(http://www.oracle.com/technetwork/middleware/reports/overview/index.html
)で提供されているサンプルLDIFを使用してリソースを作成する必要があります。OID内にリソースを作成する方法の詳細は、第16.3.3.2.3項「バッチ・ロード」を参照してください。
ノート: この機能により、異なるデータ・ソース接続文字列を使用する多くのユーザーが、同じレポートのURLを使用できるようになります。 |
図16-5 Oracle Delegated Administration Servicesの「リソースの作成」
ノート: 「リソースの作成」ダイアログでJDBC接続文字列を入力するには、「データベース」フィールドに |
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
を作成したら、「リソースのバッチ・ロード」に進みます。
ノート: サンプルLDIFは、OTN( |
リソースのバッチ・ロード 次のステップに従って、ユーザーのデータ・ソース・リソースをバッチ・ロードします。
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)としてログインします。
「構成」タブをクリックします。
「プリファレンス」サブ・タブをクリックすると、図16-6のようなページが表示されます。
図16-6 Oracle Internet Directoryの「構成」タブの「プリファレンス」ページ
「デフォルトのリソース・アクセス情報」の「作成」をクリックします。
「リソースの作成」ページで、リソース名を入力し、ドロップダウン・リストからリソース・タイプを選択します。たとえば、「JDBCPDS」を選択します。
「次へ」をクリックします。
接続情報を入力します。たとえば、scott/tiger@mydb
と入力します。
「実行」をクリックします。
「OK」をクリックします。
「デフォルトのリソース・アクセス情報」にそのリソースが表示され、すべてのユーザーが使用できるようになります。
新しいリソース・タイプを追加して独自のプラガブル・データ・ソースをサポートするには、次の手順を実行する必要があります。
Oracle Delegated Administration Servicesを起動して、「ホーム」タブに移動します。
管理者(orcladmin
)としてログインします。
「構成」タブをクリックします。
「プリファレンス」サブ・タブをクリックすると、図16-6のようなページが表示されます。
「リソース・タイプ情報の構成」で「作成」をクリックすると、図16-7のようなページが表示されます。
フィールドにデータを入力します。少なくとも必須フィールドにはデータを入力してください。表16-3では、これらのフィールドについて説明します。
表16-3 「リソース・タイプの作成」プロパティ
プロパティ | 説明 |
---|---|
リソース・タイプ名 |
新しいリソース・タイプの名前です。この名前は、 |
表示名 |
ユーザー・インタフェースに表示されるリソース・タイプの名前です。 |
説明 |
リソース・タイプの説明や、そのリソース・タイプに関連するその他のテキスト情報です。 |
認証クラス |
必須フィールドですが、Oracle Reports Servicesには使用されません。このフィールド値にはダミーのテキストを入力しておきます。 |
接続文字列フォーマット |
そのリソースに関してOracle Internet Directoryに格納されている値を使用して、Oracle Reports Servicesで接続文字列がどのように構成されるかを定義します。例: OracleデータベースまたはJDBCデータ・ソースの場合、接続文字列は次のような形式になります。
この文字列は、ユーザー名の後にスラッシュ、パスワード、アット・マーク(
|
ユーザー名/IDフィールド名 |
|
パスワード・フィールド名 |
|
追加フィールド1から3 |
|
「実行」をクリックします。リソース・タイプが作成され、SSOCONN
値のdata_source_type
部分で参照できるようになります。
第14章「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は、このインスタンスでの例にすぎません。通常、これらの項目には環境に応じた値を入力します。