Interstage HTTP Serverの環境定義ファイル(httpd.conf)において、クライアント認証(証明書の条件設定による認証)によるアクセス制御を設定します。
Interstage HTTP Serverの環境定義ファイル(httpd.conf)の設定方法を以下に示します。
SSLCertExpand on (1) SSLNotifyVers on (2) RewriteEngine On (3) RewriteCond %{ENV:環境変数A} 条件パターンA (4) RewriteCond %{ENV:環境変数B} 条件パターンB RewriteRule .* - [L] (5) RewriteCond %{ENV:環境変数C} 条件パターンC RewriteCond %{ENV:環境変数D} 条件パターンD RewriteRule .* - [L] RewriteRule .* - [F] (6)
SSLCertExpandディレクティブに「on」を指定します。省略可(省略時:on)。本指定により、クライアント証明書情報の環境変数の設定を有効とします。
SSLNotifyVersディレクティブに「on」を指定します。省略可(省略時:on)。本指定により、SSL関連の環境変数の設定を有効とします。
RewriteEngineディレクティブに「On」を指定します。本指定により、リライト機能を有効とします。
RewriteCondディレクティブに、指定した環境変数に対する条件パターンを指定します。本指定により、クライアント証明書の属性情報に対する認証許可条件を設定します。手順4のRewriteRuleディレクティブ([L]フラグ付)の前にRewriteCondディレクティブを複数指定して、併用する認証許可条件を設定できます。
環境変数は、以下から選択します。なお、環境変数は、Webサーバの動作を制御するために使用する変数であり、オペレーティングシステムで制御している環境変数ではありません。環境変数の詳細については、「Interstage HTTP Server 運用ガイド」の「環境変数とサーバ変数」を参照してください。
環境変数名 | クライアント証明書の項目 |
---|---|
SSL_CLIENT_CN | 氏名 |
SSL_CLIENT_C | 国名 |
SSL_CLIENT_EMAIL | メールアドレス |
SSL_CLIENT_O | 組織名 |
SSL_CLIENT_OU | 組織単位名 |
SSL_CLIENT_T | 肩書 |
SSL_CLIENT_PHONE | 電話番号 |
SSL_CLIENT_ST | 州/都道府県 |
SSL_CLIENT_L | 市町村名 |
条件パターンは、指定した環境変数の値を判定するための条件を、正規表現で指定します。条件パターンの文字列の前にエクスクラメーションマーク(!)を付加し、正規表現にマッチしないパターンを条件として指定することもできます。文字列内に空白を指定する場合は、文字列をダブルクォーテーション(")で囲みます。
手順3のRewriteCondディレクティブのあとに、RewriteRuleディレクティブ([L]フラグ付)を指定します。本指定により、手順3の認証許可条件に従ってアクセス許可を設定します。なお、手順3のRewriteCondディレクティブと手順4のRewriteRuleディレクティブを組み合わせて複数設定することにより、複数の認証許可条件を設定できます。
RewriteRuleディレクティブ([F]フラグ付)を指定します。本指定により、上記で設定した認証許可条件に不一致なクライアント証明書を送信したクライアントのアクセス拒否を設定します。
注意
ServletサービスのアプリケーションのURLに対してクライアント証明書によるアクセス制御を設定する場合は、<Location>セクションの中に設定してください。
■組織による認証条件の設定
例
以下のいずれかの条件に一致するクライアント証明書のアクセスを許可する場合
組織名「organizationA」、かつ組織単位名「organizationAunit1」/「organizationAunit2」
組織名「organizationB」、かつ組織単位名「organizationBunit1」・「organizationBunit2」以外
組織名が「organization」(大文字と小文字の区別なし)で始まる文字列、かつ肩書に「Manager」を含む文字列
LoadModule rewrite_module "C:/Interstage/F3FMihs/modules/mod_rewrite.so" RewriteEngine On RewriteCond %{ENV:SSL_CLIENT_O} ^organizationA$ RewriteCond %{ENV:SSL_CLIENT_OU} ^organizationAunit1$|^organizationAunit2$ RewriteRule .* - [L] RewriteCond %{ENV:SSL_CLIENT_O} ^organizationB$ RewriteCond %{ENV:SSL_CLIENT_OU} !(^organizationBunit1$|^organizationBunit2$) RewriteRule .* - [L] RewriteCond %{ENV:SSL_CLIENT_O} "^organization.*" [NC] RewriteCond %{ENV:SSL_CLIENT_T} .*Manager.* RewriteRule .* - [L] RewriteRule .* - [F]
LoadModule rewrite_module "/opt/FJSVihs/modules/mod_rewrite.so" RewriteEngine On RewriteCond %{ENV:SSL_CLIENT_O} ^organizationA$ RewriteCond %{ENV:SSL_CLIENT_OU} ^organizationAunit1$|^organizationAunit2$ RewriteRule .* - [L] RewriteCond %{ENV:SSL_CLIENT_O} ^organizationB$ RewriteCond %{ENV:SSL_CLIENT_OU} !(^organizationBunit1$|^organizationBunit2$) RewriteRule .* - [L] RewriteCond %{ENV:SSL_CLIENT_O} "^organization.*" [NC] RewriteCond %{ENV:SSL_CLIENT_T} .*Manager.* RewriteRule .* - [L] RewriteRule .* - [F]
■地域による認証条件の設定
例
以下のいずれかの条件に一致するクライアント証明書のアクセスを許可する場合
国名「JP」、かつ都道府県「Tokyo」/「Osaka」/「Kyoto」
国名「US」、かつ州「California」/「New York」
LoadModule rewrite_module "C:/Interstage/F3FMihs/modules/mod_rewrite.so" RewriteEngine On RewriteCond %{ENV:SSL_CLIENT_C} ^JP$ RewriteCond %{ENV:SSL_CLIENT_ST} ^Tokyo$|^Osaka$|^Kyoto$ RewriteRule .* - [L,E=REMOTE_USER:JP-user] RewriteCond %{ENV:SSL_CLIENT_C} ^US$ RewriteCond %{ENV:SSL_CLIENT_ST} "^California$|^New York$" RewriteRule .* - [L,E=REMOTE_USER:US-user] RewriteRule .* - [F]
LoadModule rewrite_module "/opt/FJSVihs/modules/mod_rewrite.so" RewriteEngine On RewriteCond %{ENV:SSL_CLIENT_C} ^JP$ RewriteCond %{ENV:SSL_CLIENT_ST} ^Tokyo$|^Osaka$|^Kyoto$ RewriteRule .* - [L,E=REMOTE_USER:JP-user] RewriteCond %{ENV:SSL_CLIENT_C} ^US$ RewriteCond %{ENV:SSL_CLIENT_ST} "^California$|^New York$" RewriteRule .* - [L,E=REMOTE_USER:US-user] RewriteRule .* - [F]