製品によって使用されるデフォルトの HTTP ヘッダ

目次
sm1252sp1jjp
目次
2
Single Sign-On
 のデフォルトの HTTP ヘッダは、アプリケーションに対して、ユーザ データの収集方法や、その情報を適用してユーザごとにパーソナライズしたコンテンツを表示する方法を指示します。
Web アプリケーション環境の一部として、
Single Sign-On
エージェントは、デフォルトの HTTP ヘッダを Web サーバに送信します。Web サーバは、そのヘッダ情報を Web アプリケーションが使用できるようにします。これらのヘッダを使用して関数を組み込んで、Web アプリケーションのコンテンツのパーソナライゼーションを行うことができます。ヘッダには、ユーザ名やユーザが実行を許可されているアクションのタイプなどの情報を格納することができます。
エージェントは、ヘッダが Web アプリケーションから呼び出されたかどうかにかかわらず、それらのヘッダを送信します(無条件に)。しかし、いくつかのヘッダを無効にして、ヘッダのスペースを空けることもできます。
Web エージェントが使用できる
Single Sign-On
のデフォルトの HTTP ヘッダは、以下のとおりです。
  • HTTP_SM_AUTHDIRNAME
    ポリシー サーバがユーザを認証する対象となるディレクトリの名前を示します。管理者は、管理 UI を使用してこのディレクトリを指定します。
  • HTTP_SM_AUTHDIRNAMESPACE
    ポリシー サーバがユーザを認証する対象となるディレクトリ ネームスペースを指定します。管理者は、管理 UI を使用してこのネームスペースを指定します。
  • HTTP_SM_AUTHDIROID
    ポリシー サーバ データベースのディレクトリ オブジェクト識別子(OID)を示します。
  • HTTP_SM_AUTHDIRSERVER
    ポリシー サーバがユーザを認証する対象となるディレクトリ サーバを示します。管理者は、管理 UI を使用してこのディレクトリ サーバを指定します。
  • HTTP_SM_AUTHREASON
    認証が失敗した後または 2 回目の認証要求の後に Web エージェントがユーザに返すコードを示します。
  • HTTP_SM_AUTHTYPE
    ポリシー サーバがユーザの ID の確認に使用する認証方式のタイプを示します。
  • HTTP_SM_DOMINOCN
    Domino LDAP ディレクトリを使用してユーザを認証する場合の、ユーザの Domino 正規名を指定します。
    例:
    HTTP_SM_DOMINOCN="CN=jsmith/O=netegrity"
  • HTTP_SM_REALM
    リソースが存在する
    Single Sign-On
    のレルムを示します。
  • HTTP_SM_REALMOID
    リソースが存在するレルムを識別するレルム オブジェクトの ID を示します。この ID は、サード パーティ製のアプリケーションでポリシー サーバを呼び出す場合に使用します。
  • HTTP_SM_SDOMAIN
    エージェントのローカル cookie ドメインを示します。
  • HTTP_SM_SERVERIDENTITYSPEC
    ポリシー サーバの識別チケットを示します。このチケットがユーザ ID を追跡します。Web エージェントは、ユーザに合わせてコンテンツをパーソナライズできるように、このチケットを使用して匿名認証方式で保護されたコンテンツにアクセスします。
  • HTTP_SM_SERVERSESSIONID
    ユーザ セッションを識別する一意の文字列を示します。
  • HTTP_SM_SERVERSESSIONSPEC
    ユーザ セッション情報を含むチケットを示します。この情報をデコードできるのはポリシー サーバのみです。
  • HTTP_SM_SESSIONDRIFT
    Web エージェントがキャッシュ内の情報を使用して、セッションをアクティブにしておくことのできる時間の長さを示します。この時間を過ぎると、ポリシー サーバとのセッションが検証されます。このヘッダを設定する場合、ポリシー サーバ上のセッション サーバを有効にしておくこと、およびセッション検証期間を設定しておくことが必要です。
  • HTTP_SM_TIMETOEXPIRE
    セッションの残り時間を示します。
  • HTTP_SM_TRANSACTIONID
    各ユーザ リクエストに対してエージェントが生成した一意の ID を示します。
  • HTTP_SM_UNIVERSALID
    ポリシー サーバが生成したユニバーサル ユーザ ID を指定します。この ID は顧客に固有であり、アプリケーションに対してユーザを識別しますが、ユーザ ログインとは異なります。
  • HTTP_SM_USER
    認証されたユーザのログイン名を示します。証明書ベースの認証などで、ユーザがログイン時にユーザ名を入力しなかった場合、この変数は設定されません。
  • HTTP_SM_USERDN
    ポリシー サーバによって判別される、認証済みユーザの識別名を指定します。
    匿名認証方式では、このヘッダによって GUID (グローバルな固有識別子)が返されます。
  • HTTP_SM_USERMSG
    認証の試行後にエージェントがユーザに提示するテキストを指定します。認証方式によっては、認証リクエスト時のテキストや認証に失敗した理由が表示されます。
