第 3 章 環境設定
3.9 クライアント認証の設定
・ Deny
・ <Directory>
・ Order
・ SetEnvIf
環境変数名 クライアント証明書の項目
SSL_CLIENT_EMAIL メールアドレス
SSL_CLIENT_O 組織名
SSL_CLIENT_OU 組織単位名
SSL_CLIENT_T 肩書
SSL_CLIENT_PHONE 電話番号
SSL_CLIENT_ST 州/都道府県
SSL_CLIENT_L 市町村名
条件パターンには、環境変数の値を判定するための条件を、正規表現で指定します。条件パターンの文字列の 前にエクスクラメーションマーク(!)を付加し、正規表現にマッチしないパターンの条件を指定することもできます。
文字列内に空白を指定する場合は、文字列をダブルクォーテーション(")で囲みます。
ポイント
(5)のRewriteRuleディレクティブの前に、RewriteCondディレクティブを複数設定して、併用する認証許可条件を設 定できます。
5. RewriteRuleディレクティブに[L]フラグを指定して、(4)のRewriteCondディレクティブで設定した認証許可条件に 従ってアクセス許可を設定します。
ポイント
(4)のRewriteCondディレクティブと(5)のRewriteRuleディレクティブの組合せを複数設定して、複数の認証許可条 件を設定できます。
6. RewriteRuleディレクティブに[F]フラグを指定して、上記で設定した認証許可条件に不一致なクライアント証明書を
送信したクライアントのアクセス拒否を設定します。
注意
・ RewriteCondディレクティブに指定する環境変数の詳細については、「付録B 環境変数とサーバ変数」を参照してく
ださい。
・ ServletサービスのアプリケーションのURLに対してクライアント証明書によるアクセス制御を設定する場合は、<Location>
セクションの中に設定してください。
認証条件に応じた設定例を以下に示します。
・ 組織による認証条件の設定
・ 地域による認証条件の設定
■組織による認証条件の設定
例
以下のいずれかの条件に一致するクライアント証明書のアクセスを許可する場合
・ 組織名「organizationA」、かつ組織単位名「organizationAunit1」/「organizationAunit2」
・ 組織名「organizationB」、かつ組織単位名「organizationBunit1」・「organizationBunit2」以外
・ 組織名が「organization」(大文字と小文字の区別なし)で始まる文字列、かつ肩書に「Manager」を含む文字列
LoadModule rewrite_module "C:/Interstage/F3FMahs/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/FJSVahs/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/F3FMahs/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/FJSVahs/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
・ RewriteCond
・ RewriteEngine
・ RewriteRule
・ SSLCertExpand
・ SSLNotifyVers