Sun ONE ロゴ     前へ      目次      索引      次へ     
Sun ONE Portal Server 6.0 管理者ガイド



第 7 章   リライタサービスの管理

この章では、Sun™ ONE Portal Server の リライタ サービスの管理方法を説明します。

この章には、次の節があります。

リライタサービスの概要

Sun™ ONE Portal Server リライタは、マークアップ言語と JavaScript コードで URL の変換を行うためのエンジンを提供します。 デスクトップサービスの URLScraperProviderXMLProvider 、および Sun ONE Portal Server Secure Remote Access ゲートウェイサービスはすべてリライタサービスを使用します。

リライタは Web ページの内容をスキャンし、それらの Web ページ上で検出した URL を特定します。 リライタは規則セットで定義される規則の集合を使用して、Web ページのリライトする要素を判断します。 リライタが URL を特定すると、次の方法で URL をリライトします。

相対 URL の絶対 URL への拡張

URLScraperProvider はコア Sun ONE Portal Server 製品の一部を構成します。 ゲートウェイを使用しないシナリオでは、URLScraperProvider を使用して相対 URL を絶対 URL に拡張することができます。 例えば、ユーザーが次のサイトにアクセスしようとする場合、

<a href=モ../mypage.htmlモ>

リライタはこれを次のように解釈します。

<a href=モhttp://www.yahoo.com/mail/mypage.htmlモ>

ここでhttp://www.yahoo.com/mail/ は収集されたページのベース URL です。

URLScraperProvider の制限

URLScraperProvider は指定された URL のチャネルへの表示のみを試みます。 ドキュメント URL (ドキュメント) の表示箇所を指定する方法はありません。 URLScraperProvider は指定された URL の内容を要求するという点で、HTTP クライアントと同様に機能します。 ブラウザの場合と同じく、収集のターゲットとなる URL はネットワーク上でアクセス可能か、プロキシを設定している必要があります。

最終的な URL スクレーパーチャネルは、ミニブラウザでもフレームでもありません。 したがって、コンテンツにリンクがある場合、チャネルだけではなくページ全体に影響します。 URL スクレイパーチャネル内部を参照することはできません。 チャネル内でリンクを選択すると、ブラウザはリンクを変換し、現在表示されているページ (ポータルサーバーのデスクトップ) をリンク場所のコンテンツに置き換えます。

収集されたチャネルの外観は、オリジナルのコンテンツの作成元によって制御されます。 URLScraperProvider は全くコンテンツを修正せず、URL を通じて入手できる内容だけを表示します。 チャネルは本来 HTML テーブル内のセルであるため、テーブルセルに表示できる HTML コンテンツを表示するだけです。 すなわち、URLScraperProvider を使用してフレームセットを収集することはできません。これは <FRAMESET> タグを <BODY> タグ内で表示できないためです。 URLScraperProvider はまた、<HEAD> タグを使って JavaScript コードを実行しません。 このため、次の収集シナリオは URLScraperProvider については適切ではありません。

  • ユーザーがチャネルをカスタマイズできるように、ある種の編集機能が要求される場合。
  • データが HTML Web 以外のサーバーソース、すなわちデータベースかメールサーバーから導出されている場合。
  • データをチャネルに合った何らかの方法で再フォーマットする必要がある場合。
  • URLScraperProvider がそれぞれの デスクトップ表示およびユーザーに対して要求を行い、検索する際に、より効率的なソリューションが要求される場合。

ゲートウェイ URL を既存の URL の前に指定

Sun ONE Portal Server: Secure Remote Access Pack などのゲートウェイを実装している場合、ゲートウェイはクライアントのプロキシとして動作し、イントラネットサイトにアクセスして、応答をクライアントに返します。 リライタはダウンロードされたページで URL を変換し、既存の URL の前にゲートウェイ URL を接頭辞として指定して、URL が元のサイトではなくゲートウェイを示すようにします。

例えば、ユーザーが次の URL を使用してmymachine で HTML ページにアクセスしようとする場合、次のように指定します。

<a href=モhttp://mymachine.intranet.com/mypage.html>

リライタは、次のように接尾辞としてゲートウェイを参照する URL を指定します。

<a href=モhttps://gateway.company.com/http://mymachine.intranet.com/mypage.html>

