エージェントとプロキシ サーバ

目次
casso126jjp
目次
プロキシ サーバの背後にあるエージェントの設定
Web エージェントをプロキシ サーバの背後にインストールする場合、以下のパラメータを使用して、プロキシ サーバで動作する Web エージェントを設定できます。
  • ProxyTrust
    プロキシ サーバ上の CA Single Sign-On エージェントから受信した許可を信頼するように、送信先サーバ上のエージェントに指示します。送信先サーバはリバース プロキシ サーバの背後に置かれたサーバです。この値を yes に設定すると、プロキシ サーバ上のエージェントのみが認可のためにポリシー サーバに問い合わせるため、効率が上がります。送信先サーバ上で動作するエージェントは、ユーザに対する許可を再度求めるために再度ポリシー サーバに問い合わせを
    行いません
    デフォルト:
    No
     
  • ExpireForProxy
    クライアントがコンテンツ(ページおよび潜在的なヘッダまたは cookie)をキャッシュしないようにします。このパラメータの値が Yes に設定された場合、Web エージェントは以下の HTTP ヘッダのいずれかを HTTP レスポンスに挿入します。
    • Expires
    • Cache-control
    コンテンツをキャッシュしない場合、後続の要求は引き続き転送されます。
    ExpireForProxy パラメータが[yes]に設定されている場合、Web エージェントは、エージェントが実行したリクエストの種類に基づいて、適切な ProxyHeaders
    suffix_name
    パラメータで指定されている文字列を HTTP レスポンスに挿入します。
    HTTP/1.1 リクエストの場合、エージェントは、以下のパラメータの値をヘッダとしてレスポンスに挿入します。
    • ProxyHeadersAutoAuth
    • ProxyHeadersProtected
    • ProxyHeadersUnprotected
HTTP/1.0 リクエストの場合、エージェントは、以下のパラメータの値をヘッダとしてレスポンスに挿入します。
    • ProxyHeadersAutoAuth10
    • ProxyHeadersProtected10
    • ProxyHeadersUnprotected10
デフォルト:
No
このパラメータ名には「proxy」という単語が含まれていますが、このパラメータの設定は、Web ブラウザ、またはこのパラメータ設定を使用して CA Single Sign-On エージェントが動作する Web サーバに接続する他の任意のクライアントの動作にも影響します。
ページをキャッシュしないようプロキシに指示するために、Web エージェントはそのページに関する Expires ヘッダを追加します。このヘッダは、過去の日付に設定されています。そのため、HTTP 1.0 仕様で規定されているように、プロキシがそのページをキャッシュすることは防止されます。302 リダイレクトが発生した場合、cache-control: no-cache(キャッシュ制御: キャッシュがありません)ヘッダが代わりに設定されます。これはコンテンツのキャッシングを阻止しますが、これを Internet Explorer (IE)の操作に影響する可能性があります。 302 リダイレクトに対して cache-control: no-cache を使用する場合、IE の中でインプレース文書の表示を管理する ActiveX コンポーネントは、ファイルを検索する際に、ブラウザのキャッシュを必要とします。このヘッダは、ファイルをキャッシュしないようブラウザに指示するので、この ActiveX コンポーネントはファイルを検索することができず、リクエストを正しく表示することに失敗します。また、ExpireForProxy 設定を[yes]に設定すると、バックエンド サーバはリソースをキャッシュしないようにプロキシに指示します。
プロキシ サーバの背後にあるエージェントを設定する方法
  1. ProxyTust
    パラメータに yes を設定します。
  2. ExpireForProxy
    パラメータを[yes]に設定します。
  3. (任意)Cache-Control および ExpireForProxy(HTTP)ヘッダの値をカスタマイズします。
    プロキシ サーバの背後にあるエージェントが設定されます。
Cache-Control ヘッダ設定と ExpireForProxy ヘッダ設定のカスタマイズ
cache-control と ExpireForProxy の各ヘッダをカスタマイズして、アプリケーション ファイル(.doc、.pdf など)のインプレース起動に影響を及ぼすことなく、Web リソースを安全にすることができます。以下のコンテンツ タイプの特定の HTTP ヘッダを別途設定することによって、Web ブラウザまたはプロキシ サーバによってコンテンツがどのようにキャッシュされるかを制御することができます。
  • 自動許可されている
  • 保護されていない
  • 保護