HTTP ヘッダと cookie 変数
WebAgent-HTTP-Header-Variable および WebAgent-HTTP-Cookie-Variable 属性を使用すると、Web エージェントは、名前/値ペアのスタティック リストまたはダイナミック リストをアプリケーションに渡すことができます。名前/値ペアはリソースを要求するユーザに固有であるため、アプリケーションはユーザが参照するコンテンツをカスタマイズできます。
たとえば、管理者が WebAgent-HTTP-Header-Variable レスポンス属性にユーザのフルネームを格納するように設定するとします。ユーザが保護対象リソースへのアクセスを許可されると、Web エージェントはユーザのフルネームを Web アプリケーションに渡します。すると、アプリケーションによってユーザの名前が表示されます。これは、顧客との関係構築に役立ちます。
Web アプリケーション環境で、HTTP-Header-Variable レスポンス属性は HTTP_
attribute_name
変数として表示されます。ここで、
attribute_name
は、HTTP 変数の名前(たとえば、USERFULLNAME)です。名前の一部としてアンダースコア(_) を使用する必要はありません。アンダースコアは、一部のアプリケーション サーバで問題を引き起こすからです。
: 属性名の一部に使用されているダッシュ(-)をアンダースコア(_)に変換すること、およびすべてのアルファベットが、サーバによって大文字に変換されることがあります。
ヘッダ変数とエンド ユーザ IP アドレス検証
Single Sign-On
Web エージェントは、最初のリクエストの後に同じユーザからリクエストを受け取ると、リクエストを送信したユーザの IP アドレスをセッション cookie 内で暗号化されている IP アドレスと比較することによって、後続のリクエストと共に送信されたセッション cookie を検証します。cookie 内のアドレスは、ユーザの初期の要求中にエージェントによって生成されます。
ファイアウォール、ロード バランサ、キャッシュ デバイス、およびプロキシなど、着信ネットワーク トラフィックを平準化して管理するために使用されるメカニズムは、ユーザの IP アドレスを変更したり、すべての受信要求が単一の IP アドレスまたは少数の IP アドレスのグループから発信されているかのように見せたりすることがあります。その結果、Web エージェントの IP チェックは無効になります。Web エージェントは、カスタム HTTP ヘッダおよび安全なプロキシ IP アドレスの設定可能なリストを使用して、このようなネットワーク環境で IP チェックを実行できるようになりました。
以下の表に、新しい IP チェック機能の用語をリストします。
 
用語
定義
HTTP 要求ヘッダ
HTTP 要求の単一の要素を説明する名前/値ペア。
カスタム IP ヘッダ
中間 HTTP ネットワーク アプリケーションまたはハードウェア デバイスがリクエスタの IP アドレスを格納するために使用する、ユーザ定義の HTTP 要求ヘッダ。
IP チェック
最初の要求後に、要求の REMOTE_ADDR を、SMSESSION cookie に格納されている REMOTE_ADDR 値と比較することによって、Web エージェントが要求の認証性をチェックできる機能。この機能は、IP 検証とも呼ばれます。
REMOTE_ADDR
Web サーバにリクエストを送る HTTP クライアントの IP アドレスを表す Web サーバ変数。REMOTE_IP または CLIENT_IP とも呼ばれます。これは、プロキシ サーバ、NAT ファイアウォール、またはその他のネットワーク サービスやデバイスが、リクエスタとターゲット Web サーバの間にある場合のリクエスタ IP アドレスとは異なります。
要求者
HTTP 要求の発信者。通常、ブラウザを使用しているユーザです。
リクエスタの IP アドレス
オリジナルの HTTP 要求を発信しているユーザの IP アドレス。
シングル サインオン
保護された Web サイトに安全にアクセスするためにユーザに求める認証情報入力を、セッション中に 1 回のみで済むようにする機能。
SMSESSION cookie
Web エージェントがシングル サインオン状態を追跡するために使用する HTTP メカニズム。
 