ユーザーがこのアンカーに関連するリンクをクリックすると、ブラウザはゲートウェイに照会します。 ゲートウェイは、mymachine.intranet.com から mypage.html のコンテンツをフェッチします。

リライタ を使用して既存の URL の接頭辞にゲートウェイ URL を指定する詳細については、『Sun ONE Portal Server: Secure Remote Access Pack 6.0 Administratorユs Guide』を参照してください。

サポートされる URL

リライタは RFC-1738 で指定されるすべての標準 URL のリライトをサポートします。これらの URL はプロトコルが HTTP か HTTPS のいずれの場合も、プロトコルの大文字小文字に関係なくサポートされます。 例えば、hTtP、HTtp、およびhttPはすべて有効です。 一部のサンプルの標準 URL を次に示します。

http://www.my.sesta.com
http://www.example.org:8000/imaginary/test
http://www.example.edu/org/admin/people#andy
http://info.example.org/AboutUs/Index/Phonebook?dobbins
http://www.example.org/RDB/EMP?*%20where%20name%%3Dobbins
http://info.example.org/AboutUs/Phonebook
http://user:password@example.com

リライタは標準以外の基本的な一部の URL のリライトをサポートします。 標準以外の URL を標準形式に変換するための情報は、URL が表示されるページの基本 URL から取り出され、プロトコル、ホスト名、パスを含めることができます。 バックスラッシュ (\) は、絶対 URL ではなく相対 URL に含まれる場合のみサポートされます。 例えば、http://sesta.com\index.html はリライトされますが、http:\\sesta.com リライトされません。

また、http:/sesta.com のようにプロトコルまたはスキーマの後に単一のスラッシュ (/) が付いた URL はリライトされません。

リライタルールとルールセットの定義

リライタは Web ページに表示されるさまざまな要素の URL 部分を修正します。 リライタには一連のデフォルトルールが付属し、これに基づいて Web ページのリライトする要素を決定します。 さまざまなカテゴリとサブカテゴリのルールの集合は、.dtd ファイルに保存され、ルールセットと呼ばれます。 リライタルールセットは XML で定義されます。

DTD は /opt/SUNWps/web-src/WEBINF/lib/rewriter.jar (resources/RuleSet.dtd) に置かれています。 ルールセットは URL を特定するために使用されます。 デフォルトでは、"/"、../、"http"、および "https" などの文字で始まる Web コンテンツの文字列はすべて URL と見なされ、リライタの候補になります。

実装でリライタを設定する場合、ルールセットを作成し、管理コンソールで「Portal Server 設定」の「リライタ」セクションにルールを定義します。 規則セットの作成と修正の詳細については、「リライタサービスの管理」を参照してください。 Web ページのコンテンツの種類に基づいて、複数のルールを定義します。 例えば、HTMLコンテンツをリライトするのに必要なルールは、JavaScriptコンテンツをリライトするためのルールと異なります。リライタのルールは、次の広範囲なカテゴリに分類されます。

ルールセットは XML ドキュメントであり、ドキュメント内の XML は正しく作成する必要があります。 ルールセットでルールを定義する場合、次のガイドラインを守ってください。

  • すべてのルールは<ruleset> </ruleset> タグで括る必要があります。
  • ルールセットの <HTML> </HTML>セクションに、HTMLコンテンツをリライトするためのすべてのルールを指定します。
  • ルールセットの <JSRules> </JSRules>セクションに、JavaScript コンテンツをリライトするためのすべてのルールを指定します。
  • ルールセットの <XML> </XML>セクションに、XMLコンテンツをリライトするためのすべてのルールを指定します。

HTML コンテンツのルール

Web ページの HTML コンテンツは、属性、JavaScript トークン、フォーム、アプレットに分類できます。 これに従って、HTML コンテンツの規則は次のように分類されます。

HTML コンテンツの属性ルール

属性ルールは、HTML ページでリライトする基本的な属性タグを特定します。リライタは既存の URL を拡張または接頭辞をつけて、定義済みのタグをさまざまな形に修正します。 デフォルトの規則セットは、次の属性タグをリライトします。

  • action
  • background
  • codebase
  • code
  • href
  • src
  • value
  • imagePath
  • lowsrc
  • archive

属性ルールの構文は次のとおりです。

