次の方法で共有


HTML フォームのカスタマイズ

発行: 2009年11月

適用対象: Forefront Threat Management Gateway (TMG)

Forefront TMG には、公開された Web サーバーへアクセスするクライアント向けの Web 公開ルールに適用できる、さまざまな認証方法が用意されています。フォームベース認証を選択した場合、認証資格情報を入力するための HTML フォームがユーザーに表示されます。Forefront TMG には、フォームベース認証に使用する既定のフォーム セットが複数用意されています。これらのフォーム セットをカスタマイズして、公開されたさまざまな Web サイトで異なる外観のログオン フォームが表示されるように設定できます。

ここでは、Forefront TMG のフォーム セットの概要、およびフォーム セットのカスタマイズ方法について説明します。

HTML フォームの概要

次の 2 つのセクションでは、Forefront TMG に組み込まれている HTML フォーム セットの種類と、Forefront TMG フォーム セット ディレクトリの構造について説明します。

  • Forefront TMG フォーム セット

  • フォーム セットのディレクトリ

Forefront TMG フォーム セット

Forefront TMG には構成済みのフォーム セットが用意されており、以下のフォルダーに格納されています。

  • ISA - フォームベース認証で必要となるすべての HTML フォームが含まれています。このフォームは、Web リスナーまたは Forefront TMG Web 公開ルールで指定されます。

  • Exchange - Microsoft Exchange Web クライアント アクセスのフォームベース認証で必要となるすべての HTML フォームが含まれています。

Forefront TMG は、次の 3 種類の HTML フォームを、フォーム セットの形式でサポートします。

  • HTML - 標準のブラウザー向けのフォームです。

  • cHTML - cHTML をサポートするブラウザー向けのフォームです (i モード モバイル デバイスなど)。

  • xHTML - xhtml-mp をサポートするブラウザー向けのフォームです (Microsoft Windows Mobile® およびその他のモバイル デバイスなど)。

note注意事項:
Forefront TMG では、モバイル クライアントから取得した User-Agent ヘッダーに基づいて、提供するフォームの種類が決まります。

各フォーム セットには、クライアントがフォームベース認証で必要とすると考えられるすべての HTML フォーム (ログオン フォーム、ログオフ フォーム、SecurID フォームなど) が含まれています。既定では、HTML フォームベース認証を認証方法として選択して新しい Web リスナーを作成すると、フォームセットが自動的に選択されます。Web リスナーに対して指定した認証検証方法に応じて、Forefront TMG では次のいずれかの種類のログオン フォームを表示します。

  • パスワード フォーム - ユーザーはこのフォームでユーザー名とパスワードを入力します。この資格情報は、Active Directory、LDAP (ライトウェイト ディレクトリ アクセス プロトコル)、および RADIUS (リモート認証ダイヤルイン ユーザー サービス プロトコル) の資格情報の検証で必要になります。

  • パスコード フォーム - ユーザーはこのフォームでユーザー名とパスコードを入力します。この資格情報は、SecurID および RADIUS ワンタイム パスワードの検証で必要になります。

  • パスコード/パスワード フォーム - ユーザーがユーザー名とパスコード、およびユーザー名とパスワードを入力します。ユーザー名とパスコードは、SecurID または RADIUS ワンタイム パスワード認証方法を使う Forefront TMG での認証に使用され、ユーザー名とパスワードは委任に使用されます。このフォームを使用するのは、管理者が追加の資格情報をフォームで収集することを選択した場合です。

Web リスナーおよび Web 公開ルールを作成した後で、別のフォーム セットを使用することを指定できます。また、Web 公開ルールの HTML フォームのプロパティによって、Web リスナーのフォーム セットを上書きすることもできます。フォーム セットは、以下のいずれかによって決まります。

  • Web リスナーに指定されているフォーム セット

  • Web 公開ルールに指定されているフォーム セット

フォーム セットの作成方法については、「カスタム フォーム セットの作成」を参照してください。

フォーム セットのディレクトリ