カスタム ヘッダによる IP アドレスの検証方法
Web エージェントは、REMOTE_ADDR 変数を使用する代わりにカスタム HTTP ヘッダを使用して、ユーザの IP アドレスを判別できるようになりました。プロキシまたはその他のデバイスがカスタム クライアント IP ヘッダを設定し、Web エージェントが受信要求でこのヘッダを検索するように設定されている場合は、エージェントは、クライアント IP の情報源としてこのヘッダを使用します。
カスタム ヘッダを設定するほかに、プロキシ IP アドレスのリストをセットアップすることもできます。REMOTE_ADDR がプロキシ リストのアドレスと一致する場合は、Web エージェントは、カスタム ヘッダからユーザの IP アドレスを取得します。一致しない場合は、ユーザの IP アドレスは、REMOTE_ADDR から取得されます。
Web エージェントがリクエスタの IP アドレスを解決すると、アドレスは格納され、要求の処理のために使用されます。アドレスを解決できない場合は、IP アドレスは unknown に設定されます。
Web エージェントは、クライアント IP アドレスが解決された場所を記録して、必要なデバッグを容易に行えるようにします。
IP アドレス検証の設定
以下のパラメータを使用して IP アドレス チェックを実装できます。
CustomIpHeader
リクエスタの IP アドレスを見つけるためにエージェントが検索する HTTP ヘッダを指定します。このパラメータに値が設定されていない場合は、デフォルトは空の文字列になります。最大長はないため、値は、有効な HTTP ヘッダ値を含む任意の文字列にできます。
デフォルト:
No
: HTTP_ORIGINAL_IP
ProxyDefinition
ネットワーク内の信頼されたプロキシのリストの IP アドレスを指定します。エージェントは、リクエストがユーザから直接かプロキシ サーバ経由かを判断するために、ProxyDefinition の値、および CustomIpHeader などの他の ACO パラメータを使用します。ProxyDefinition の値を定義すると、エージェントは、プロキシ経由のすべてのリクエストが ProxyDefinition リストで見つかる IP アドレスを持つと期待します。リクエストにリストで見つからない IP アドレスが含まれている場合、エージェントはそのリクエストのクライアント IP を解決するために CustomIPHeader リストを参照せず、クライアント IP を解決されないままにします。
以下のアクションを実行するには、AUTO キーワードを ProxyDefinition リストに追加します。
  • エージェントがプロキシ経由のリクエストを許可し、HTTP クライアントが同じアプリケーションにアクセスするのを許可するようにします。
  • CustomIpHeader ヘッダ値がリクエスト内に存在しない場合は、エージェントが REMOTE_ADDR IP アドレスにフォールバックするのを許可します。
以下の表では、リクエストの処理方法について説明します。
リクエストがプロキシ経由でアクセスされる場合
ProxyDefinition リスト
CustomIPHeader
RequireClient IP
エンド ユーザの動作
プロキシの IP アドレスのリスト
X-forwarded-for
はい
x-forwarded-for に解決される IP でページがアクセスされます
AUTO キーワード付きのプロキシの IP アドレス
X-forwarded-for
はい
x-forwarded-for に解決される IP でページがアクセスされます
AUTO キーワードのみ
X-forwarded-for
はい
x-forwarded-for に解決される IP でページがアクセスされます
リクエストがエージェントで直接アクセスされる場合
ProxyDefinition リスト
CustomIPHeader
RequireClientIP
エンド ユーザの動作
プロキシの IP アドレスのリスト
X-forwarded-for
はい
REMOTE_ADDR から解決された IP でページがアクセスされます
AUTO キーワード付きのプロキシの IP アドレス
X-forwarded-for
はい
403 禁止されているリクエスト
AUTO キーワードのみ
X-forwarded-for
はい
REMOTE_ADDR から解決された IP でページがアクセスされます
リクエストがエージェントで直接アクセスされる場合
ProxyDefinition リスト
CustomIPHeader
RequireClientIP
エンド ユーザの動作
プロキシの IP アドレスのリスト
X-forwarded-for
いいえ
未解決の IP (不明な IP)でアクセスされたページ。
AUTO キーワード付きのプロキシの IP アドレス
X-forwarded-for
いいえ
REMOTE_ADDR から解決された IP でページがアクセスされます
AUTO キーワードのみ
X-forwarded-for
いいえ
REMOTE_ADDR から解決された IP でページがアクセスされます
 
