0%

Programmingプログラミングナレッジ

Posted:2017.01.17

ベーシック認証を使用して簡易ログイン機能を作成する

特定のユーザーや特定のページに閲覧制限をかける時などにログイン機能などが実装されますが、いざ作成するとなると結構ハードルが高いですよね。そんな時にはベーシック認証を使うことで手軽にログイン機能を実装することができます。

 

シンプルな機能のベーシック認証

ベーシック認証はブラウザ上で使用できるIDとパスワードを入力する簡単なログイン機能です。指定したディレクトリ以下や特定のページへのアクセスを制限することができます。ログイン機能のプログラムを作成するわけではなく、ベーシック認証に必要な2つのファイルを用意するだけで実装が可能です。まずはベーシック認証に必要な「.htaccess」と「.htpasswd」と下記2点のファイルを作成します。

 

htaccessファイル(ディレクトリ単位で制限の場合)の作成

最初にhtaccessファイルから見ていきます。このファイルはすでに存在している場合は追記する形になります。htaccessファイルにはベーシック認証に関する設定など記述します。下記はディレクトリ単位で制限をかける場合になり、このhtaccessファイルと同階層に置かれたファイルやディレクトリのアクセスは全て制限がかかります。

 

【.htaccess】

AuthUserFile /www/admin/.htpasswd(.htpasswdファイルまでのフルパスを入力)
AuthGroupFile /dev/null
AuthName "ログイン情報を入力してください" (ベーシック認証名を指定)
AuthType Basic
require valid-user

 

 

htaccessファイル(ファイル単位で制限の場合)の作成

次はファイル単位でアクセスの制限をかける場合の記述です。複数のファイルを指定することも可能です。下記の内容では、www/admin配下にあるlogin.phpとadmin.phpファイルに制限がかかります。複数ファイルの指定にはファイル同士を|で区切ります。上から3行目までの記述は、htaccessファイルとhtpasswdファイル自体に制限をかける記述になります。

 

【.htaccess】

<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
AuthUserFile /www/admin/.htpasswd(.htpasswdファイルまでのフルパスを入力)
AuthGroupFile /dev/null
AuthName "ログイン情報を入力してください" (ベーシック認証名を指定)
AuthType Basic
order deny,allow
<Files ~ (login.php|admin.php)>
require valid-user
</Files>

 

 

htpasswdファイルの作成

htaccessファイルの作成が終わったら、次はhtpasswdファイルを用意していきます。ここにはベーシック認証での入力に必要なIDとパスワードのペアを:で区切り必要なペアを1行づつ記入していきます。ただしこのファイルに記入するパスワードは暗号化しておく必要があります。暗号化の方法については色々なウェブサービスが提供されているのでそちらを利用します。

 

【.htpasswd】

user1:HMJzhDsm2DR/2 (ID:暗号化されたパスワード)
user2:qU1lUMghaBtNc
user3:TvrTTIAZ.bGkI

 

 

作成したファイルを設置しログイン機能を実装

これまでに作成した、htaccessファイルとhtpasswdファイルをサイト内のディレクトリにアップロードします。アップロードする場所は認証をかけるディレクトリになります。htpasswdファイルについてはhtaccessファイル内でファイルパスを設定しているのでそれに合わせるように注意します。

 

これで認証されるディレクトリにアクセスしますとブラウザ上でIDとパスワードの入力を求められるダイアログが表示されるようになります。認証が成功するとページが表示され、失敗すると401エラーが返されます。

 

 

このようにベーシック認証を使うことで手軽にログイン機能をサイト内に実装することが可能になります。ただしセキュリティーなどの観点からあくまで簡易ログイン機能として用いたほうがよさそうです。サイト内にちょっとしたアクセス制限をかけたい時には有効ですね。

 

 

author
この記事を書いた人オガワ シンヤ
FacebookTwitter

DesignSupply.代表 / ディレクター・ウェブデザイナー・フロントエンドエンジニアをやっています。「ウェブとデザインでヒト・モノ・サービスを繋げ新しい価値を生み出す」をコンセプトに日々奮闘中!制作中はチョコレートが欠かせない三十路Webクリエイター。

制作のご依頼やお問い合わせ・パートナー業務提携のご相談はこちら

デザインやウェブ制作についてのご依頼やご相談、その他お問い合わせなどもお気軽にご連絡ください。フットワークの軽さやレスポンスの早さ、また豊富な経験や知識、技術を活かした対応力といったフリーランスクリエイターの強みでクライアント様、パートナー企業様のお力になります。デザインからコーディングやWordPress実装といったウェブサイト構築はもちろん、写真撮影や動画編集、コンテンツ制作からサイト運用サポートまで一括してお任せください。

ホームページ制作のご検討やウェブ運用でお悩みの経営者様や企業のウェブ担当者様をはじめ、個人で店舗を営んでいらっしゃるオーナー様、フリーで活動されているビジネスオーナー様はもちろんのこと、リソース不足でお困りの制作会社様、またクリエイターをお探しの代理店様も大歓迎です。

コンタクトをご希望の方はお手数ですが、下記よりお問い合わせフォームのページへアクセスしていただき、必要事項を入力の上メッセージを送信してください。確認でき次第すぐに折り返しご連絡致します。

こんな記事も読まれています

コメントもお気軽にどうぞ

記事に関するご質問やご意見などありましたら下記のコメントフォームよりお気軽に投稿ください。なおメールアドレスは公開されませんのでご安心ください。また、* が付いている欄は必須項目となります。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。

CAPTCHA


ページトップへ
大阪市天王寺区のホームページ制作デザイン事務所(SOHO)DesignSupply.【デザインサプライ】