\%Forefront TMG Installation Directory%\Templates\CookieAuthTemplates ディレクトリには、Forefront TMG に組み込まれている ISAExchange のフォーム ディレクトリがあります。これらのディレクトリの直下にあるサブディレクトリには、さまざまなフォーム セット ディレクトリが含まれています。

各フォーム セット ディレクトリには、HTML フォーム (.htm ファイル) のすべてのセットが格納されています。後で説明するように、Forefront TMG で HTML フォームが表示されるとき、.htm ファイル内のプレースホルダーが、ユーザーのブラウザーの言語設定に対応する strings.txt ファイル内の文字列に置き換えられます。この strings.txt ファイルは、言語 (nls) ディレクトリの言語フォルダーにあります。

ISA ディレクトリ

Web 公開ルールまたは Microsoft SharePoint 公開ルールを作成すると、ISA ディレクトリのフォーム セットが自動的に使用されます。

Exchange ディレクトリ

新しい Exchange 公開ルール ウィザードを使用して Web クライアント メール アクセス公開ルールを作成すると、そのルールに対しては Exchange HTML フォーム セットが自動的に選択されます。Exchange フォルダーには、HTML フォーム セットのみが格納されています。Exchange Web クライアント アクセスで cHTML フォーム セットまたは XHTML フォーム セットを使用するには、Exchange\cHTML ディレクトリまたは Exchange\xHTML ディレクトリを作成し、Exchange\HTML の内容をこれらのディレクトリにコピーする必要があります。

note注意事項:
Exchange 公開ルール ウィザードを使用するには、サーバーの管理のコンソール ツリーで、[ファイアウォール ポリシー] をクリックし、[タスク] タブで [Exchange Web クライアント アクセスの公開] をクリックします。

言語ディレクトリ

言語ディレクトリである nls には、サポートされる各言語の strings.txt ファイルが格納された 1 つのサブディレクトリがあります。Forefront TMG で HTML フォームが表示されるときに、.htm ファイル内のプレースホルダーが、クライアントのブラウザーから送信された Accept-Language ヘッダーに一致する言語の strings.txt ファイル内の文字列に置き換えられます。

Forefront TMG で、クライアントのブラウザーから送信された Accept-Language ヘッダーを対応付けることができない場合、Forefront TMG では既定のフォーム セット ディレクトリ内にある strings.txt ファイルが使用されます。この strings.txt は、英語版の strings.txt ファイルです。

フォーム セット ディレクトリのアクセス許可

Forefront TMG のインストール時に、フォーム ディレクトリのアクセス許可が自動的に設定されます。これらのアクセス許可は変更しないでください。

  • フル コントロール - ローカルの Administrators グループのメンバーに適用されます。

  • 読み取り専用 - ネットワーク サービス アカウントに適用されます。これにより、ネットワーク サービス アカウントで実行しているときに、Forefront TMG はこのディレクトリの内容を読み取ることができます。

親フォルダーからのアクセス許可の継承を維持するために、ファイルは、フォーム セット ディレクトリに移動するのではなく、コピーすることをお勧めします。

フォーム セットのカスタマイズ

場合によっては、公開されたいくつかの Web サイトのフォームに対して、異なる外観のフォームを使用する必要があります。各フォームの外観は、フォーム セットで定義されます。既存のフォーム セットを変更したり、独自のカスタム フォーム セットを作成したりできます。

以下のセクションでは、次の内容について説明します。

  • テキスト文字列のカスタマイズ

  • カスタム グラフィックの使用

  • カスタム フォーム セットの作成

note注意事項:
  • フォームをカスタマイズする場合は、元のフォームのすべてのフィールドと、Forefront TMG によって非表示フィールドと置き換えられるすべてのプレースホルダーを維持する必要があります。.htm ファイル内のすべての入力タグ <input ...> とフォーム タグ <form...> は変更せずに維持する必要があります。変更した場合、フォームが機能しません。また、strings.txt ファイルの形式を変更することもできません。

  • Exchange フォルダーと ISA フォルダーはアップグレード時に上書きされます。HTML フォームをカスタマイズした場合は、修正プログラム、Service Pack、またはアップグレードを適用する前に、カスタマイズしたファイルのバックアップを作成してください。

  • Forefront TMG Enterprise Edition を実行している場合は、Forefront TMG の各アレイ メンバーの Forefront TMG フォーム セットに変更を加える必要があります。

  • 変更を有効にするには、ファイアウォール サービスを再起動する必要があります。

  • 匿名ユーザーは、フォームのカスタマイズ ディレクトリ内にあるすべてのファイルにアクセスできます。このため、これらのファイルには機密情報を含めないでください。