RequireClientIP
エージェントがクライアントの IP アドレスを検証するかどうかを指定します。この値を yes に設定すると、エージェントはブラウザの Cookie 内の IP アドレスがクライアントの IP アドレスに一致することを検証します。アドレスが一致
しない
場合、403 エラー メッセージがユーザのブラウザに表示されます。Cookie に IP アドレスが含まれていない場合、ユーザは認証情報を求められます。
デフォルト
: No (クライアントの IP アドレスは検証されません)
: これらの設定は、TransientIPCheck および PersistentIPCheck パラメータとは無関係です。
以前のリリースの Web エージェントによる IP アドレス検証
6.x QMR 2 または 3 以前の Web エージェントの環境では、IP チェックが設定されている場合、シングル サインオンが影響を受ける可能性があります。
v6.x QMR 2 および 5.x QMR 7 より前の Web エージェントは、リクエスタ IP アドレスを解決できないため、これらの Web エージェントによって作成される SMSESSION cookie は、6.x QMR 2 または 3 の Web エージェントによって破棄されることがあります。これには、SDK を使用して SMSESSION cookie を生成するカスタム エージェント、アプリケーション サーバ エージェント、および SMSESSION cookie を使用するシングル サインオン環境内のその他のすべての
Single Sign-On
エージェントが含まれます。
逆に言えば、6.x QMR 2 および 3 の Web エージェントは、リクエスタの IP アドレスを解決できるため、このアドレスは古いエージェントによって解決されたアドレスとは異なります。
HTTP ヘッダの保存
新しいヘッダが生成されたときに、既存の HTTP ヘッダを置き換えずに保存するように、Web エージェントを設定することができます。この機能は、名前は同じであっても値が異なる複数の
Single Sign-On
レスポンスを生成し、ヘッダへの格納が必要なアプリケーションにおいて有効です。同じ HTTP ヘッダのインスタンスが複数存在する場合、Web サーバはすべての適切なヘッダ値をカンマで区切って 1 つのヘッダを生成して処理します。
デフォルトでは、Web エージェントは、誤ったヘッダ値を使用するアプリケーションへの予防措置としてヘッダを保存しません。Oracle iPlanet、Domino および Apache Web エージェントで HTTP ヘッダを保存するには、PreserveHeaders パラメータを yes に設定します。デフォルト値は no です。
HTTP ヘッダ リソースのキャッシュ方法の制御
AllowCacheHeaders
の設定により、Web エージェントでキャッシュ関連リクエスト ヘッダを処理する方法を制御できます。この設定は、保護されているリソース リクエストを Web サーバに渡す
前に
、Web エージェントでリクエストから以下のキャッシュ関連 HTTP ヘッダを削除するかどうかを指定します。
  • if-modified-since
  • if-none-match
