Oracle Portalには、様々な種類のWebページを作成する機能があります。この機能をJavaServer Pages(JSP)で補足することができます。
この付録では、承認されたJSPにのみアクセスを許可し、JSPによるポートレット・コンテンツへの認可されていないアクセスを防ぐことにより、Oracle Portalを保護する方法を説明します。また、ログインが必要な保護された外部JSPにアクセスできるようにするために必要な手順も説明します。
この付録の内容:
ほとんどすべてのJSPは、タグ・ライブラリを使用してOracle Portalのポートレット・コンテンツをリクエストできるので、承認されたJSPのみがアクセス可能であることが保証されるようなセキュアな方法が必要です。これは、次の2つのメカニズムで制御できます。
JSP内の<portal:usePortal>
タグ
外部JSP構成ファイル
構成ファイルによって、Oracle Portalインスタンスとインスタンス内のページ・グループが識別され、外部JSPのそれらへアクセスが許可されます。
構成ファイル固有のコーディング要件については、第C.1.1項「JavaServer Pages構成ファイルの内容」を参照してください。
完成した構成ファイルは、Oracle Portalに識別される必要があります。手順の説明は、第C.1.3項「JavaServer Pages構成ファイルの場所」を参照してください。
この項の内容:
必要なタグは次のとおりです。
<jps>
<portal>
<database>
<url>
<Cookie>
<pageGroups>
<pageGroup>
<jps>
タグは、外部JSPがアクセスできるOracle Portalインスタンスのリストを提供するためのコンテナ・タグです。
<jps version="1.0">
現行のOracle Portalリリース用にバージョン番号を1.0に設定する必要があります。
</jps>
<portal>
タグで、個々のOracle Portalインスタンスを記述します。
<portal name="MyPortal" default="true">
</portal>
表C-1 <portal>タグの属性
属性 | 値 |
---|---|
|
Oracle Portalインスタンスに付ける記述名。名前は、構成ファイル内で一意である必要があります。 |
|
usePortalタグでポータル名を指定しない場合に、このポータルがデフォルトのインスタンスかどうかを示す |
デフォルトのポータルは、構成ファイルごとに1つのみです。
<database>
タグで、指定されたOracle Portalインスタンスについてのデータベース接続情報を提供します。たとえば、次のようになります。
<database data-source="jdbc/MyPortal"/>
data-source属性値はデータ・ソースの名前であり、J2EE_HOME
/config
ディレクトリ内のdata-sources.xml
ファイルに指定されている必要があります。
次に、data-source定義の例を示します。
<data-source class="com.evermind.sql.DriverManagerDataSource" name="MyPortal" location="jdbc/MyPortal" xa-location="jdbc/xa/MyPortal" ejb-location="jdbc/MyPortal" connection-driver="oracle.jdbc.driver.OracleDriver" username="portal_app" password="portal_app" url="jdbc:oracle:thin:@xyz.oracle.com:1521:orcl" inactivity-timeout="30" />
username
およびpassword
属性は、Oracle Portalアプリケーション・スキーマのユーザー名とパスワードに設定する必要があります。
<url>
タグで、Oracle Portalインスタンスへの接続情報を提供します。たとえば、次のようになります。
<url protocol="http" host="defg.oracle.com" port="7500" path="portal/pls/portal"/>
<cookie>
タグで、Oracle PortalのCookieを記述します。たとえば、次のようになります。
<cookie name="portal" maxAge="-1" path="/" domain=".oracle.com"/>
表C-3 <cookie>タグの属性
属性 | 値 |
---|---|
|
Cookieの名前。これは、Oracle PortalインスタンスのCookie名と同じにする必要があります。nameは、cookieタグにとって必須の属性です。 |
|
Cookieの最長保存期間。秒単位で指定します。ブラウザがシャットダウンされるまでCookieの保存を希望する場合は、 |
|
ブラウザがこのCookieを返すサーバーのパス。pathは、cookieタグにとって必須の属性です。 |
|
この属性は、SSOポートレットのCookie構成に変更が行われた場合にのみ指定する必要があります。SSOのドキュメントを参照してください。 |
<pageGroups>
タグで、pageGroupタグのコンテナを形成します。このタグには属性がありません。
<pageGroups>
</pageGroups>
<pageGroup>
タグで、それぞれのページ・グループのプロパティを記述します。たとえば、次のようになります。
<pageGroup name="JPSDemo" key="welcome" default="true"/>
表C-4 <pageGroup>タグの属性
属性 | 値 |
---|---|
|
ページ・グループ名。この名前は、ページ・グループがOracle Portal内で作成されたときに付けられた名前にする必要があります。 |
|
ページ・グループのキー。この値は、Oracle Portal内でページ・グループに割り当てられたアクセス・キーの値と一致している必要があります。(ここで識別されるページ・グループは、JSPアクセスに対応できる必要があります。) |
|
このページ・グループがこのOracle Portalインスタンス内のデフォルトのページ・グループかどうかを示すフラグ。 |
デフォルトのページ・グループは、ポータル・インスタンスごとに1つのみです。
次に、JSP構成ファイルの例を示します。
例C-1 JavaServer Pages構成ファイルの例
<jps version="1.0"> <portal name="MyPortal" default="true"> <database data-source="jdbc/MyPortal"/> <url host="xyz.oracle.com" port="7500" path="/portal/pls/portal"/> <cookie name="portal" maxAge="-1" path="/" /> <pageGroups> <pageGroup name="JPSDemo" key="welcome" default="true"/> <pageGroup name="JPSDemo2" key="welcome" default="false"/> </pageGroups> </portal> <portal name="AnotherPortal"> <database data-source="jdbc/AnotherPortal"/> <url protocol="http" host="abc.oracle.com" port="8888" path="/portal/pls/portal90"/> <cookie name="portal90" maxAge="-1" path="/" /> <pageGroups> <pageGroup name="JPSDemo" key="welcome"/> <pageGroup name="JPSDemo1" key="welcome1"/> <pageGroup name="JPSDemo2" key="welcome2"/> <pageGroup name="JPSDemo3" key="welcome3"/> <pageGroup name="JPSDemo4" key="welcome4"/> </pageGroups> </portal> </jps>
JavaServer Pages構成ファイルは任意の名前とすることができ、ファイル・システムのどの場所にも置くことができます。
この場所は、web.xml
ファイルのコンテキスト・パラメータを使用して指定します。このファイルはMW_HOME\user_projects\domains\<Domain Name>\servers\WLS_PORTAL\tmp\_WL_user\portal\uh04o6\war\WEB-INF
ディレクトリにあります。
web.xml
ファイル内のコンテキスト・パラメータは、次のとおりです。
<context-param> <param-name>oracle.webdb.service.ConfigLoader</param-name> <param-value>/WEB-INF/wwjps.xml</param-value> <description>This parameter specifies the location of the JPS configuration file</description> </context-param>
外部JSPは、そのログイン要件によって次のように分類されます。
ログインが不要な、またはOracle Portalのログイン・リンクを通じてユーザーがログインするパブリックJSP
ログインが必要な保護されたJSP
保護された外部JSPには追加の設定要件があります。そのような要件については、次の項で説明します。
次の手順は、保護された外部JSPに対してのみ必要です。つまり、ログインが必要な外部JSPに対する手順です。
外部JSP内でポータルへのログインが必要な場合は、次のタグ構文を使用する必要があります。
<portal:usePortal id="AnyPortal" pagegroup="AnyPageGroup" login="true" />
このJSPを実行すると、まだログインしていない場合は、OracleAS Single Sign-Onへリダイレクトされます。これを正常に機能させるために、次の項を参照してください。
mod_ossoの設定(まだ設定されていない場合)
デフォルトでは、使用中のOracle HTTP Serverは、OracleAS Single Sign-Onに登録されています。変更が発生したために再登録が必要な場合は、『Oracle Application Server Single Sign-On管理者ガイド』を参照してください。
JAZNとは、Java Authentication and Authorization Service(JAAS)プロバイダの内部名です。JAASは、アプリケーションがユーザーのアクセス制御を認証および適用できるようにするJavaパッケージです。Oracle Portal内でのJAZNの使用は、外部JSPの認証に制限されています。
JAZNがLDAPと連携していることを確認します。(JAZNに提供されるデモを使用することができます。)
次の追加手順を実行します。
MW_HOME\user_projects\domains\<DomainName>\servers\WLS_PORTAL\tmp\_WL_user\portalTools_11.1.1.1.0\124k5v\META-INF\orion-application.xml
で、次の行を追加します。
<jazn provider="LDAP" location="ldap://<OIDHOST>:389" default-realm="oracle"> <jazn-web-app auth-method="SSO" /> </jazn>
ポート番号389
は、LDAPサーバーのデフォルトのポートです。ただし、他のどのようなポートでも割り当てることができます。<host>
および<port>
の情報を入手するためには、Oracle Internet Directory管理者に連絡してください。
関連項目 詳細は、次を参照してください。
|