重要
: RFC 2068 に準拠したこれらの設定の変更の影響がよくわからない場合は、デフォルトの設定を使用することをお勧めします。デフォルトの設定を変更する予定がある場合は、ユーザがアイドル タイムアウトを追跡するためにセッションを確立した後で、保護されていないページにアクセスすると、
Single Sign-On
セッション cookie が更新されることに注意してください。したがって、保護されていないページを、HTTP ヘッダをキャッシュするプロキシのキャッシュ対象とすることは望ましくありません。
プロキシによるキャッシュを防ぐために、以下の特性が設定ヘッダに適用されます。
  • エージェントのアクティビティにかかわらず、すべてのリダイレクトで Cache-Control: no-cache ヘッダが設定されます。
  • Web サーバは、使用されている HTTP プロトコル(1.0 または 1.1 以上)に基づいて、プロキシ/クライアントに適切なヘッダを送り返します。
cache-control: private や cache-control: max-age=60 のような複数のヘッダを使用することに対応して、あらゆるパラメータは、複数の値を表す文字列を使用して設定する必要があります。
次に、新しい設定について説明します。
  1. ProxyHeadersDefaultTime
    - デフォルトは 60 秒です。
  2. ProxyHeadersTimeoutPercentage
    - デフォルトは 10% です。
  3. 以下の Cache-Control ヘッダを使用できます。
    • casso126jjp
      ProxyHeadersAutoAuth
      Web エージェント設定の ExpireForProxy パラメータが yes に設定されている場合、Web エージェントがクライアントへの HTTP レスポンスに挿入する HTTP 1.1 ヘッダの値を指定します。このヘッダの値によって、自動許可されたリソースがキャッシュされるかどうか、
      または
      キャッシュされる期間が決定します。
      デフォルト
      : Expires: Thu, 01 Dec 1994 16:00:00 GMT
      (推奨される設定): "Cache-control: max-age=60"
    • casso126jjp
      ProxyHeadersAutoAuth10
      Web エージェントがクライアントへの HTTP レスポンスに挿入する HTTP 1.0 ヘッダの値を指定します。この値が適用されるのは、ExpireForProxy パラメータが
      [yes]
      に設定される場合のみです。このヘッダの値によって、自動許可されたリソースがキャッシュされるかどうか、またはキャッシュされる期間が決定します。
      デフォルト
      : Expires: Thu, 01 Dec 1994 16:00:00 GMT
      (推奨される設定): "Expires: Thu, 01 Dec 1994 16:00:00 GMT"
    • casso126jjp
      ProxyHeadersProtected
      Web エージェント設定の ExpireForProxy パラメータが yes に設定されている場合、Web エージェントがクライアントへの HTTP レスポンスに挿入する HTTP 1.1 ヘッダの値を指定します。このヘッダの値によって、保護されているリソースがキャッシュされるかどうか、またはキャッシュされる期間が決定します。
      デフォルト
      : Expires: Thu, 01 Dec 1994 16:00:00 GMT
      Cache-Control: no-cache
      (推奨される設定): "Cache-Control: private"
      ProxyHeadersProtected="Cache-Control: max-age=60"
    • casso126jjp
      ProxyHeadersProtected10
      Web エージェント設定の ExpireForProxy パラメータが yes に設定されている場合、Web エージェントがクライアントへの HTTP レスポンスに挿入する HTTP 1.0 ヘッダの値を指定します。このヘッダの値によって、保護されているリソースがキャッシュされるかどうか、またはキャッシュされる期間が決定します。
      デフォルト
      : Expires: Thu, 01 Dec 1994 16:00:00 GMT
      Cache-Control: no-cache
      (推奨される設定): "Expires: Thu, 01 Dec 1994 16:00:00 GMT"
    • casso126jjp
      ProxyHeadersUnprotected
      Web エージェント設定の ExpireForProxy パラメータが yes に設定されている場合、Web エージェントがクライアントへの HTTP レスポンスに挿入する HTTP 1.1 ヘッダの値を指定します。このヘッダの値によって、保護されていないリソースがキャッシュされるかどうか、またはキャッシュされる期間が決定します。
      デフォルト
      : Expires: Thu, 01 Dec 1994 16:00:00 GMT
      Cache-Control: no-cache
      (推奨される設定): ProxyHeadersUnprotected="Cache-Control: private"
      ProxyHeadersUnprotected="Cache-Control: max-age=60"
    • casso126jjp
      ProxyHeadersUnprotected10
      Web エージェント設定の ExpireForProxy パラメータが yes に設定されている場合、Web エージェントがクライアントへの HTTP レスポンスに挿入する HTTP 1.0 ヘッダの値を指定します。このヘッダの値によって、保護されていないリソースがキャッシュされるかどうか、またはキャッシュされる期間が決定します。
      デフォルト
      : Expires: Thu, 01 Dec 1994 16:00:00 GMT
      Cache-Control: no-cache
      (推奨される設定): "Expires: Thu, 01 Dec 1994 16:00:00 GMT"