AllowCacheHeaders 設定は、ブラウザがキャッシュされたページを使用するかどうかに影響します。この設定は、自動許可リソース(IgnoreExt パラメータの値を含む)には影響
しません
。Web サーバとブラウザの設定は、自動許可リソースがキャッシュされるかどうかを決定します。
終了したセッションの場合、ブラウザはキャッシュされたコンテンツを使用
しません
。AllowCacheHeaders パラメータの値は無視されます。 
以下のオプションは、AllowCacheHeaders 設定に対して有効です。
  • Yes
    -- エージェントはキャッシュ関連の HTTP ヘッダを削除
    しません
    。セッションを検証するため、SMSESSION Cookie が引き続き追跡されます。セッションが期限切れになると、Web エージェントは更新された SMSESSION Cookie を 304 「変更なし」のレスポンスで送信します。このレスポンスは、キャッシュに格納される未変更のリソースに適用されます。if-modified-since HTTP ヘッダに示される時間により、この動作がいつ発生するかが決まります。
    重要:
    このパラメータを「yes」に設定すると、適切なキャッシュ制御ヘッダがないパーソナライズされたアプリケーションのページがキャッシュされる場合があります。これは、予期しない動作を引き起こし、ブラウザが機密データをディスクに保存することを可能にします。
  • No
    - (デフォルト値)。エージェントは、
    保護されている
    リソース リクエストからのみ、キャッシュ関連 HTTP ヘッダを削除します。Web サーバは、リクエストを無条件として取り扱います。キャッシュのコンテンツは検証されません。
  • None
    -- Web エージェントは、保護されているリソース
    および
    保護されていないリソースについて、キャッシュ関連のヘッダをすべて削除します。
LogOffUri パラメータを設定する場合、AllowCacheHeaders パラメータの値を「
no
」に設定します。設定しない場合は、ブラウザ セッションは正しく終了しません。キャッシュされたログアウト ページがユーザに表示される可能性があります。
注:
HTTP 1.1 キャッシュの仕組みの詳細については、RFC 2616 でセクション 13 「Caching in HTTP」を参照してください。
HTTP ヘッダのエンコード仕様の設定
HTTPheaderEncodingSpec
の設定は、すべての HTTP ヘッダの値、およびすべてのカスタム HTTP-COOKIE レスポンスのエンコードに影響を及ぼします。 このパラメータを使用して、Web アプリケーションをサポートし、ローカライズ済みのテキストを特定のエンコードで表示することを期待できます。
選択したエンコードによって HTTP トラフィックが不正と見なす Cookie に文字が配置される場合は、ラッピング仕様でエンコード仕様を指定してください。ラッピング仕様は、2 バイトのエンコード データが含まれるカスタム HTTP Cookie レスポンスに対して有用です。推奨されるラッピング仕様は RFC-2047 です。 たとえば、ラッピング仕様によって一部の Shift-JIS 文字を更にエンコードしないと、それらの文字によって望ましくない結果が生じる場合があります。HTTPheaderEncodingSpec 設定を Shift-JIS,RFC-2047 に設定できます。 また、ラッピングは、受信アプリケーションがエンコードされたテキストをより適切に解釈できるように、アプリケーションにエンコードのタイプと性質を伝えます。 
注:
漢字文字については、SHIFT-JIS のスーパーセットである SECP932 を使用できます。ほとんどの漢字エンコードおよびデコードに SHIFT-JIS を使用できますが、CP932 ではそれより多くの文字セットがカバーされます。
ラッピング仕様を指定する場合は、データはまず HTTPHeaderEncodingSpec に従ってエンコードされ、次にラッピング仕様によって更にエンコードされます。 
以下の構文を使用して、HTTPheaderEncodingSpec 設定を設定します。
encoding_specification
,
wrapping_specification
encoding_specification
は、次の値のいずれかを表すテキスト文字列です。UTF-8、Shift-JIS、EUC-J、または ISO-2022 JP。 
wrapping_specification
 は
RFC-2047
である必要があります。この変数はオプションですが、これを含めることを強くお勧めします。選択したエンコーディング タイプは、HTTP プロトコルと互換性のないバイト コードを生成した可能性があります。
例:
Shift-JIS,RFC-2047
HTTPHeaderEncodingSpec の設定を空白のままにした場合、デフォルトは UTF-8 であり、ラッピングは行われません。
重要:
以下の条件のいずれかが適用される場合、エージェントがインストールされているプロキシ システムについて、HTTPHeaderEncodingSpec を UTF-8、RFC-2047 に設定します。
  • エージェントで 管理 UI を保護する場合。
  • 管理者の DN 値に英語以外の文字がある場合。