テキスト文字列のカスタマイズ

Forefront TMG で HTML フォームが表示されるとき、.htm ファイル内のプレースホルダーが、クライアントのブラウザーの言語設定で指定された言語、または Web リスナーで指定された言語の strings.txt ファイル内の文字列に置き換えられます。テキスト文字列をカスタマイズするには、.htm ファイルのプレースホルダーに対応する、strings.txt ファイル内の文字列を変更します。

note注意事項:
  • strings.txt ファイルの内容をカスタマイズする前に、変更する strings.txt ファイルのバックアップを作成することをお勧めします。

  • 変更または追加するすべての文字列は、HTML 構文に準拠するように適切にエンコードする必要があります。文字列には < 文字を含めないでください。この文字は &lt; に置き換える必要があります。また、引用符を含める場合は、二重引用符ではなく、単一引用符を使用する必要があります。

次の例では、標準のログオン ページにおけるユーザー名の入力用のテキスト文字列を、"Domain\user name:" から "Alias:" に変更する方法を示します。

標準のログオン ページにおけるユーザー名の入力用のテキストを変更するには

  1. nls ディレクトリ内の適切な言語フォルダーにある strings.txt ファイルを開きます。

  2. プレースホルダー @@L_username_ text に対応する文字列を探します。この文字列は、strings.txt ファイル内で次のように記述されています。L_UserName_Text="Domain\User name:".

  3. このテキスト文字列を L_UserName_Text="Alias:" に変更します。

  4. strings.txt ファイルを保存します。HTML フォームが生成されると、@@L_username_text の新しい値がフォームに表示されます。

  5. Microsoft ファイアウォール サービスを再起動して、変更内容を有効にします。

テキスト文字列の変更だけでなく、新しい文字列をフォームに追加することもできます。次の例では、フォームに文字列を追加する方法を示します。

フォームに文字列を追加するには

  1. .htm ファイルを開きます。

  2. 新しい文字列用のプレースホルダーを追加し、ファイルを保存します。プレースホルダーの形式は、@@L_stringname にする必要があります。プレースホルダーに空白を含めることはできません。

  3. .htm ファイルを保存します。

  4. 対応する文字列を strings.txt ファイルに追加します。文字列は、L_stringname="string text" の形式で記述する必要があります。

  5. strings.txt ファイルを保存します。

  6. ファイアウォール サービスを再起動して、変更内容を有効にします。HTML フォームが生成されると、@@L_stringname の値がフォームに表示されます。

セキュリティに関する考慮事項

変更のために strings.txt ファイルをサード パーティに提供する場合は、ファイルにテキスト以外の追加が行われていないことを確認してください。テキスト以外の追加が行われていると、ネットワーク上での攻撃の手がかりになる可能性があるためです。

カスタム グラフィックの使用

特定のフォームにある任意のグラフィックを置き換えることができます。また、すべてのフォームにある任意のグラフィックを一括で置き換えて、そのグラフィックを参照するすべての .htm ファイルに変更されたグラフィックを表示することもできます。

Forefront TMG が HTML フォームで使用するすべてのグラフィックは、既定のフォーム ディレクトリ (ISA および Exchange) に格納されています。グラフィックを参照するために使用する URL は、次のように記述します。ここで、<ファイル名> は拡張子を含むファイル名を表します。/cookieauth.dll?GetPic?formdir=@@FORMDIR&image=<ファイル名>

次の例では、ロゴ グラフィック <lgntop.gif> を会社独自のロゴ <logo.gif> に置き換える方法を説明します。この例は、HTML ディレクトリ内のフォームを変更する方法を示しています。