<Attribute name="name" [tag="tag" valuePatterns="patterns"]

ここで name は属性を指定します。tag は属性が所属するタグ (すべてのタグに一致させるには * を設定) を指定します。patterns は属性と一致する可能性のあるパターンを指定します。 tagvaluePatterns パラメータはオプションです。

HTMLコンテンツの JavaScript トークンルール

Web ページの JavaScript タグに純粋な JavaScript コードを記述することができます。あるいは JavaScript のトークンまたは関数を指定することができます。 例えば、Web ページに別の URL にジャンプする onClick() 関数を指定することができます。 ページが正しく機能するために、onClick() 関数の値を変換し、リライトする必要があります。 大半の場合、デフォルトのルールセットで指定されるルールで、JavaScriptトークンのURLを十分にリライトできます。 デフォルトのルールセットは、次の JavaScript トークンをリライトします。

  • onAbort
  • onBlur
  • onChange
  • onClick
  • onDblClick
  • onError
  • onFocus
  • onKeyDown
  • onKeyPress
  • onKeyUp
  • onLoad
  • onMouseDown
  • onMouseMove
  • onMouseOut
  • onMouseOver
  • onMouseUp
  • onReset
  • onSelect
  • onSubmit
  • onUnload

JavaScript トークンルールの構文は次のとおりです。

<JSToken>javascript_function_name</JSToken>

ここで javascript_function_nameonLoadonClick などの関数名です。

HTML コンテンツのフォームルール

ユーザーはフォームを格納した HTML ページを参照できます。 input などのフォーム要素は、URL を値として見なします。 デフォルトのルールセットは、フォーム要素をリライトしません。 フォームルールの構文は次のとおりです。

<Form source="/source.html" name="form1" field="field1"> [valuePatterns="pattern"] />

ここで /source.html はフォームを含む HTML ページの URLです。form1 はフォー ムの名前、 field1 はリライトするフォームのフィールド、pattern はフィールドのリ ライトする部分を示します。 指定されたパターンに従うすべてのコンテンツはリ ライトされます。

valuePatterns パラメータはオプションです。

HTML コンテンツのアプレットルール

単一の Web ページに複数のアプレットが含まれていたり、また各アプレットに多くのパラメータが指定されているときがあります。 アプレットの URL のリライタルールには、次に説明するようにパターンマッチング情報を含める必要があります。

  • ソース、filename.htm など
  • コード、classname.class など
  • パラメータ名、servername など
  • パラメータ値、some_url など

リライタは、ルールに指定された値をアプレットの内容と照合し、必要に応じて URL を修正します。 この置換は、ユーザーが特定のWebページを参照している場合ではなく、サーバーで行われます。 値の一部にワイルドカード (*) も使用できます。 例えば、パラメータ名が * であれば、リライタはアプレットでパラメータ名を比較しません。

デフォルトのルールセットは、アプレットパラメータをリライトしません。

アプレットルールの構文は次のとおりです。

<Applet source="sourcehtml.jsp" code="class" param="parameter_name" [valuePatterns="pattern"]

ここで /sourcehtml.jsp はアプレットを含む URLです。class はアプレットクラスの 名前、 parameter_name は値をリライトする必要があるパラメータ、pattern は フィールドのリライトする箇所を示します。 指定されたパターンに従うすべての コンテンツはリライトされます。 valuePatterns パラメータはオプションです。

JavaScript コンテンツのルール

JavaScript コードのさまざまな部分に URL を指定することができます。 リライタは JavaScript コードを直接パースできませんが、URL 部分を判断します。 JavaScript プロセッサで URL の解釈を助けるために、一部の特別な規則を記述する必要があります。

URL を含む JavaScript 要素は次のように分類されます。

JavaScript 変数

JavaScript 変数はさらに 5 つのカテゴリに分類されます。

JavaScript URL 変数

URL 変数の右側には URL 文字列が表示されます。 デフォルトの規則セットは、次の JavaScript URL 変数をリライトします。

  • imgsrc
  • location.href
  • _fr.location
  • mf.location
  • parent.location
  • self.location

JavaScript コンテンツルールの URL 変数の構文は次のとおりです。

<Variable type="URL">variable_name</Variable>

ここで variable_name はリライトされる変数の名前です。

JavaScript EXPRESSION 変数

