BASIC認証マニュアル
はじめに)
BASIC認証管理プログラムpasswd.exeを利用することにより、BASIC認証にてログインしたユーザの追加情報をXcuteに引き渡すことができます。
BASIC認証を利用することにより、他のシステム(XCute以外)などでログインしたユーザの共通認証や、XCuteの複数のプロジェクト間において共通認証を行うことができます。
本文)
BASIC認証のしくみ
一般的にBASIC認証は、以下のしくみにより成り立っています。
・ブラウザが、WWWサーバに対してリクエストを出す。
・WWWサーバはリクエストを受けたページが認証が必要であることをブラウザに通知。
・ブラウザは、認証ダイアログを表示し、ユーザからのID,パスワードを受け取る。
・受け取ったID、パスワードをふくめて、再度、WWWサーバにリクエストを出す。
・WWWサーバは、引き渡されたID、パスワードが正当であればブラウザに結果を返す。
・以後、ブラウザは該当のページに対するリクエストは全てID,パスワードをセットする。
このように、認証にかかわる作業はすべてブラウザとWWWサーバ間の仕事です。 BASIC認証管理プログラムは、認証用IDとパスワード、Xcuteに引き渡す追加項目の管理を行うためのプログラムです。
BASIC認証管理プログラムの下準備
BASIC認証管理プログラムを利用するにあたって、以下の設定を行ってください。
 
Program files\xcute\proles.ini
---------
PasswdAdminUser=      <---- 初期はadminが設定されているが、それを削除
これにより、http://localhost/procgi/passwd.exe をブラウザから開くことにより、BASIC認証管理プログラムを開くことができます。
これにより、http://localhost/procgi/passwd.exe をブラウザから開くことにより、BASIC認証管理プログラムを開くことができます。
さてここで、管理者用のユーザを登録しましょう。ここでは,「
admin」というユーザを管理者にすることとします。
BASIC認証管理プログラムの利用を管理者に限定するため、以下の設定を行います。 
Program files\xcute\proles.ini
---------
PasswdAdminUser=admin     <---- 管理者ユーザ(admin)を設定
以上で、BASIC認証管理プログラムの初期設定は完了です。
Webサーバの設定
設定は、ディレクトリ単位で認証をかけ、認証をかけたディレクトリのサブディレクトリ(子)のディレクトリに対しても、認証が有効になります。 これを前提として以下、解説します。
・例1 Xcuteで複数のプロジェクトが動作していて、それらの認証を1本化したい。
http://localhost/procgi/procgi.exe?P=project1
http://localhost/procgi/procgi.exe?P=project2
など複数のプロジェクトがあるが、同一のディレクトリのXcuteに対して共通認証を行う場合は、C:\InetPub\procgiに対して、以下の.htaccessファイルをおきます。
(.htaccessファイルの内容は変更する必要はありません。以後、ここで示す.htaccessファイルを利用します。)
.htaccess
-----
AuthType Basic
AuthName        "Xcute system user"
AuthUserFile           
/InetPub/procgi/initial/.htuserdb
<Limit GET POST PUT>    
(上記ファイルが、passwd.exeにて生成されたパスワードDB)
order deny,allow
allow from all
Require valid-user
</Limit>
<LimitExcept GET POST PUT>
order deny,allow
deny from all
</LimitExcept>
これで、設定できました。 ブラウザから http://localhost/procgi/ を入力して、認証が効いているかどうか確認しましょう。
BASIC認証管理プログラムで作成した、「admin」ユーザでログインできるはずです。
さらに利用するユーザを、BASIC認証管理プログラムにて追加し、お試しください。
・例2 Xcuteで複数の公開フォルダを利用している。おのおのに認証をかけたい。
http://localhost/procgi/procgi.exe?P=project1
http://localhost/demo/procgi.exe?P=project2
このように、公開フォルダが別々であるXcuteに、個別に認証をかけるには、
C:\InetPub\procgi\ 直下に、.htaccessファイルをおきます。
つぎに、C:\InetPub\demo\ 直下に以下の.htaccessをおきます。 パスワードDBの参照先を.htaccessを書き換えることにより変更し、おのおののフォルダに対して個別認証が可能になります。
ユーザの追加削除は、それぞれ以下より行います。
http://localhost/procgi/passwd.exe
http://localhost/demo/passwd.exe
.htaccess
-----
AuthType Basic
AuthName        "Xcute system user"
AuthUserFile           
/InetPub/demo/initial/.htuserdb
<Limit GET POST PUT>    
(パスワードDBの位置を変更)
order deny,allow
allow from all
Require valid-user
</Limit>
<LimitExcept GET POST PUT>
order deny,allow
deny from all
</LimitExcept>
ユーザによるパスワードの変更
admin権限がない(proles.ini の PasswdAdminUser で指定されていないユーザ)が、 http://localhost/procgi/passwd.exe を利用した場合、そのユーザのパスワードをユーザ自身が変更できます。
ごくシンプルな画面が表示されていますが、この画面のデザインは変更できます。
\InetPub\procgi\passwd_form.htm が、この入力画面です。
\InetPub\procgi\passwd_comp.htm が、パスワード変更後の確認画面です。
エラー画面のProWebErr.htm と同一のフォーマットですので簡単に変更できます。
ログイン情報の取得
登録したユーザの、ユーザ情報や、現在ログインしているユーザを取得するには、ひな型シートのR1C2セルに以下の記述をします。
USERID=R4C5,1
USERID=セットするセル,要素番号 という形式になっており、要素番号は以下の通りです。
要素番号 取得できる情報
1 ログイン名
2 名前
3 部署名
4 権限
5 メモ
以下は、すべての要素番号を指定した、ひな型の実行結果です。
BASIC認証管理プログラムにおいて、testユーザは以下のように登録されています。
以上
以上