ロゴ グラフィックを置き換えるには

  1. logo.gif を \%Forefront TMG Installation Directory%\Templates\CookieAuthTemplates\ISA\HTML フォーム セット ディレクトリにコピーします。

  2. 置き換えるグラフィックを含む .htm ファイルを開きます。

  3. グラフィックの URL を変更します。既存のファイル名 <lgntop.gif> を置き換えてください。変更後の URL は、/cookieauth.dll?GetPic?formdir=@@FORMDIR&image=logo.gif になります。

  4. ファイルを保存します。

  5. ファイアウォール サービスを再起動して、変更内容を有効にします。フォームが生成されると、フォームに logo.gif が表示されます。

また、すべてのフォームのグラフィックを一括で置き換えるには、置き換えるグラフィックのファイル名を使用して、グラフィックをフォーム ディレクトリにコピーします。

カスタム フォーム セットの作成

カスタム フォームを利用することで、フォーム用に別のディレクトリを指定できます。このとき指定できるのは、Forefront TMG に用意されている既定の ISA または Exchange 以外のディレクトリです。たとえば、2 つの別の会社の Web クライアント アクセスを公開するシナリオを検討していて、各社のページでは、独自のロゴおよびカスタム テキスト文字列を使用するとします。

以下の手順では、この例のカスタム フォームを用意する方法を説明します。

カスタム フォームを用意するには

  1. \CookieAuthTemplates\ ディレクトリ内に新しいフォルダーを作成します。たとえば、\%Forefront TMG Installation Directory%\Templates\CookieAuthTemplates\Company1 を作成します。

  2. ISA フォルダーまたは Exchange フォルダーの内容を、作成した新しいフォルダーにコピーします。標準のブラウザーのみを使用している場合は、HTML フォルダーをコピーするだけで十分です。

  3. コピーしたディレクトリで、フォームをカスタマイズします。適切な言語フォルダーにある strings.txt ファイル内のテキストを変更したり、グラフィック ファイルを置き換えたりします。<FORM> や <INPUT> などの HTML フォームの要素は変更しないでください。

  4. ファイアウォール サービスを再起動して、変更内容を有効にします。

  5. 新しいフォーム セットを Web リスナーに適用するために、Web リスナーの [フォーム] タブでディレクトリ名を入力します。完全なパスではなく、Company1 などのディレクトリの名前のみを入力します。または、新しいフォーム セットを Web 公開ルールに適用するために、ルールの [アプリケーションの設定] タブで [既定のフォームの代わりにカスタマイズした HTML フォームを使う] チェック ボックスをオンにし、ディレクトリ名を指定します。

  6. フォームが特定の言語でのみ表示されることを確認するために、Web リスナーの [フォーム] タブの [HTML フォームを表示する言語] で該当する言語を選択します。たとえば、クライアント ブラウザーの設定に関係なく、フォームが英語のみで表示されることを確認するには、[英語 [en]] を選択します。

  7. 2 つ目の会社 (Company2) についても同じ手順を繰り返します。

  8. [変更の適用] バーの [適用] ボタンをクリックして、構成を更新します。

note注意事項:
Forefront TMG Enterprise Edition を実行している場合は、Forefront TMG のすべてのアレイ メンバーでフォーム ディレクトリが表示されます。

言語の設定

既定では、Forefront TMG は、言語フォルダーにある strings.txt ファイルを使用して、HTML フォームを構築します。この言語フォルダーは、クライアントのブラウザーのインターネット オプションにある言語に関するオプションに基づいて指定されます。クライアントの言語設定は、Web リスナーの言語を指定することで上書きできます。また、言語設定に対応する strings.txt ファイルが見つからない場合、Forefront TMG は既定の strings.txt ファイルを使用します。

note注意事項:
既定のディレクトリにある strings.txt ファイルの言語は英語です。既定の strings.txt ファイルの言語は、他の任意の言語フォルダーにある strings.txt ファイルと置き換えることができます。