EXPRESSIN 変数の右側には式が表示されます。 この式の結果がURLです。 リライタはこのような式を評価できないため、式を HTML ページに変換するための JavaScript 関数を付加します。 この関数はパラメータに式をとり、クライアントブラウザで式を評価します。

デフォルトのルールセットは、JavaScript EXPRESSION 変数 location をリライトします。

JavaScript コンテンツルールの EXPRESSION 変数の構文は次のとおりです。

<Variable type="EXPRESSION">variable_exp</Variable>

ここで variable_exp は式変数です。

JavaScript DHTML 変数

DHTML は、HTML コンテンツを保持する JavaScript 変数です。 デフォルトの規則セットは、次の JavaScript DHTML 変数をリライトします。

  • document.write
  • document.writeln

JavaScript コンテンツ規則の DHTML 変数の構文は次のとおりです。

<Variable type="DHTML">variable</Variable>

ここで variable は DHTML 変数です。

JavaScript DJS (ダイナミック JavaScript) 変数

DJS (ダイナミック JavaScript) 変数は、JavaScript コンテンツを保持する JavaScript 変数です。

JavaScript コンテンツルールの DJS 変数の構文は次のとおりです。

<Variable type="DJS">variable</Variable>

ここで variable は DJS 変数です。

変数内の JavaScript コードは、変換するルールがもう一つ必要です。

JavaScript システム変数

システム変数はユーザーによって宣言されない変数ですが、JavaScript 標準の一部として使用できます。

デフォルト規則セットは、window.location.pathname JavaScript システム変数をリライトします。

JavaScript コンテンツのシステム変数の構文は次のとおりです。

<Variable type="SYSTEM">variable</Variable>

ここで variable はシステム変数です。

JavaScript 関数パラメータ

関数パラメータは 4 つのカテゴリに分類されます。

JavaScript URL パラメータ

URL パラメータは、URLを直接含む文字列パラメータです。

デフォルトのルールセットは、次の JavaScript URL パラメータをリライトします。

  • openURL
  • openAppURL
  • openNewWindow
  • parent.openNewWindo
  • window.open

URL パラメータの構文は次のとおりです。

<Function type = "URL" name = "function" [paramPatterns="y,y,"] />

ここで function は評価される関数の名前、y はリライトの必要があるパラメータの位置を示します。 パラメータの位置は、カンマで区切られます。 例えば、構文で最初と 2 番目のパラメータはリライトする必要がありますが、3 番目のパラメータはリライトされません。

JavaScript EXPRESSION パラメータ

EXPRESSION パラメータは、評価後に URL になる関数内の変数です。 EXPRESSIN パラメータの構文は次のとおりです。

<Function type = "EXPRESSION" name = "function" [paramPatterns="y,y,"] />

ここで function は評価される関数の名前、y はリライトの必要があるパラメータの 位置を示します。 パラメータの位置は、カンマで区切られます。 例えば、構文で最 初と 2 番目のパラメータはリライトする必要がありますが、3 番目のパラメータ はリライトされません。

JavaScript DHTML パラメータ

DHTML パラメータは、HTML ページを動的に生成するネイティブ JavaScript メソッドです。 例えば、document.write() メソッドはこのカテゴリに分類されます。

デフォルトの規則セットは、次の JavaScript DHTML パラメータをリライトします。

  • document.write
  • document.writeln

DHTML パラメータの構文は次のとおりです。

<Function type = "DHTML" name = "function" [paramPatterns="y,y,"] />

ここで function は評価される関数の名前、y はリライトの必要があるパラメータの 位置を示します。 パラメータの位置は、カンマで区切られます。 例えば、構文で最 初と 2 番目のパラメータはリライトする必要がありますが、3 番目のパラメータ はリライトされません。

JavaScript DJS パラメータ

HTML の Cascading Style Sheets (CSS) などの Dynamic JavaScript (DJS) パラメータも変換されます。 この変換に定義されるルールはありません。これは URL が CSS の url() 関数にのみ表示されるためです。 DJS パラメータの構文は次のとおりです。

<Function type = "DJS" name = "function" [paramPatterns="y,y,"] />