複数のヘッダを設定する場合(たとえば、保護されていない HTTP/1.1 コンテンツに対して、cache-control ヘッダを推奨設定値にする場合)、以下のことに注意してください。
  • 設定パラメータを複数の箇所で記述する必要があります
    また、それらの値をカンマ(,)またはプラス記号(+)で区切ることはできません。
  • これらの設定パラメータの値は HTTP レスポンス ヘッダの値なので、RFC 2616(HTTP/1.1 用)、RFC 1945(HTTP/1.0 用)、および RFC 822 に準拠する必要があります。HTTP/1.1 と HTTP/1.0 の両方が HTTP ヘッダの形式を RFC 822 メッセージの形式として指定します。つまり、「Name: Value」となります(Name の後にコロン、スペース、値が続きます)。
保護されていないリソースにユーザがアクセスした場合に、適切なキャッシュ期限ヘッダを設定するよう
Web エージェントが設定されていない場合、Web エージェントはデフォルトではそれらのヘッダを設定しません。したがって、Web ブラウザまたはプロキシ サーバが SMSESSION cookie をキャッシュすることが許可されます。このキャッシュされた cookie は、ユーザが他のセッション(別のユーザ コンテキスト)を開始すると、Web ブラウザまたはプロキシ サーバによって再利用されるため、許可されていないインパーソネーション(偽装)が発生します。
プロキシ ヘッダの使用に関する注意事項
  • Web エージェントがどのプロキシ ヘッダも送信しないように設定するには、ProxyHeadersUnprotected の値を空白にします。例:
    ProxyHeadersUnprotected=""
    : 二重引用符(")を表示するには、引用符(')を使用します。Web エージェントは、引用符を自動的に二重引用符へ変換します。
  • %% または %d という値(同じものとして取り扱われます)は、ProxyHeaders 行の中で記述することができます。この値は、IdleTimeout および SessionTimeout のうち小さいものに対して、ProxyHeadersTimeoutPercentage をかけた値へ置き換えられます。タイムアウトが設定されていない場合、ProxyHeadersDefaultTime が使用されます。
  • 標準的なヘッダ(1.1 およびそれ以降)と、HTTP 1.0 ヘッダーのそれぞれに関して、バックエンド サーバへのリクエストを想定して、これらの値が正しく設定されていることを確認してください。
  • ExpireForProxy="YES" は、クエリ文字列の中で SMSESSION cookie を渡す、cookie プロバイダによるリダイレクトを期限切れにします。
セキュリティの考慮事項
ブラウザセッションは、ログアウトの後も持続します。そのため、SMSESSION cookie を削除した場合も、ユーザが同じブラウザセッションを使用して、既にキャッシュされたファイルを表示する作業を防止することはありません。この問題が発生する原因は、以下のとおりです。プロキシ サーバはログアウト要求を意識せず、保護されたコンテンツ/保護されていないコンテンツのすべてが、タイムアウトになる(cache-control: max-age=60)までは、cache-control: private ユーザ用にそれらをキャッシュの中にとどめます。したがって、1 つのページ内でそのようなリクエストを実行した場合、有効な SMSESSION cookie が返されます。セキュリティを保証する唯一の方法は、キープ アライブを無効にすること、またはそのブラウザを閉じることです。
さらに、ローカルブラウザキャッシュは、private/max-age の組み合わせから影響を受けます。そのキャッシュは、複数のセッションにわたってローカルキャッシュを参照するからです。この理由で、保護されたリソースに関連する max-age の時間は、できるだけ短くする必要があります。
if-modified-since および if-none-match リクエスト ヘッダが使用されている場合、
allowcacheheaders
パラメータを
[NO]
に設定すると、プロキシ サーバがこれらのヘッダを参照するのを阻止できません。プロキシ サーバに従って、リクエストに対して、これらの参照されたヘッダが有効になります。
以下をインストールすることによって、この問題を回避します。
  • プロキシ サーバ上に Web エージェント。
  • リクエストからこれらのヘッダを削除する他のフィルタ。
HTTP 1.0 と、HTTP 1.1 またはそれ以降は、キャッシングを行うプロキシに対して命令を指定する目的で、互いに異なるヘッダを使用します。そのため、接続のタイプに基づいて最適な取り扱いを保証するために、これらのバージョンを 1 つの方法で設定する必要があります。