Home > パスワード制限 > Password Manager
|
特長
- アクセス制限に係る .htaccess によるID&パスワードの「管理」を行うためのプログラムです。
- サンプルは以下にあります(ID=geust パスワード=guest)。
- PASSWORD MANAGERの機能的な特長は以下のとおりです。
- BASIC認証(.htaccessによるパスワード制限)を行うための管理プログラムです。
- ID&パスワードの発行、修正、削除をウェブ上で簡単に行うことができます。さらに各IDごとに名前、E-mail、備考情報も管理します。
- sendmailの利用可能なサーバでは、ユーザによるID&パスワードの自動発行(アトランダムなパスワードを発行・セットして、ユーザへ自動でメール通知)、パスワード修正、登録削除も行うことができるため、24時間自動運用を行うことができます。
- アクセス制限自体は、BASIC認証が前提のため、BASIC認証の利用可能なサーバでないと動作しません。(*1)
- ログ集計機能を持ち、いつ誰がログインしたかのログを閲覧することができます。
- 設定により、ID&パスワードの発行形態を、「ユーザによる発行&メンテ」「発行は管理者。ユーザはメンテのみ」「発行&メンテともに管理者のみ」のいずれかを選択することができます。
*1 : BASIC認証(.htaccessによるアクセス制限) の留意事項 (1) 基本的には UNIX系サーバ + Apache環境です。IIS環境 (Windowsサーバ) では動作しません。
ただし、UNIX系サーバ + Apache環境のプロバイダでも対応していないところもありますので、使用可能かどうかを確認する必要があります。(例えば、@niftyでは使用不可)(2) BASIC認証では、.htaccessファイルを置くディレクトリ単位でブロックします(そのディレクトリ内の全ファイルをブロックします)。 一度認証を受けたブラウザは閉じるまでアクセスが可能となります。 (3) iモードなどの携帯端末では、機種により対応できないものがあります。 ( iモードの例 → 参考 ) (4) BASIC認証については、詳しくは以下のページが参考になります。
・ All About Japan
・ .htaccess実践活用術
・ とほほのWWW入門
- このプログラムを利用する上での利用規定です。必ず目を通しておいて下さい。プログラムをダウンロードする場合、「利用規定」に同意したものとみなします。
プログラムの入手
- 以下の書庫ファイルをダウンロードします。
- ダウンロード後、解凍 します。解凍すると以下のファイルが展開されます。
pwmgr.cgi ------------- ID/パスワード発行プログラム admin.cgi ------------- 管理用プログラム init.cgi -------------- 設定ファイル check.cgi ------------- 動作チェックプログラム pwlog.cgi ------------- ログ取得プログラム(SSI用) pwlog_test.cgi -------- pwlog.cgi動作テストプログラム index.html ------------ 受付フォーム画面(サンプル) lib/Jcode.pm ---------- 文字コード変換モジュール [入手元] member/htaccess.txt --- .htaccessファイル(BASIC認証用) private/htpasswd.txt -- .htpasswdファイル(パスワードファイル) private/member.dat ---- 会員ファイル private/pwlog.dat ----- アクセスログファイル tmpl/*.* -------------- テンプレートファイル
プログラムの設定及び設置
- 全体のディレクトリ構成とファイル位置の設置例は以下のとおりです(かっこ内はパーミッションの設定値)。
【ディレクトリ構成例】 ※パターン1が原則です。
[パターン1] ウェブ上からアクセスできないディレクトリを作成できるサーバ/home/USER/ | +-- private / (非公開ディレクトリ:ウェブからアクセスできない領域) | | member.dat [606] | pwlog.dat [606] | .htpasswd [606] | +-- public_html / (公開ディレクトリ:ウェブからアクセスできる領域) | +-- pwmgr / pwmgr.cgi [705] | | admin.cgi [705] | | pwlog.cgi [705] ... SSIによるログ解析を行う場合 | | init.cgi [604] | | check.cgi [705] | | index.html | | | +-- lib / Jcode.pm | | | | | +-- Jcode / *.pm | | | +-- tmpl / *.html | +-- member / (アクセス制限するディレクトリ) .htaccess ........ BASIC認証設定用
[パターン2] ウェブ上からアクセスできないディレクトリを作成できないサーバ/home/USER/ | +-- public_html / (公開ディレクトリ:ウェブからアクセスできる領域) | +-- pwmgr / pwmgr.cgi [705] | | admin.cgi [705] | | pwlog.cgi [705] ... SSIによるログ解析を行う場合 | | init.cgi [604] | | check.cgi [705] | | index.html | | member_dat.cgi [606] → 外部からのアクセス拒否のため拡張子を.cgiに変更 | | pwlog_dat.cgi [606] → 外部からのアクセス拒否のため拡張子を.cgiに変更 | | .htpasswd [606] | | | +-- lib / Jcode.pm | | | | | +-- Jcode / *.pm | | | +-- tmpl / *.html | +-- member / (アクセス制限するディレクトリ) .htaccess ........ BASIC認証設定用
- init.cgi を エディタ で開いて以下の箇所を修正します。
- $cf{password} = '0123';
- 管理用パスワードを指定します。極力複雑な文字列にしましょう。
- $cf{pwd_regist} = 1;
- ID&パスワードの発行形態を選択します。ユーザからの発行&メンテを可能にする場合は「1」を、発行は管理者のみで、ユーザはメンテのみの場合は「2」を、発行&メンテは管理者のみの場合は「3」とします。なお、「3」を選択した場合は、pwmgr,cgiとindex.htmlは不要です。
- $cf{pwdfile} = '/home/USER/private/.htpasswd';
- .htpasswdまでのサーバパスを正確に記述します。
- $cf{memfile} = '/home/USER/private/member.dat';
- member.datまでのサーバパスをフルパスで正確に記述します。
- $cf{axsfile} = '/home/USER/private/pwlog.dat';
- pwlog.datまでのサーバパスをフルパスで正確に記述します。
- $cf{sendmail} = '/usr/lib/sendmail';
- ユーザによる自動発行運用を行う場合は sendmail が必須です。プロバイダから定められたパスを正確に記述します。
- pwmgr.cgi, admin.cgi, check.cgi を エディタ で開いて以下の箇所を修正します。
- #!/usr/local/bin/perl
- (プロバイダで定められたPerlへのパスを指定します)
- htaccess.txt を エディタ で開いて以下の箇所を修正します。
【注意】
ただし、以下の .htaccessファイルの記述方法は一般的なものですので、必ずしもすべてのサーバで通用するとは限りません。
不明な部分はプロバイダの設置手順ページ等を確認するようにしましょう。
AuthUserFile /フルパス/.htpasswd → $cf{pwdfile} で指定したサーバパスを記述 (*1) AuthGroupFile /dev/null AuthName "MEMBER SITE" → 認証ダイアログに表示される文字列を指定 (*2) AuthType Basic <Limit POST GET> require valid-user </Limit>
*1 : 必ずスラッシュ ( / ) から始まるフルパスで指定すること。
*2 : 日本語を使用すると文字化けする可能がありますので、英数字のみを使うようしてください。 - 以上、修正が完了したら各ファイルを所定のディレクトリへFTP転送し、以下のとおり アクセス権 (パーミッション) を設定します。
ファイル名 パーミッション 転送モード 備考 一般サーバ suEXECサーバ
CGIWrapサーバpwmgr.cgi
admin.cgi
pwlog.cgi
check.cgi755 or 705 701 or 700 アスキー member.dat
pwlog.dat666 or 606 600 アスキー htaccess.txt - - アスキー 転送後 .htaccess にリネーム htpasswd.txt - - アスキー 転送後 .htpasswd にリネーム lib/Jcode.pm
lib/Jcode/*.pm
tmpl/*.html- - アスキー Tips:ファイル転送の仕方は以下のページを参考にしてください。
FTP : Windows編 FTP : Macintosh編 - 以上、作業が完了したら「チェックモード」で動作チェックを行ないましょう。「check.cgi」に直接アクセスすることで、簡易的なチェックを行うことができます。なお、動作チェック後はcheck.cgiはファイル削除しておきます。
補足事項
- 管理機能(管理者によるID発行・メンテ及びログ閲覧)は、「admin.cgi」にアクセスします。
- SSIの利用可能なプロバイダでは、ログ集計機能が可能です。
【利用条件】
(1) SSIの利用できるサーバであること
(2) 環境変数 $ENV{'REMOTE_USER'} にてユーザーIDが取得できること
【使い方】
・ログイン後のHTMLページに、以下のSSIタグを記述してください。
<!--#exec cgi="/パス/pwlog.cgi"-->
《注:重要》
1. SSIを有効とするHTMLページは、その拡張子を .shtml とする規定があるプロバイダが多いのでご注意ください。
(CGIファイルにSSIタグを埋め込むことはできません)
2. (2)の要件チェックとして、同梱の pwlog_test.cgi にて最初に動作チェックしてみてください。SSIタグ部分にユーザーIDが表示されればOKです。
<!--#exec cgi="/パス/pwlog_test.cgi"-->