ここで function は評価される関数の名前、y はリライトの必要があるパラメータの 位置を示します。 パラメータの位置は、カンマで区切られます。 例えば、構文で最 初と 2 番目のパラメータはリライトする必要がありますが、3 番目のパラメータ はリライトされません。

XML コンテンツのルール

Web ページには XML コンテンツが含まれ、XML には URL が含まれます。リライタは XML コンテンツの URLS をリライトできます。

URL を含む XML コンテンツは、次のように分類されます。

XML のタグテキスト

リライタはタグ名に基づいて XML コンテンツを変換します。

デフォルトのルールセットは、次の XML のタグをリライトします。

  • baseroot
  • img

タグテキストの構文は次のとおりです。

<TagText tag ="attribute" attributePatterns="name=src"/>

ここで attribute はタグの名前、src は属性の名前です。

XML の属性

XML の属性のルールは、HTML の属性のルールに類似しています。 詳細については、「HTML コンテンツの属性ルール」を参照してください。リライタは属性とタグ名に基づいて属性の値を変換します。

デフォルトの規則セットは、次の XML の属性をリライトします。

  • xmlns
  • href

HTML の属性の構文は次のとおりです。

<Attributes>
<Attribute name="attribute" [valuePatterns="name=src"/>
</Attributes>

ここで attribute はタグの名前、src は属性の名前です。

リライタサービスの管理

Sun ONE Portal Server 6.0 では、リライタサービスは iPlanet Directory Server Access Management Edition 属性を使用して、リライタルールセットの持続的な保守を提供します。 リライタルールセットは、Web ページ内のコンテンツをリライタでどのようにリライトするかを定義します。 iPlanet Directory Server Access Management Edition 管理コンソールを通じて、複数のリライタルールセットを iPlanet Directory Server Access Management Edition サービス属性として定義および保存できます。

またコマンド行を使用してリライタを管理できます。 rwadmin コマンドの詳細については、第 12 章「コマンド行ユーティリティ」を参照してください。

iPlanet Directory Server Access Management Edition 管理コンソールはリライタルールセットの概念を持たないため、Sun ONE Portal Server はカスタマイズされたサービス管理プラグインモジュールを使用してリライタルールセットを管理します。 すべてのリライタルールセットは iPlanet Directory Server Access Management Edition の組織に対してグローバルです。 特定の組織レベルでのルールセットの作成はできません。


URLScraperProvider は、HTML テーブルセル内で有効なコンテンツのみを収集できます。 収集する HTML マークアップに、<body><base>、および特定の JavaScript プロシージャなどのように、テーブルセル内で表示できないマークアップを含んでいる場合、「デスクトップ」ページの表示は破壊される場合があります。 収集するコンテンツを定義する場合、コンテンツが有効な HTML であることを確認するようにしてください。 詳細については、「URLScraperProvider の制限」を参照してください。



SSL 用のリライタ URLScraperProvider の設定

リライタの URLScraperProvider を使用して、SSL ページを収集し、安全なセッションでアクセスできるように URL をリライトできます。

  1. Sun ONE Portal Server をインストールしたサーバーに対して、次のように Web サーバー管理コンソールで信頼のできるデータベースを初期化します。
    1. ブラウザから、次の URL を入力して Web サーバー管理ページにアクセスします。
    2. http://servername:8088

    3. 管理者でログインし、「Security」タブをクリックします。
    4. データベースのパスワードを 2 度入力し、「OK」を選択します。

  2. 次の手順でパスワードファイルを作成します。
    1. ディレクトリを /BaseDir/SUNWam/config に変更します。
    2. 非表示のテキストファイル .wtpass を作成します。
    3. 信頼できるデータベースを初期化したときに指定したパスワードを入力します。

  3. URLScraperProvider を使用してアクセスした Web サーバーにが使用する証明書に、ルート CA がインストールされていない場合、/BaseDir/SUNWam/lib/AMConfig-instance_nickname.properties ファイルに次の行を追加します。
  4. com.iplanet.am.jssproxy.trustAllServerCerts=true

    このオプションは、証明書が信用できることを JSS に示します。

  5. Sun ONE Portal Server を再起動します。
  6. /etc/init.d/amserver start

デフォルトテンプレートからルールセットを新規作成

  1. iPlanet Directory Server Access Management Edition 管理コンソールに管理者としてログインします。
  2. 「サービス管理」を選択して、「サービス管理」に移動します。
  3. ナビゲーション区画の「リライタ」の横にあるプロパティの矢印をクリックします。
  4. 現在定義されているルールセットのリストが表示されます。

  5. 「新規作成」をクリックします。
  6. これによって、修正が可能なルールセットのテンプレートが表示されます。

  7. <RuleSet id="ruleset_template"> 行を編集し、default_ruleset を新しいルールセットの名前で置き換えます。
  8. ルールセットテンプレート内のルールを追加または修正し、必要に応じて URL をリライトします。
  9. 「作成」をクリックし新しいルールセットを作成します。
  10. 成功した場合、最初のページと現在定義されているすべてのルールセットのリストが表示されます。これには作成したルールセットが含まれています。

既存のルールセットの編集

  1. iPlanet Directory Server Access Management Edition 管理コンソールに管理者としてログインします。
  2. 「サービス管理」を選択して、「サービス管理」に移動します。
  3. ナビゲーション区画の「リライタ」の横にあるプロパティの矢印をクリックします。
  4. 現在定義されているルールセットのリストが表示されます。

  5. 編集するルールセットの「編集」リンクをクリックします。
  6. これによて編集するルールセットの XML が表示されます。

  7. ルールセットテンプレート内のルールを追加または修正し、必要に応じて URL をリライトします。
  8. ルールセットの名前を変更する場合、<RuleSet id="ruleset_template"> 行を編集し、名前をルールセットの名前に置き換えます。
  9. 「保存」をクリックします。

ルールセットのダウンロード

ルールセットをダウンロードし、ファイルに保存することができます。

  1. iPlanet Directory Server Access Management Edition 管理コンソールに管理者としてログインします。
  2. 「サービス管理」を選択して、「サービス管理」に移動します。
  3. ナビゲーション区画の「リライタ」の横にあるプロパティの矢印をクリックします。
  4. 現在定義されているルールセットのリストが表示されます。

  5. ファイルに保存するルールセットの「ダウンロード」リンクをクリックします。
  6. ファイル名を指定し、保存します。

ルールセットのアップロード

ルールセットのファイルをシステムにアップロードできます。

  1. iPlanet Directory Server Access Management Edition 管理コンソールに管理者としてログインします。
  2. 「サービス管理」を選択して、「サービス管理」に移動します。
  3. ナビゲーション区画の「リライタ」の横にあるプロパティの矢印をクリックします。
  4. 現在定義されているルールセットのリストが表示されます。

  5. リストのルールセットの横にある「アップロード」リンクをクリックします。
  6. アップロードするルールセットのファイル名を参照するか、入力します。
  7. 「アップロード」をクリックします。
  8. ファイル内の <RuleSet id="ruleset_template"> 行で定義された名前がシステムのルールセット名と一致する場合、そのルールセットファイルはファイルの内容で置き換えられます。 <RuleSet id="ruleset_template"> 行で定義される名前が固有の場合、新しいルールセットがその名前で作成され、リストに追加されます。

既存のルールセットの削除

  1. iPlanet Directory Server Access Management Edition 管理コンソールに管理者としてログインします。
  2. 「サービス管理」を選択して、「サービス管理」に移動します。
  3. ナビゲーション区画の「リライタ」の横にあるプロパティの矢印をクリックします。
  4. 現在定義されているルールセットのリストが表示されます。

  5. 削除するルールセットの隣のチェックボックスをクリックします。
  6. 複数のルールセットを選択できます。

  7. 「削除」をクリックします。
  8. 確認のメッセージが表示されます。

  9. 「はい」をクリックして、選択したルールセットを削除します。

デフォルトのルールセットの復元

誤ってデフォルトのルールセットを削除した場合、次のようにして復元できます。

rwadmin store --runasdn "uid=amadmin, ou=people, o=sesta.com, o=isp" --password "testing123" /resources/DefaultRuleSet.xml

ここで、"/resources/DefaultRuleSet.xml"rewriter.jar ファイルに保存されたルールセットの場所です。


インストール時にパッケージされたデフォルトのルールセットが復元されます。 デフォルトの規則セットをカスタマイズした場合、変更は復元されません。




前へ      目次      索引      次へ     
Copyright 2002-2003 Sun Microsystems, Inc. All rights reserved.