Sun ONE Portal Server, Secure Remote Access 6.2 管理者ガイド |
第 5 章
Netletこの章では、ユーザーのリモートデスクトップとイントラネット上のアプリケーションを実行しているサーバーとの間で、Netlet を使用してアプリケーションを安全に実行する方法について説明します。Netlet の設定については、第 11 章「Netlet の設定」を参照してください。
この章で説明する内容は次のとおりです。
Netlet の概要SunTM ONE Portal Server のユーザーが、一般的なアプリケーションや企業専用のアプリケーションをリモートデスクトップで安全に実行できると便利な場合があります。プラットフォームに Netlet を設定すると、このようなアプリケーションに安全にアクセスできるようになります。
Netlet を使用すると、インターネットなどのセキュリティの弱いネットワークで一般的な TCP/IP サービスを安全に実行できます。TCP/IP アプリケーション (Telnet や SMTP など)、HTTP アプリケーション、同じポートを使用するすべてのアプリケーションを実行できます。
Netlet を使用してアプリケーションを使用できるのは次の場合です。
Netlet のコンポーネント
図 5-1 は、Netlet で使用される各種コンポーネントを示しています。
図 5-1 Netlet のコンポーネント
localhost の待機ポート
これは Netlet アプレットが待機するクライアントマシン上のポートです。クライアントマシンはローカルホストです。
Netlet アプレット
Netlet アプレットは、リモートクライアントマシンと、Telnet、Graphon、Citrix などのイントラネットアプリケーションの間で、暗号化された TCP/IP トンネルの設定を担当します。アプレットはパケットを暗号化してゲートウェイに送信し、ゲートウェイからの応答パケットを解読してローカルアプリケーションに送信します。
スタティックルールの場合、Netlet アプレットは、ユーザーがポータルにログインすると自動的にダウンロードされます。ダイナミックルールの場合、ダイナミックルールに対応するリンクをユーザーがクリックしたときにアプレットがダウンロードされます。スタティックルールとダイナミックルールについては、「ルールのタイプ」を参照してください。
Sun Ray 環境での Netlet の実行については、「Sun Ray 環境での Netlet の実行」を参照してください。
Netlet ルール
Netlet ルールでは、クライアントマシンで実行する必要のあるアプリケーションが、対応する宛先サーバーにマッピングされます。つまり Netlet は、Netlet ルールに定義されたポートに送信されたパケットに対してだけ動作します。これにより、セキュリティが向上します。
管理者は Netlet の機能に対して特定のルールを設定する必要があります。これらのルールによって、使用される暗号化方式や、呼び出す URL、ダウンロードするアプレット、宛先ポート、宛先ホストなどの詳細が指定されます。クライアントマシン上のユーザーが Netlet を通じて要求を行う場合、これらのルールに基づいて接続の確立方法が速やかに決定されます。詳細については、「Netlet ルールの定義」を参照してください。
Netlet プロバイダ
これは Netlet の UI コンポーネントです。プロバイダを使用することで、Sun ONEPortal Server のデスクトップから必要なアプリケーションを設定できます。プロバイダにリンクが作成され、ユーザーはこのリンクをクリックして必要なアプリケーションを実行します。また、デスクトップ Netlet プロバイダで、ダイナミックルールの宛先ホストを指定できます。「Netlet ルールの定義」を参照してください。
EProxy
クライアントの要求はすべて EProxy を通じてルーティングされます。EProxy は Netlet 要求だけを処理し、その他の要求は RProxy に渡します。EProxy は Netlet 要求をパースし、Netlet プロキシ (Netlet プロキシが有効な場合) または宛先ホストに直接渡します。
Netlet プロキシ (オプション)
ゲートウェイは、リモートクライアントマシンとゲートウェイ間の安全なトンネルを保証します。Netlet プロキシの使用は任意です。インストール時にこのプロキシをインストールしない選択も可能です。Netlet プロキシについては、「Netlet プロキシの使用」を参照してください。
宛先ポート
これは宛先アプリケーションのサーバーが待機するポートです。
Netlet の使用例
Netlet 使用時には、次の一連のイベントが行われます。
- リモートユーザーが Sun ONEPortal Server デスクトップにログインします。
- ユーザー、ロール、または組織にスタティック Netlet ルールが定義されている場合は、リモートクライアントに Netlet アプレットが自動的にダウンロードされます。
ユーザー、ロール、または組織にダイナミックルールが定義されている場合は、Netlet プロバイダに必要なアプリケーションを手動で設定する必要があります。Netlet アプレットは、ユーザーが Netlet プロバイダのアプリケーションリンクをクリックしたときにダウンロードされます。スタティックルールとダイナミックルールについては、「Netlet ルールの定義」を参照してください。
- Netlet は Netlet ルールで定義されたクライアントポートで待機します。
- Netlet はリモートクライアントとサーバーの間で、Netlet ルールで指定されたポートを使用するチャネルを確立します。
Netlet の操作
Netlet が異なる組織間のさまざまなユーザーの要求に合わせて機能するには、次の手順を実行する必要があります。
- ユーザー要件に基づいて、スタティックルールとダイナミックルールのどちらを作成するかを決定します。「ルールのタイプ」を参照してください。
- Identity Server 管理コンソールの「サービス設定」タブで、Netlet テンプレートにグローバルオプションを定義します。第 11 章「Netlet の設定」を参照してください。
- ルールの基準を組織、ロール、ユーザーから選択し、各レベルで必要に応じて修正します。組織、ロール、ユーザーについては、『Sun ONE Portal Server 管理者ガイド』を参照してください。
Netlet ルールの定義Netlet の設定は Netlet ルールによって定義されます。このルールは、Identity Server 管理コンソールの「SRA 設定」セクションで設定されます。Netlet ルールは組織、ロール、またはユーザーのいずれかに対して設定できます。Netlet ルールをロールまたはユーザーに対して定義したときは、組織を選択してから目的のロールまたはユーザーを選択します。
Netlet ルールは次のフィールドから構成されます。
表 5-1 は、 Netlet ルールのフィールドを示しています。表 5-1 には 3 つの列があります。最初の列は、フィールド名を示します。2 番目の列は、フィールドの説明と Netlet ルールでの機能を示します。3 番目の列は、そのフィールドで考えられる値を示します。
表 5-1 Netlet ルールのフィールド
パラメータ
説明
値
ルール名
この Netlet ルールの 名前を指定する。各 ルールに一意の名前 を指定する必要があ る。これは、特定の ルールへのアクセス を定義する場合に便 利である。詳細につ いては、「Netlet ルー ルへのアクセスの定 義」を参照してくだ さい。
暗号化方式
暗号化方式を定義す るか、ユーザーが選 択できる方式のリス トを指定する
選択した暗号化方式は、Netlet プロバイダにリ スト表示される。ユーザーは必要な暗号化方式 をリストから選択できる
デフォルト : Netlet 管理コンソールで指定する デフォルト VM ネイティブ暗号化方式と、デ フォルト Java プラグイン暗号化方式
URL
URL ユーザーが Netlet プロバイダのリ ンクをクリックした ときにブラウザで開 かれる URL を指定す る。ブラウザにはア プリケーションの ウィンドウが表示さ れ、ルールによって 指定されたローカル ポート番号で localhost に接続す る。
相対 URL を指定する 必要がある
Netlet ルールによって呼び出されるアプリケー ションへの URL。
例 : telnet://localhost:30000アプリケーションの呼び出しにアプレットが必 要な場合は、その URL を指定する
null : 指定した URL によってアプリケーショ ンが起動されない、またはデスクトップで制御 されない場合に設定する値。通常は Web ベー ス以外のアプリケーションで使用される
アプレット のダウン ロード
このルールでアプ レットのダウンロー ドが必要であるかど うかを指定する
False : アプレットをダウンロードしない
True : ループバックポートを使用してアプレッ トを Portal Server マシンからダウンロードする
アプレットの詳細は、clientport:server:serverport の形式で指定する
- clientport はクライアントの宛先ポートを表す。このポートは、デフォルトのループバックポートとは異なる必要がある。詳細については、第 11 章「Netlet の設定」を参照してください。各ルールに一意の client port を指定する
- server はアプレットのダウンロード元のサーバー名を表す
- serverport はアプレットのダウンロードに使用されるサーバー上のポートを表す
アプレットがダウンロードされる場合にサー バーが指定されていないときは、アプレットは Portal Server のホストからダウンロードされる
セッション の延長
Netlet がアクティブの 場合、Portal Server セッションのアイド ル時間のタイムアウ トを制御する
Enabled: Netlet がアクティブで、ほかのポータ ルアプリケーションがアイドルの場合にのみ、 ポータルセッションを持続するようにする
Disabled : Netlet アプリケーションがアクティ ブでも、ほかのポータルアプリケーションがア イドルの場合、ポータルセッションのアイドル 時間は、セッションに指定されたアイドル時間 でタイムアウトになる
クライアン トポート
Netlet が待機するクラ イアントのポート。
client port の値は一意である必要がある。特定 のポート番号を複数のルールに指定することは できない
複数のクライアントポートを指定するのは、複 数の接続に複数のホストを指定している場合で ある。構文については、「複数ホスト接続のス タティックルール」を参照
FTP ルールでは、クライアントポートは 30021 である必要があります。
ターゲット ホスト
Netlet 接続の受信者
host : Netlet 接続を受信するホスト名。これはス タティックルールで使用される。siroe などの 簡易ホスト名、または siroe.mycompany.com などの完全修飾 DNS 形式のホスト名を指定する。次の場合に、複数 のホストを指定できる
- 指定された各ホストとの接続を確立する場合。指定された各ホストに対して対応するクライアントとターゲットポートを指定する必要がある。構文については、「複数ホスト接続のスタティックルール」を参照
- 指定されたホストのリストから、使用可能なホストへの接続を試みる場合。構文については、「複数ホストを選択するスタティックルール」を参照
TARGET : 構文で TARGET を指定するルールは ダイナミックルールである。TARGET は、デス クトップの Netlet プロバイダでユーザーが必要 な宛先ホストを 1 つ以上指定できることを示す
1 つのルールでスタティックホストと TARGET を組み合わせることはできない
ターゲット ポート
ターゲットホスト上 のポート
ホストとターゲットの他に、宛先ポートを指定 する必要がある
複数の宛先ホストがある場合は、複数の宛先 ポートを指定できる。複数のポートは、 port1+port2+port3-port4+port5 のよう に指定する
ポート番号間のプラス (+) 記号は、単一のター ゲットホストに対する代替ポートを表します。
異なるターゲットホストのポート番号を区切る ときは、区切り文字としてポート番号間にマイ ナス (-) 記号を挿入します。
この例では、Netlet は port1、port2、port3 を順番に使用して、指定された最初の宛先ホス トへの接続を試みる。これに失敗した場合、 Netlet は port4 と port5 をこの順序で使用し て 2 番目のホストへの接続を試みる
複数のポートは、スタティックルールだけで設 定できる
ルールのタイプ
ルールで宛先ホストがどのように指定されているかにより、Netlet ルールは 2 つのタイプに分かれます。
スタティックルール
スタティックルールは、ルールの一部として宛先ホストを指定します。スタティックルールを作成する場合、ユーザーは必要な宛先ホストを指定することができません。次の例では、sesta は宛先ホストです。
ルール名
暗号化方式
URL
アプレットのダウンロード
セッションの延長
クライアントポート
ターゲットホスト
ターゲットポート
ftpstatic
SSL_RSA_WITH_R C4_128_MD5
Null
false
true
30021
sesta
21
複数のターゲットホストおよびポートを設定できるのは、スタティックルールだけです。設定例については、「複数ホスト接続のスタティックルール」を参照してください。
ダイナミックルール
ダイナミックルールでは、宛先ホストはルールの一部として指定されません。ユーザーは Netlet プロバイダで必要な宛先ホストを指定できます。次の例では、TARGET は宛先ホストの可変部分です。
ルール名
暗号化方式
URL
アプレットのダウンロード
セッションの延長
クライアントポート
ターゲットホスト
ターゲットポート
ftpdynamic
SSL_RSA_WIT H_RC4_128_M D5
Null
false
true
30021
TARGET
21
暗号化方式
暗号化方式に基づいて、Netlet ルールはさらに次のように分類されます。
- ユーザー設定可能な暗号化方式ルール : このルールでは、ユーザーが選択できる暗号化方式のリストを指定できます。これらのオプション暗号化方式は、Netlet プロバイダにリスト表示されます。ユーザーは必要な暗号化方式をリストから選択できます。次の例では、ユーザーは複数の暗号化方式を選択できます。
ルール名
暗号化方式
URL
アプレットのダウンロード
セッションの延長
クライアントポート
ターゲットホスト
ターゲットポート
Telnet
SSL_RSA_WITH_RC 4_128_SHA
Null
false
true
30000
TARGET
23
SSL_RSA_WITH_RC 4_128_MD5
Netlet でサポートされる暗号化方式のリスト、および対応するキーワードについては、「サポートされる暗号化方式」を参照してください。
Netlet でサポートされる暗号化方式のリスト、および対応するキーワードについては、「サポートされる暗号化方式」を参照してください。
サポートされる暗号化方式
表 5-2 の最初の列は Netlet でサポートされる暗号化方式を、2 番目の列は暗号化方式の関連付けに使用されるキーワードを示しています。対応するキーワードを使用して、Netlet ルールの暗号化方式を指定します。
下位互換性
旧バージョンの Portal Server は、Netlet ルールの一部として暗号化方式をサポートしていません。暗号化方式を使用せずに既存のルールと下位互換を行うには、ルールでデフォルトの暗号化方式を指定します。暗号化方式を使用しない既存のルールは、次のとおりです。
ルール名
暗号化方式
URL
アプレットのダウンロード
セッションの延長
クライアントポート
ターゲットホスト
ターゲットポート
Telnet
telnet://localhost: 30000
false
true
30000
TARGET
23
これは次のように解釈されます。
ルール名
暗号化方式
URL
アプレットのダウンロード
セッションの延長
クライアントポート
ターゲットホスト
ターゲットポート
Telnet
デフォルト 暗号化方式
telnet://local host:30000
false
true
30000
TARGET
23
これは、管理者設定ルールでデフォルトとして選択した「暗号化方式」フィールドと同じです。詳細については、「デフォルトの暗号化方式の指定」を参照してください。
* loopback はシステムで内部的に使用されます。
Netlet ルールの例
ここでは、Netlet ルールの例をいくつか示し、Netlet 構文がどのように機能するかについて説明します。
基本的なスタティックルール
このルールは、クライアントマシンから sesta への Telnet 接続をサポートします。
ルール名
暗号化方式
URL
アプレットのダウンロード
セッションの延長
クライアントポート
ターゲットホスト
ターゲットポート
myrule
SSL_RSA_WITH_ RC4_128_MD5
Null
false
true
1111
sesta
23
ここで
myrule はルール名です。
SSL_RSA_WITH_RC4_128_MD5 は、適用される暗号化方式を示します。
null は、このアプリケーションが URL で呼び出されない、またはデスクトップから実行できないことを示します。
false は、クライアントがアプレットをダウンロードし、このアプリケーションを実行しないことを示します。
true は、Netlet 接続がアクティブになっても、Portal Server がタイムアウトにならないことを示します。
1111 は、Netlet がターゲットホストからの接続要求を待機するクライアント側のポートです。
sesta は Telnet 接続の受信側ホストの名前です。
23 は接続のターゲットホストのポート番号です。この例では、既知の Telnet ポートです。
デスクトップ Netlet プロバイダにはリンクが表示されませんが、Netlet は指定されたポート (1111) で自動的に起動して待機します。クライアントソフトウェア、この場合はポート 1111 で localhost に接続した Telnet セッションを開始するようにユーザーに指示してください。
たとえば、Telnet セッションを開始するには、クライアントは端末の UNIX コマンド行で次のコマンドを入力する必要があります。
複数ホスト接続のスタティックルール
このルールは、クライアントマシンから 2 台のマシン sesta および siroe へのTelnet 接続をサポートします。
ルール名
暗号化方式
URL
アプレットのダウンロード
セッションの延長
クライアントポート
ターゲットホスト
ターゲットポート
myrule
SSL_RSA_WITH_ RC4_128_MD5
Null
false
true
1111
sesta
23
1234
siroe
23
ここで
23 は接続用のターゲットホスト上のポート番号です。Telnet の予約ポート番号です。
1111 は Netlet が最初のターゲットホスト sesta から接続要求を待機するクライアントのポートです。
1234 は Netlet が 2 番目のターゲットホスト siroe からの接続要求を待機するクライアントのポートです。
このルールの最初の 6 フィールドは、「基本的なスタティックルール」と同じです。2 番目のターゲットホストを識別するためのフィールドが 3 つ追加されている点が異なります。
ルールにターゲットを追加するときは、新しいターゲットホストごとに 3 つのフィールド、client port、target host、target port を追加する必要があります。
注
各ターゲットホストへの接続を、3 フィールドのセットを使って記述する ことができます。2048 未満の待機ポート番号は、UNIX ベースのリモート クライアントでは使用できません。UNIX は下位数値のポートに制約さ れ、root でリスナーを開始する必要があるためです。
このルールは前述のルールと同様に機能します。Netlet プロバイダはリンクを表示しませんが、Netlet は指定されたポート (1234) で自動的に起動して待機します。ユーザーはクライアントソフトウェア、この場合は、ホスト example2 に接続するために、ポート 1111 で localhost に接続する Telnet セッションか、ポート 1234 で localhost に接続する Telnet セッションを開始する必要があります。
複数ホストを選択するスタティックルール
このルールは、複数の代替ホストを指定する場合に使用します。ルールの最初のホストへの接続に失敗した場合、Netlet は 2 番目に指定されたホストへの接続を試み、成功するまで指定の順に代替ホストへの接続を試みます。
ルール名
暗号化方式
URL
アプレットのダウンロード
セッションの延長
クライアントポート
ターゲットホスト
ターゲットポート
gojoe
SSL_RSA_WI TH_RC4_128_ MD5
/gojoe.ht ml
8000:gojoeser ver:8080
true
10491
siroe+sesta
35+26+49 1-35+491
ここで
10491 は、Netlet がターゲットホストからの接続要求を待機するクライアント側のポートです。
Netlet はポート 35、ポート 26、ポート 491 の順に使用可能なポートにアクセスし、siroe との接続を確立しようと試みます。
siroe との接続が確立できない場合、Netlet はポート 35、491 の順序で sesta への接続を試みます。
URL を呼び出すダイナミックルール
このルールを使用することで、目的の宛先ホストを設定できるため、Netlet を使用してさまざまなホストへの Telnet 接続を確立できます。
ルール名
暗号化方式
URL
アプレットのダウンロード
セッションの延長
クライアントポート
ターゲットホスト
ターゲットポート
myrule
SSL_RSA_W ITH_RC4_12 8_MD5
telnet://loc alhost:3000 0
false
true
30000
TARGET
23
ここで
myrule はルール名です。
SSL_RSA_WITH_RC4_128_MD5 は、適用される暗号化方式を示します。
telnet://localhost:30000 はルールで呼び出される URL です。
false はアプレットがダウンロードされないことを示します。
true は、Netlet 接続がアクティブになっても、Portal Server がタイムアウトにならないことを示します。
30000 は、Netlet がこのルールの接続要求を待機するクライアント上のポートです。
TARGET はユーザーが Netlet プロバイダを使用して宛先サーバーを設定する必要がないことを示します。
23 は Netlet で開かれるターゲットホストのポートです。この例では、既知の Telnet ポートです。
ルールの追加後に Netlet を実行するには
このルールが追加した後に、ユーザーは Netlet を目的どおりに稼動させるためにいくつかの手順を実行しなければなりません。ユーザーはクライアント側で次の操作を実行する必要があります。
アプレットをダウンロードするダイナミックルール
このルールは、ダイナミックに割り当てられたホストとクライアント間の GO-Joe 接続を定義します。このルールにより、アプレットのあるサーバーからクライアントに GO-Joe アプレットがダウンロードされます。
ルール名
暗号化方式
URL
アプレットのダウンロード
セッションの延長
クライアントポート
ターゲットホスト
ターゲットポート
gojoe
SSL_RSA_ WITH_RC4 _128_MD5
/gojoe.html
8000:gojoese rve:8080
true
3399
TARGET
58
ここで
gojoe はルール名です。
SSL_RSA_WITH_RC4_128_MD5 は、適用される暗号化方式を示します。
/gojoe.html: たとえば、アプレットを含む HTML ページのパスや、ポータルが配備されている Web コンテナのドキュメントルートへの相対パスです。
8000:server:8080 は、クライアントでアプレットを受け取る宛先ポートがポート 8000 であることを示します。gojoeserve はアプレットを送るサーバー名、8080 はアプレットのダウンロード元のサーバー上のポートです。
Netlet 接続がアクティブになっても、Portal Server がタイムアウトにならないことを示します。
3399 は、Netlet がこのタイプの接続要求を待機するクライアント上のポートです。
TARGET はユーザーが Netlet プロバイダを使用して宛先サーバーを設定する必要がないことを示します。
58 は Netlet で開かれる宛先サーバーのポートです。この例では、GoJoe のポートです。ポート 58 はターゲットホストが自分のトラフィックを待機するポートです。Netlet は新しいアプレットの情報をこのポートに渡します。
Netlet ルールの例表 5-3 は、いくつかの一般的なアプリケーションの Netlet ルールの例を示しています。
この表には 7 つの列があります。それぞれ、Netlet ルールのルール名、URL、ダウンロードアプレット、クライアントポート、ターゲットホスト、ターゲットポートの各フィールドに対応します。最後の列は、ルールの説明を示します。
注
表 5-3 には、Netlet ルールの暗号化方式、およびセッションの延長の フィールドは示されていません。表に示される例で、それぞれが 「SSL_RSA_WITH_RC4_128_MD5」および「true」に設定されていること を前提としています。
Netlet ロギングの有効化ゲートウェイサービスで、Netlet 関連アクティビティのロギングを有効にできます。「Netlet ロギングの有効化」を参照してください。このログファイルは、Identity Server 設定属性の「ロギング」セクションにある「ログの場所」属性で指定されたディレクトリに作成されます。ログファイル名には、次の命名ルールがあります。
srapNetlet_gateway hostname_gateway-profile-name
Netlet ログには、次の情報が記録されます。
ログアウト時の Netlet の終了ユーザーがログアウトするときに Netlet を終了するには、ゲートウェイが Portal Server からセッション通知を受け取る必要があります。この通知を受け取る方法は、次のとおりです。
Netlet のカスタマイズNetlet プロバイダのメッセージウィンドウと Netlet サービスの管理コンソールに表示されるテキストをカスタマイズすることができます。
- Netlet プロバイダ用には、次のファイルを編集します。
portal-server-install-root/SUNWam/locale/srapNetletProvider.properties
- Identity Server 管理コンソールの Netlet サービス用には、次のファイルを編集します。
portal-server-install-root/SUNWam/locale/srapNetlet.properties
- Netlet サーブレット用には、次のファイルを編集します。
portal-server-install-root/SUNWam/locale/srapNetletServlet.properties
- Netlet アプレット用には、次のファイルを編集します。
portal-server-install-root/SUNWam/locale/srapNetletApplet.properties
Sun Ray 環境での Netlet の実行Sun Ray 環境のクライアントマシンでアプレットをダウンロードする必要があるアプリケーションを実行するときは、HTML ファイルを変更する必要があります。次に、必要な変更を加えたファイルの例を示します。
新しい HTML ファイル
<!-- @(#)citrix_start.html 2.1 98/08/17 Copyright (c) 1998 i-Planet, Inc., All rights reserved. -->
<html>
<script language="JavaScript">
var KEY_VALUES; // KEY_VALUES['key'] = 'value';
function retrieveKeyValues() {
KEY_VALUES = new Object();
var queryString = '' + this.location;
queryString = unescape(queryString);
queryString = queryString.substring((queryString.indexOf('?')) + 1);
if (queryString.length < 1) {
return false; }
var keypairs = new Object();
var numKP = 0;
while (queryString.indexOf('&') > -1) {
keypairs[numKP] = queryString.substring(0,queryString.indexOf('&'));
queryString = queryString.substring((queryString.indexOf('&')) + 1);
numKP++;
}
// クエリ文字列に最後の keypairs[] データとして残されている内容を格納します。
keypairs[numKP++] = queryString;
var keyName;
var keyValue;
for (var i=0; i < numKP; ++i) {
keyName = keypairs[i].substring(0,keypairs[i].indexOf('='));
keyValue = keypairs[i].substring((keypairs[i].indexOf('=')) + 1);
while (keyValue.indexOf('+') > -1) {
keyValue = keyValue.substring(0,keyValue.indexOf('+')) + ' ' + keyValue.substring(keyValue.indexOf('+') + 1);
}
keyValue = unescape(keyValue);
// 英数字以外のエスケープを解除します。
KEY_VALUES[keyName] = keyValue;
}
}
function getClientPort(serverPort) {
var keyName = "clientPort['" + serverPort +"']";
return KEY_VALUES[keyName];
}
function generateContent() {
retrieveKeyValues();
var newContent =
"<html>¥n"
+ "<head></head>¥n"
+ "<body>¥n"
+ "<applet code=¥"com.citrix.JICA.class¥" archive=¥"JICAEngN.jar¥" width=800 height=600>¥n"
+ "<param name=¥"cabbase¥" value=¥"JICAEngM.cab¥">¥n"
+ "<param name=¥"address¥" value=¥"localhost¥">¥n"
+ "<param name=ICAPortNumber value="
+ getClientPort('1494')
+ ">¥n"
+ "</applet>¥n"
+ "</body>¥n"
+ "</html>¥n";
document.write(newContent);
}
</script>
<body onLoad="generateContent();">
</body>
</html>
変更前の HTML ファイル
<html>
<body>
<applet code="com.citrix.JICA.class" archive="JICAEngN.jar" width=800 height=600>
<param name="cabbase" value="JICAEngM.cab">
<param name="address" value="localhost">
<param name=ICAPortNumber value=1494>
</applet>
</body>
</html>