ステップ2. IBM i Webサーバー構成を更新する
*ADMINインスタンスを開始して、IBM Web Administration for i5/OSを使用し、サーバーを構成します。
次に、このライブラリのWebサーバーの別名を作成する必要があります。デフォルトでは、LANSA for the Webは別名をAUTHLIBとして割り当てます。別名AUTHLIBがセットアップされた後は、ユーザー認証が必要となるようにLANSA通信ライブラリであるDCXCOMLIBを構成します。つまり、CGI-BINライブラリではユーザー認証は要求しませんが、プロセスで認証が必要な場合は、その要求は確認のため必ずAUTHLIB URLパスに転送されます。
認証用のWebサーバーの別名を作成します。
Web Administration for IBM iを使用して、[サーバー・プロパティ]メニュー・ツリーを展開します。
1. URL マッピングメニュー項目をクリックします。
2. 別名タブの[追加]をクリックします。
3. [スクリプト別名マッチング]を選択します。
4. LANSAWEB CGIプログラムのURLパスを^/authlib/lansaweb(.*)に設定します。
5. ホスト・ディレクトリまたはファイルを/QSYS.LIB/DCXCOMLIB.LIB/LANSAWEB.PGM$1に設定します。
6. スクリプト別名マッチングディレクティブを、ホスト・ファイル/QSYS.LIB/DCXCOMLIB.LIB/LANSAXML.PGM$1のURLパス^/authlib/lansaxml(.*)に設定するまでステップ1 - 5を繰り返します。
7. [ 適用]ボタンをクリックします。
これで、構成に以下の行が追加されました。
ScriptAliasMatch ^/authlib/lansaweb(.*) /QSYS.LIB/DCXCOMLIB.LIB/LANSAWEB.PGM$1
ScriptAliasMatch ^/authlib/lansaxml(.*) /QSYS.LIB/DCXCOMLIB.LIB/LANSAXML.PGM$1
認証のためのロケーション・パスを定義します。
1. コンテナー管理で、サーバー・エリアがGlobal構成であることを確認します。
2. [ロケーション]タブを選択します。
3. /authlib URLパスにロケーション・タイプを追加します。
4. [適用]ボタンをクリックします。
保護範囲を定義してセキュリティを設定します。
1. セキュリティから、サーバー・エリアにロケーション:/authlibがセットされていることを確認
2. セキュリティメニュー項目で、[認証]タブを選択します。
3. 妥当性検証リストで[インターネット・ユーザー]を選択します。
4. 選択した認証名/領域を入力します。
5. [追加]をクリックして、IBM i上の妥当性検証リストのロケーションを指定します。
6. [適用]ボタンをクリックします。
これで、構成に以下の行が追加されました。
<Location /authlib>
PasswdFile QGPL/USERLIST
AuthType Basic
AuthName "My Auth Realm"
Require valid-user
</Location>
(Apacheを備える)IBM HTTPサーバー構成のサンプル
以下は、V5R3以降で実行され、標準認証用に構成されているIBM HTTPサーバー・インスタンスのサンプルです。
このインスタンスはポート80上で実行されます。
CGIライブラリはDCXCOMLIBです。
認証済みのライブラリはDCXCOMLIBです。
使用する妥当性検証リストはQGPLのUSERLISTです。
Web アドミニストレータを使用してLANSA for the Webプロセスがプロセス認証用に構成されたら、以下のIBM HTTPサーバー構成では、ユーザーIDとパスワードの入力を求めるプロンプトが表示されます。QGPLのUSERLIST妥当性検証リストに対する検証を行います。
# LANSA for the Web Apache HTTP Configuration File
Alias /images /LANSAIMG/
ScriptAliasMatch ^/cgi-bin/jsmdirect(.*) /QSYS.LIB/JSMLIB.LIB/JSMDIRECT.PGM$1
ScriptAliasMatch ^/cgi-bin/lansaweb(.*) /QSYS.LIB/DCXCOMLIB.LIB/LANSAWEB.PGM$1
ScriptAliasMatch ^/cgi-bin/lansaxml(.*) /QSYS.LIB/DCXCOMLIB.LIB/LANSAXML.PGM$1
ScriptAliasMatch ^/authlib/lansaweb(.*) /QSYS.LIB/DCXCOMLIB.LIB/LANSAWEB.PGM$1
ScriptAliasMatch ^/authlib/lansaxml(.*) /QSYS.LIB/DCXCOMLIB.LIB/LANSAXML.PGM$1
Listen *:80
DocumentRoot /www/dcxpgmlib/htdocs
# DirectoryIndex /index.html
ServerRoot /www/dcxpgmlib
Options -ExecCGI -FollowSymLinks -SymLinksIfOwnerMatch -Includes -IncludesNoExec -Indexes -MultiViews
DefaultFsCCSID 37
DefaultNetCCSID 819
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%{Cookie}n \"%r\" %t" cookie
LogFormat "%{User-agent}i" agent
LogFormat "%{Referer}i -> %U" referer
LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log combined
SetEnvIf "User-Agent" "Mozilla/2" nokeepalive
SetEnvIf "User-Agent" "JDK/1\.0" force-response-1.0
SetEnvIf "User-Agent" "Java/1\.0" force-response-1.0
SetEnvIf "User-Agent" "RealPlayer 4\.0" force-response-1.0
SetEnvIf "User-Agent" "MSIE 4\.0b2;" nokeepalive
SetEnvIf "User-Agent" "MSIE 4\.0b2;" force-response-1.0
SetEnvIf "User-Agent" ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
ServerUserID DCXPGMLIB
<Directory />
Order Deny,Allow
Deny From all
</Directory>
<Directory /QSYS.LIB/JSMLIB.LIB>
Order Allow,Deny
Allow From all
</Directory>
<Directory /QSYS.LIB/DCXCOMLIB.LIB>
Order Allow,Deny
Allow From all
</Directory>
<Directory /LANSAIMG>
Order Allow,Deny
Allow From all
</Directory>
<Directory /www/dcxpgmlib/htdocs>
Order Allow,Deny
Allow From all
</Directory>
<Location /authlib>
PasswdFile QGPL/USERLIST
AuthType Basic
AuthName "My Auth Realm"
Require valid-user
</Location>
GETメソッドおよびPOSTメソッドを使用可能にする必要があります。
LANSA Webサイトwww.LANSA.com/support上で「Configuration of IBM HTTP Server using CGI」の「Example IBM HTTP Server Configuration」にある「Important Notes for IBM HTTP Server Configuration」を確認してください。