RFC 2047 への準拠の無効化
デフォルトでは、Web エージェントは RFC 2047 に準拠しています。ただし、
ConformToRFC2047
パラメータを no に設定することで、この準拠を無効にできます。
このパラメータが存在しないか、yes に設定されている場合は、Web エージェントは RFC 2047 に準拠しています。
ヘッダでの小文字の HTTP の使用(Oracle iPlanet および Domino Web サーバについて)
大文字と小文字を区別するサーバ アプリケーションが存在している場合、エージェントの HTTP ヘッダで大文字または小文字のいずれを使用するかを指定できます。Web エージェントのデフォルトは、小文字のヘッダです。
たとえば、Oracle iPlanet Web Server の場合、http_sm_user のように、デフォルトで HTTP ヘッダ変数は小文字になります。
注:
IIS、Apache、IHS Web サーバは、この機能の影響を受けません。これらの Web サーバは、Web エージェントで設定されたヘッダの大文字小文字の区別を考慮しないためです。
小文字のヘッダを使用するには、LowerCaseHTTP パラメータを
[はい]
に設定します。大文字のヘッダ変数が必要な場合は、LowerCaseHTTP を
[いいえ]
に設定します。
HTTP ヘッダのレガシー変数の有効化
以下のパラメータを使用して、Web エージェントが HTTP ヘッダに使用する命名規則を指定できます。
LegacyVariables
Web エージェントが HTTP ヘッダ名でアンダースコアを使用するかどうかを指定します。一部の Web サーバ(Sun Java System など)では、HTTP ヘッダでアンダースコア文字を使用すると、一部のアプリケーションで問題が発生します。
このパラメータを no に設定すると、以下の例に示されるように、HTTP ヘッダでアンダースコアは使用されません。
SMHeaderName
このパラメータを yes に設定すると、以下の例に示されるように、HTTP ヘッダでアンダースコアが使用されます。
SM_HeaderName
デフォルト:
(従来のエージェント) Yes
デフォルト:
(フレームワーク エージェント) No
レガシー変数を有効にし、Web エージェントに HTTP ヘッダ名でアンダースコアを使用させるには、LegacyVariables パラメータの設定値を yes に設定します。
注:
Apache 2.4.x Web サーバについては、LegacyVariables パラメータを「No」に設定して、SMUSER や SMUSERDN などのデフォルトのヘッダを表示します。
デフォルトの HTTP ヘッダ変数の無効化
システムプラットフォームの多くは、HTTP ヘッダの限界値が 4096 バイトになっています。この限界値を超えないようにしてカスタム レスポンス変数用のスペースを確保する場合、
Single Sign-On
の一部のデフォルト HTTP ヘッダ変数を無効にすることができます。
デフォルトの変数は以下のカテゴリにグループ化されています。
注:
個々の変数を無効にすることはできません。いくつかの変数のカテゴリのみ無効にできます。
  • 認証ソース変数
    • SM_AUTHDIRNAME
    • SM_AUTHDIRSERVER
    • SM_AUTHDIRNAMESPACE
    • SM_AUTHDIROID
  • ユーザ セッション変数
    • SM_SERVERSESSIONID
    • SM_SERVERSESSIONSPEC
    • SM_SERVERIDENTITYSPEC
    • SM_SESSIONDRIFT
    • SM_TIMETOEXPIRE
  • ユーザ名変数
    • SM_USER
    • SM_USERDN
    • SM_DOMINOCN
HTTP ヘッダ変数のデフォルト使用を無効にするには、以下のタスクのいずれかを完了します。
  • DisableAuthSrcVars パラメータを「yes」に設定して、認証ソース変数を無効にします。
  • DisableSessionVars パラメータを「yes」に設定して、ユーザ セッション変数を無効にします。デフォルトは no です。
    Single Sign-On
    フェデレーションを使用している場合は、DisableSessionVars パラメータの設定を「no」のままにします。この値を変更すると、エージェントは sessionID および sessionspec ヘッダを設定しません。これらのヘッダのがない場合、エージェントはセッションを無視し、以下のエラー タイプが FWS トレース ログに書き込まれます。[リクエストにはセッション ID ヘッダは含まれていません。セッション Cookie [SMSESSION] は有効ではありません。]
  • DisableUserNameVars パラメータを「yes」に設定して、ユーザ名変数を無効にします。
    注:
    CA Identity Manager や、このカテゴリの変数を使用する可能性のあるアプリケーションを使用している場合は、DisableUserNameVars パラメータの値が「no」(有効)に設定されていることを確認してください。