<html>
<head>
<title>EgaP Site</title>
<style TYPE="text/css">
<!--
A:link { text-decoration:none; font-weight:bold; color:#D1D2D3 }
A:visited { text-decoration:none; font-weight:bold; color:#D1D2D3 }
A:active { text-decoration:none; font-weight:bold; color:#00FF00 }
A:hover { font-weight:bold; color:#00FF00 }
-->
</style>
<META name="keywords" content="フリーウェア,フリーソフト,江川崇,えがぴ〜,CGI,HI-HO">
<META name="description" content="えがぴ〜が制作したフリーウェアの公開、サポートを中心としたサイトです。"> 
</HEAD>
<BODY BGBGCOLOR="#000000"BGPROPERTIES=fixed BACKGROUND="n_image/back001.gif"TEXT="#D1D2D3"LINK="00FF00" VLINK="00FF00" ALINK="00FF00">

<TABLE ALIGN="center" WIDTH=590>
<TR>
<TD COLSPAN=0 ROWSPAN=2 BGCOLOR="#D2FFDE"></TD>
<TD>
<TABLE ALIGN="center" BORDER=1 CELLSPACING=1 CELLPADDING=1 WIDTH=400>
	<TR><P>
	<TD ALIGN="CENTER">
	<HR SIZE=7 WIDTH=90%>
	<FONT SIZE=4 COLOR="#D9FCFF"><B>.htaccessを用いたアクセス認証（HI-HO対象）</B></FONT><BR>
	<HR SIZE=7 WIDTH=90%>
	</TD>
	</TR></TABLE>
<P><CENTER>

<TABLE ALIGN="center" BORDER=1 CELLSPACING=1 CELLPADDING=1 WIDTH=540 BGCOLOR="#2E0F6C" BORDERCOLOR="#9F98FE">
<TR>
<TD><BR><BR><BLOCKQUOTE>
<FONT COLOR="#D2FFDE">■</FONT>
ネットサーフィン中にこのような画面を見たことはありませんか？？<BR><BR>
<IMG SRC="n_image/dialog.gif" WIDTH="454" HEIGHT="202">
<A name="00"><BR>ここでアクセス認証をかけることで、ユーザ名とパスワードをあらかじめ与えられている者だけしか観ることの出来ないページが作成可能です。ユーザ名とパスワードを与えられていない人間が訪れたとしても、この先のページを観る事が出来ません。ここでは、以上のようなアクセス認証をHI-HOで使用する為のノウハウと予備知識をお伝えしたいと思います。少なくともあなたがHI-HOユーザであるならば、上から順番に読んでいくことでアクセス制限をかけたページを作成することができます。<BR><BR>
<BR><BR>
<FONT COLOR="#D2FFDE">■</FONT>
 <A HREF="#01"><U>アクセス認証のしくみ</U></A><BR><BR>
<FONT COLOR="#D2FFDE">■</FONT>
<A HREF="#02"> <U>必要なもの</U></A><BR><BR>
<FONT COLOR="#D2FFDE">■</FONT>
 <A HREF="#03"><U>.htaccessを作成しよう</U></A><BR><BR>
<FONT COLOR="#D2FFDE">■</FONT>
 <A HREF="#04"><U>パスワードファイルを作成しよう</U></A><BR><BR>
<FONT COLOR="#D2FFDE">■</FONT>
 <A HREF="#05"><U>ちょっと高度な使い方</U></A><BR><BR>

</BLOCKQUOTE></TD>
</TR>
</TABLE>
<BR><BR><HR SIZE=10 WIDTH=90% ALIGN="center"><BR><BR>
<a name="01">
<TABLE ALIGN="center" BORDER=1 CELLSPACING=1 CELLPADDING=1 WIDTH=530 BGCOLOR="#2E0F6C" BORDERCOLOR="#9F98FE">
<TR>
<TD><BR><BLOCKQUOTE>
<FONT COLOR="#D2FFDE">■</FONT> アクセス認証のしくみ<BR><BR>
※ はっきり言って蛇足なので興味のない方は飛ばし読みしてくれて結構です。<BR><BR>
実は、アクセス認証はCGIではありません。全く別の仕組みで動いています。FreeBSDやLinux等のUNIX系のOSと、NCSAやApache等の代表的なhttpdサーバウェアの基本的な機能を利用して実現させているものです。ディレクティブと呼ばれる文字列を組み合わせて<FONT COLOR="#B0FDB6"><B>.htaccess</B></FONT>という名のテキストファイルにアクセスを制限する旨を記述し、制限をかけたいHTMLファイル等があるディレクトリに入れておきます。またそれとは別に、OSのencrypt passwords機能を使って暗号化したパスワードを記述したファイルや、また必要であれば、ユーザIDを記述したグループファイルを作成して<FONT COLOR="#B0FDB6"><B>.htaccess</B></FONT>で指定してあるパスに置きます。そうすると、<FONT COLOR="#B0FDB6"><B>.htaccess</B></FONT>が置かれているディレクトリにアクセスの制限がかかり、登録してあるパスワードとユーザIDを入力しない限りそのディレクトリにアクセスすることが出来なくなります。<BR><BR>・・・ってマジでわかりにくいですね（＾＾；どうでもいいです。忘れてもOKです。私も大して解ってません（爆）自動車の仕組みを知らなくても運転が出来るように、仕組みを知らなくてもアクセス制限は出来ます。すっぱり忘れて次を読んで下さい（笑）<BR><BR>
<DIV ALIGN="right"><A HREF="#00"><U>上に戻る</U></A></DIV><BR>
</BLOCKQUOTE></TD>
</TR>
</TABLE>
<a name="02">
<TABLE ALIGN="center" BORDER=1 CELLSPACING=1 CELLPADDING=1 WIDTH=530 BGCOLOR="#2E0F6C" BORDERCOLOR="#9F98FE">
<TR>
<TD><BR><BLOCKQUOTE>
<FONT COLOR="#D2FFDE">■</FONT> 必要なもの<BR><BR>
アクセス認証に最低限必要なものは<FONT COLOR="#B0FDB6"><B>.htaccess</B></FONT>と<FONT COLOR="#B0FDB6"><B>.htpasswd</B></FONT>と言うテキストファイル２つです。<BR><BR>
<BR><BR>
<DIV ALIGN="right"><A HREF="#00"><U>上に戻る</U></A></DIV><BR>
</BLOCKQUOTE></TD>
</TR>
</TABLE>
<a name="03">
<TABLE ALIGN="center" BORDER=1 CELLSPACING=1 CELLPADDING=1 WIDTH=530 BGCOLOR="#2E0F6C" BORDERCOLOR="#9F98FE">
<TR>
<TD><BR><BLOCKQUOTE>
<FONT COLOR="#D2FFDE">■</FONT> <FONT COLOR="#B0FDB6"><B>.htaccess</B></FONT>の作り方<BR><BR>
テキストエディタでテキストファイルを新規に作成し以下のように書きます。<BR><BR>
AuthUserFile ~hyde/org/.htpasswd  <FONT COLOR="#B0FDB6"><B>(パス（以下で説明）)</B></FONT><BR>
AuthGroupFile /dev/null<BR>
AuthName Member's only!!  <FONT COLOR="#B0FDB6"><B>（以下で説明）</B></FONT><BR>
AuthType Basic<BR><BR>
&lt;limit POST GET PUT&gt;<BR>
require valid-user<BR>
&lt;/limit&gt;<BR><BR>
<FONT COLOR="#B0FDB6"><B>パス（以下で説明）</B></FONT>の部分には、パスワードファイルを置くディレクトリへのパスを書きます。パスワードファイルなのですが、第３者にWWWから観られないようにホームディレクトリにあたらにディレクトリを作成して、その中に置くことをお奨めします。ホームディレクトリとは、FTPクライアントを使って観ることの出来る一番上のディレクトリのこと（htmlディレクトリやcgi-binディレクトリがあるところのこと）です。ここでの例では、アカウント（メールアドレスの@間での部分のこと）が<FONT COLOR="#B0FDB6"><B>hyde</B></FONT>で、ホームディレクトリに、作成したディレクトリの名前を<FONT COLOR="#B0FDB6"><B>org</B></FONT>とした場合のパスということになります。この部分だけを自分にあうように変更して下さい。あなたのアカウントが<FONT COLOR="#B0FDB6"><B>ken</B></FONT>で、パスワードファイルを入れる為に、ホームディレクトリに<FONT COLOR="#B0FDB6"><B>larc</B></FONT>という名前のディレクトリを作成したとすると、その場合は ~ken/larc/.htpasswd と書いたらいいと言うことになります。<BR>
また、<FONT COLOR="#B0FDB6"><B>AuthName</B></FONT>には、ダイアログに表示させたいメッセージを好きなように書いてくれて構いません。ただし半角英数字のみです、日本語を使ってはいけません。
無事書けたら、当然ファイルに保存するわけなのですが、Windowsでは「.」で始まるファイル名を受け付けないエディタがあります。その場合はいったん適当なファイル名をつけて保存してから、ファイルアイコンを右クリックするなどしてファイル名を<FONT COLOR="#B0FDB6"><B>.htaccess</B></FONT>に変更するようにして下さい。<BR><BR>
<DIV ALIGN="right"><A HREF="#00"><U>上に戻る</U></A></DIV><BR>
</BLOCKQUOTE></TD>
</TR>
</TABLE>
<a name="04">
<TABLE ALIGN="center" BORDER=1 CELLSPACING=1 CELLPADDING=1 WIDTH=530 BGCOLOR="#2E0F6C" BORDERCOLOR="#9F98FE">
<TR>
<TD><BR><BLOCKQUOTE>
<FONT COLOR="#D2FFDE">■</FONT> <FONT COLOR="#B0FDB6"><B>.htpasswd</B></FONT>の作り方<BR><BR>
次はパスワードファイルの作成です。これが悩みどころです。パスワードは暗号化しておかなければならないのですが、その暗号化を行うために必要なツールの使用をHI-HOは禁じています。本来ならばサーバにtelnetでログインし、UNIXのシステムコマンドからパスワードを生成できるのですが、こういった方法がとれません。シェルの利用を許可している他のプロバイダにも加入している方であれば、そちらで一旦パスワードファイルを作成して、HI-HOにアップすると言うことも出来るかもしれませんが、複数もプロバイダに入っていらっしゃる方は少数でしょうし、そもそも他のプロバイダのOSがHI-HOと違えば、そのパスワードをHI-HOで利用することが出来ないこともあります。それならば一体どうすればいいのでしょうか？なんとありがたいことに、同じように暗号化してくれる働きを持つCGIを<A HREF="http://www.rescue.ne.jp/" TARGET=\"_TOP\"><U> ネットサーフレスキュー[Ｗｅｂ裏技] </U></A>さんが公開してくれています。
そのCGIを頂いて<A HREF="http://www.sam.hi-ho.ne.jp/cgi-bin/user/egap/crypt.cgi" TARGET="_TOP"><U> こちら </U></A>に設置してみました。少なくともこのCGIで暗号化すれば、HI-HOのサーバは受け付けてくれます。毎回私のサイトに来るのが面倒だという方は、一度自分でも設置してみて下さい。簡単ですよ。<BR><BR>
さて、説明に戻ります。<BR>アクセスを許可したいユーザIDとパスワードを考えて、さっき述べた<A HREF="http://www.sam.hi-ho.ne.jp/cgi-bin/user/egap/crypt.cgi" TARGET="_TOP"><U> こちら </U></A>に入力して、実行を押して下さい。ただし全角仮名（２バイト文字）は使えませんよ。<BR>
例えば、ユーザIDに「 sample 」 パスワードを「 test 」と入力して実行すると<BR>
<FONT COLOR="#B0FDB6"><B>sample:/TBxzwc5woEpE</B></FONT><BR>
のように、暗号化された文字列が表示されます。ただし、私と同じようにユーザID「 sample 」 パスワード「test 」と入力しても、毎回同じ内容が得られると言うわけではありません。同じパスワードでも暗号化された部分は実行するたびに変わりますが、どれをお使いいただいても結果は同じです、うまくいきます。そして、新規にテキストファイルを作成して、さきほど得られた文字列をそのままコピーして下さい。<BR><BR><FONT COLOR="#B0FDB6"><B>sample:/TBxzwc5woEpE</B></FONT><BR>
※最後に改行を入れる事を忘れずに。<BR><BR>
また、複数のユーザIDにアクセスを許可したい場合は<BR><BR>
<FONT COLOR="#B0FDB6"><B>sample:/TBxzwc5woEpE<BR>
egawa:fie6m7pV0F9ag</B></FONT><BR>
（ユーザID egawa  パスワード takashi  を追加した）<BR><BR>
のように次の行に続けて書けばOKです。このときも最後の行をちゃんと改行するようにして下さい。<BR><BR>
次に、そのファイルを<FONT COLOR="#B0FDB6"><B>.htpasswd</B></FONT>と言う名前で保存します。ファイル名は、実は何でも構わないのですが、違う名前で保存する場合には<FONT COLOR="#B0FDB6"><B>.htaccess</B></FONT>で記述した<FONT COLOR="#B0FDB6"><B>.htpasswd</B></FONT>のパスを変更しておいて下さい。また、「.」で始まるファイル名を受け付けないテキストエディタの場合は、<FONT COLOR="#B0FDB6"><B>.htaccess</B></FONT>の時と同じように、適当なファイル名をつけて一度保存しておいてから、ファイル名を<FONT COLOR="#B0FDB6"><B>.htpasswd</B></FONT>に変更するようにして下さい。<BR>さて、気をつけなければならないことがあるのですが、このファイルを保存する際には、改行コードを必ず<FONT COLOR="#B0FDB6"><B>LF</B></FONT>にして下さい。そうしないとパスワードをちゃんと認識してくれないことがあります。テキストファイルをアップする際には、UNIXの標準にあわせて、改行コードを<FONT COLOR="#B0FDB6"><B>LF</B></FONT>、漢字コードを<FONT COLOR="#B0FDB6"><B>EUC</B></FONT>または<FONT COLOR="#B0FDB6"><B>JIS</B></FONT>に治すのが普通です。私は今まで、普通にメモ帳などのエディタで作成したCGIソースをそのままアップしていましたがCGIはちゃんと動いていました。しかし、この
<FONT COLOR="#B0FDB6"><B>.htpasswd</B></FONT>だけは、改行コードをちゃんと認識してくれませんでした。仕方なく同じファイルの改行コードを<FONT COLOR="#B0FDB6"><B>LF</B></FONT>に治してみたところ、正常に認識してくれるようになりました。<FONT COLOR="#B0FDB6"><B>.htpasswd</B></FONT>は漢字などの２バイト（全角）文字は使用されていないので、漢字コードは問題にはなりませんが、改行コードを<FONT COLOR="#B0FDB6"><B>LF</B></FONT>に治すことを忘れない方がいいでしょう。漢字コード、及び改行コードの変更は、そういった機能を持ったエディタを使用するか、<A HREF="http://www.vector.co.jp/" TARGET="_TOP"><U>Vector</U></A>などのダウンロードサイトで公開されている変換ツールなどを使用することで可能です。<BR>
そして、最後にその<FONT COLOR="#B0FDB6"><B>.htpasswd</B></FONT>を<FONT COLOR="#B0FDB6"><B>.htaccess</B></FONT>であらかじめ記述していた場所に置きます。以上で完了です。<FONT COLOR="#B0FDB6"><B>.htaccess</B></FONT>を置いたディレクトリの中のファイルにアクセスしてみて下さい、このページの上の方にあるようなダイアログが出ます。そして<FONT COLOR="#B0FDB6"><B>.htpasswd</B></FONT>で設定しておいたユーザIDとパスワードを入力することで、初めて入ることの出来るようになっているはずです。お疲れさまでした。<BR><BR>
<DIV ALIGN="right"><A HREF="#00"><U>上に戻る</U></A></DIV><BR>
</BLOCKQUOTE></TD>
</TR>
</TABLE>
<a name="05">
<TABLE ALIGN="center" BORDER=1 CELLSPACING=1 CELLPADDING=1 WIDTH=530 BGCOLOR="#2E0F6C" BORDERCOLOR="#9F98FE">
<TR>
<TD><BR><BLOCKQUOTE>
<FONT COLOR="#D2FFDE">■</FONT> ちょっと高度な使い方<BR><BR>
今までで、アクセス認証を行う方法については説明しました。普通はこれで十分だとは思いますが、もし複数のディレクトリのアクセスを制限し、それぞれに別のID、パスワードで認証を行いたいときはどうすればいいのでしょうか？もちろんそれぞれに<FONT COLOR="#B0FDB6"><B>.htpasswd</B></FONT>を作れば可能です。しかしそれでは管理が面倒ですよね。ちょっと工夫することで、いくらアクセス認証したい数が多くなってもひとつの<FONT COLOR="#B0FDB6"><B>.htpasswd</B></FONT>で管理することが出来るようになります。まず、<FONT COLOR="#B0FDB6"><B>.htaccess</B></FONT>を以下のように変更します。<BR><BR>
AuthUserFile ~hyde/org/.htpasswd<BR>
AuthGroupFile ~hyde/org/.htgroup<BR>
AuthName Member's only!!<BR>
AuthType Basic<BR>
&lt;limit POST GET PUT&gt;<BR>
require group org-user  <FONT COLOR="#B0FDB6"><B>（以下で説明）</B></FONT><BR>
&lt;/limit&gt;<BR><BR>
そして、新たにテキストファイルを作成し<BR><BR>
my-users: sample<BR>
と書いて<FONT COLOR="#B0FDB6"><B>.htgroupという名で保存します。</B></FONT>そしてそのファイルを<FONT COLOR="#B0FDB6"><B>.htaccess</B></FONT>の<FONT COLOR="#B0FDB6"><B>AuthGroupFile</B></FONT>で指定したパスに置きます。この場合はルートディレクトリに置いてあるorgというサブディレクトリの中に入れればOKです。パスの指定の仕方は<A HREF="#03"><U>.htaccessの作り方</U></A>を参考にして下さい。こうしてグループ分けして、そのグループ名を<FONT COLOR="#B0FDB6"><B>.htaccess</B></FONT>の<FONT COLOR="#B0FDB6"><B>require group</B></FONT>で指定しておけば、そのユーザだけの認証を認めるように出来ます。一つのグループに複数のユーザを指定したり、複数のグループを設定したいときは<BR><BR>
org-user: sample aaa<BR>
org-userb: bb ccc<BR>
<BR>のように書きます。
<BR><BR>
<DIV ALIGN="right"><A HREF="#00"><U>上に戻る</U></A></DIV><BR>
</BLOCKQUOTE></TD>
</TR>
</TABLE><BR><BR>
</CENTER>
<A HREF="cgi.html">　<U>CGIのコーナートップに戻る</U></A>
</td></TR></TABLE>
</body></html>

