intra-mart Accel Platform 設定ファイルリファレンス 第25版 2020-04-01

IPアドレス取得元設定

概要

リモートホストのIPアドレスを取得する元となるHTTPヘッダを設定します。

リモートホストのIPアドレスを使用して認可でアクセス制御を行ったり、システム管理画面へのアクセス制御を行ったりする際に使用します。

デフォルト(未設定)の状態では javax.servlet.ServletRequest#getRemoteAddr() からリモートホストのIPアドレスを特定します。
しかし、ロードバランサやプロキシサーバを使用している環境では、 javax.servlet.ServletRequest#getRemoteAddr() の返却値はリモートホストのIPアドレスを表さない場合があります。
この場合、代替となるHTTPヘッダ(X-Forwarded-For など)を設定することで、そのヘッダに指定されている値を優先的に使用します。

ここで設定された順にヘッダ値を取得していき、IPアドレスに変換できたものを採用します。
最後まで取得できなかった場合は、 javax.servlet.ServletRequest#getRemoteAddr() からIPアドレスを取得します。
javax.servlet.ServletRequest#getRemoteAddr() の動作について詳しくは JDK の API リストを参照してください。

モジュール テナント管理機能
フォーマットファイル(xsd) WEB-INF/schema/ip-address-detector-config.xsd
設定場所 WEB-INF/conf/ip-address-detector-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<ip-address-detector-config xmlns="http://www.intra-mart.jp/http/utility/ip-address-detector-config"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.intra-mart.jp/http/utility/ip-address-detector-config ip-address-detector-config.xsd">
  <remote-address>
    <http-header delimiter="," position="first">X-Forwarded-For</http-header>
    <http-header>X-LB-Remote-Addr</http-header>
  </remote-address>
</ip-address-detector-config>

リファレンス

リモートIPアドレス設定

タグ名 remote-address
アクセス元のリモートホストのIPアドレスを取得する元の場所を定義します。

【設定項目】

<ip-address-detector-config>
  <remote-address>
    ・・・・・
  </remote-address>
</ip-address-detector-config>

必須項目 ×
複数設定 ×
設定値・設定する内容 なし
単位・型 なし
省略時のデフォルト値 なし
親タグ ip-address-detector-config

リモートIPアドレス取得元HTTPヘッダ設定

タグ名 http-header
アクセス元のリモートホストのIPアドレスを取得するHTTPヘッダ名を定義します。

ここで設定された順にヘッダ値を取得していき、IPアドレスに変換できたものを採用します。
最後まで取得できなかった場合は、 javax.servlet.ServletRequest#getRemoteAddr() からIPアドレスを取得します。

【設定項目】

<ip-address-detector-config>
  <remote-address>
    <http-header delimiter="," position="first">X-Forwarded-For</http-header>
    <http-header>X-LB-Remote-Addr</http-header>
  </remote-address>
</ip-address-detector-config>

必須項目 ×
複数設定
設定値・設定する内容 HTTPヘッダ名
単位・型 文字列
省略時のデフォルト値 なし
親タグ remote-address

【属性】

属性名 説明 必須 デフォルト値
delimiter
ヘッダに設定されている値を区切る文字列です。
省略した場合は区切らず、取得できたそのままの値を評価します。
× なし
position
delimiter で区切られた複数の値から評価に使用する値の場所です。
delimiter を省略した場合は使用されません。
first 最初の値を評価します。
last 最後の値を評価します。
数値
指定された位置の値を評価します。範囲外の場合は評価しません。
正の数を指定した場合は、最初から数えて何番目を評価するか決定します。
負の数を指定した場合は、最後から数えて何番目を評価するか決定します。
× first

注意

X-Forwarded-For ヘッダは非標準のため、ロードバランサやプロキシサーバの実装によって設定される値が異なる場合があります。
使用するロードバランサ、プロキシサーバの実装に応じて、delimiter, position パラメータを設定してください。