ワークスペース トップページ
WORKSPACEへのお問い合せ フォームでのお問い合わせ メールでのお問い合わせ

株式会社ワークスペース
〒503-0807 岐阜県大垣市今宿6丁目52番地16ドリーム・コア414号室

WORKSPACE

WORKSPACEは岐阜県大垣市のソフトピアジャパンを拠点に、主に上記サービスを、クライアント毎に異なるご要望を伺い、 着実に実績を上げるためのお手伝いをしております。 システム、ネットショップの売上向上、ホームページ製作などのご相談はソフトピアジャパンのWORKSPACE本社で承ります。お気軽にお問い合わせください。

本日は2008年07月05日です

トップページ > アクセス制限とユーザー認証

アクセス制限



※図1 ユーザーのアクセスを制限する「ユーザー認証
この画面が表示されたら「ユーザー名」と「パスワード」を入力しないと次の画面へ進めない

 

これは、「ユーザー認証」や「アクセス制限」と言われるサーバーの設定方法です。
実際に図1の様な認証ダイアログをご覧になりたい、サンプルを見たい方は、こちらをクリックしてアクセスしてみてください。

「ユーザー名」「パスワード」ともに「test」でアクセスできるように設定しています。

パスワードやユーザーIDを知らないユーザーは、このダイアログが表示されても当然、為す術がない訳ですから、「キャンセル」もしくは何かしら不正な「ユーザーID」や「パスワード」を入力する以外ほかありません。そのようなユーザーに対して、サーバーマシンは以下のような警告を表示します。

 


※ 図2 ユーザーが不正な(間違った)ユーザー名やパスワードを入力した場合に表示されるメッセージ

 

この方法を利用すれば、「会員限定」 掲示板や「会員限定」ページを見せるといったサービスを展開できます。また、重要なデータの入ったディレクトリは、この方法でデータへの「アクセスを禁止」にすることもできます。


アクセス制限(ユーザー認証)の方法は?


※ 用意するもの

  1. メモ帳 や Simple Text などのテキストエディタ
    (Rich Textで編集してしまわないため、ワードパッド や Microsoft Word はあまりオススメできません)
  2. Fetch や FFFTP などといった、FTPソフト
    (ホームページ制作ソフトのおまけFTPソフトはおすすめできません)
  3. SSH または Telnet アクセスツール

※ ここで説明する.htaccessファイルが欲しい方は、ここをクリックしてダウンロードしてください。

「ユーザー名」「パスワード」ともに「test」でアクセスできるように設定しています。

  1. まず、テキストエディタ(「メモ帳」や「Simple Text」など)へ以下をコピーペーストします。

  2.  
AuthUserfile /※.passwordファイルを設置するディレクトリをサーバー
のルート(/)から指定※
/.password AuthGroupFile /dev/null AuthName "ByPassword" AuthType Basic <Limit POST GET PUT> require user ※ユーザー名※ </Limit> <Files .htaccess> order deny,allow deny from all </Files>

  • 赤色の箇所を変更します。

    (サーバーの管理者、プロバイダに「現在利用しているサーバー・エリアまでの、サーバー内のパスを教えてください」と、言って確認しましょう。もしくは SSH や Telnet で「pwd」コマンドを使って、「/」からの階層を調査することもできます)

    • .passwordファイルを設置するディレクトリをサーバーのルート(/)から指定

      例) /usr/home/web/mydomain/public_html が現在利用しているサーバーエリアまでのパスの場合

      ===================================================
      AuthUserfile /usr/home/web/mydomain/public_html/.password
      ===================================================

      とします。「public_html」というディレクトリ以下に「.password」ファイルを設置した場合、一般ユーザーでもブラウザからアクセスできてしまう危険性があるので、できることなら、最低でも「public_htmlよりも上の階層」に「.password」を設置すると良いでしょう。

      * 上の場合、http://www.***.jp/.password でパスワードを見ることができるかもしれません。そのためより良い方法で設定するなら

      ===================================================
      AuthUserfile /usr/home/web/mydomain/.password
      ===================================================

      としても良いでしょうね。

    • ユーザー名

      例) ユーザー名に「myname」を指定したい場合、6行目は「require user = myname」とします。

  • AuthUserfile /usr/home/web/mydomain/.password
    AuthGroupFile /dev/null
    AuthName "ByPassword"
    AuthType Basic
    <Limit POST GET PUT>
    require user myname
    </Limit>
    <Files .htaccess>
    order deny,allow
    deny from all
    </Files>

  • このテキストデータはファイル名を「txt.htaccess」というファイル名で適当なフォルダに保存してください。

  •  
  • サーバーマシンへアップロードします。
     

  • 図3 txt.htaccess ファイルをサーバーへアップロードします。

  • サーバー上で txt.htaccess をリネーム(名前変更)します。
     

    図4 txt.htaccess を選択して、右クリック。「名前の変更」を選択します。


    図5 txt.htaccess から .htaccessへ名前を変更して「OK」をクリックします

  • ※.htaccess へリネームすると .htaccess ファイルは非表示になる場合がありますが、サーバー上には残っている値なのでご心配なく。
      変更したら SSH もしくは Telnet でサーバーへアクセス(共に操作方法はほぼ同じです)します。

    SSHアクセスの方法はこちらをご覧ください

    >> まず、先ほど作った「.htaccess」ファイルの1行目にある「.password」ファイルを設置する階層まで、「cd」コマンドを使って移動します。

    # telnet www.xxx.com ← Telnetで www.xxx.com というサーバへ
    アクセスしたという想定。
    Trying www.xxx.com Connected to www.xxx.com Escape character is '^]'. login: ***** ← 正しいログイン名を入力した Paassword: ← パスワードは入力しても画面には何も表示されません Welcome to www.xxx.com. [*****@*****] cd /usr/home/web/mydomain/ ← .passwordファイルを
    設置する階層へ移動
    [*****@*****] pwd ←今いる階層に誤りがないかを確認 /usr/home/web/mydomain

    >> 次に「htpasswd -c .password myname」と入力します。

    ※「htpasswd」はコマンド。それに続く「-c」は「このディレクトリにアクセスできる新しいユーザーを作りますよ」という意味。さらに「.password」は「.password」というファイル名のファイルに作成した「ユーザー名」「パスワード」を記述しますよという意味で、最後の「myname」はアクセスするためのユーザー名をそれぞれ意味します。

    [*****@*****] htpasswd -c .password myname ← htpasswd設定の
    コマンドを入力
    New password: ← 設定するパスワードを入力 Re-type new password: ← 設定するパスワードをもう一度入力

    >> 正しく入力できた場合は、「Adding password for user myname」とメッセージが表示されます。間違っていると「htpasswd: password verification error」と入力されたパスワードが一致しなかったメッセージが表示されます。
    前者のメッセージが表示された場合は、これで設定完了です。後者の場合は、改めて「htpasswd」から入力してください。

    ※このとき、キーボードの キーをクリックすると、先ほど入力した文字を覚えているので再度入力の手間を省くことができます。

    設定完了したら、その成果を早速試してみましょう。
    ブラウザで設定したディレクトリのアドレスを入力してアクセスします。


    表示されたら、先ほど登録した「ユーザー名」と「パスワード」を入力してください。
    正しければ、「ユーザー認証」の設定されたディレクトリへアクセスできますし、間違っていれば


    の画面が表示されます。