SEO対策の東京SEOメーカー

Basic認証とは?ベーシック認証の特徴と設定する際に注意すべきことを解説

更新日:
公開日:

Basic認証とは?

WEBサイトの制作中や社内限定ページなど、特定の関係者だけに見せたいコンテンツがある時に最も手軽なのが「Basic認証(ベーシック認証)」です。 しかし、設定方法を誤ると「Googleにインデックスされない」「セキュリティが筒抜けになる」といった重大なリスクを招くこともあります。

本記事では、Basic認証の仕組みから、.htaccessを使った具体的な設定手順、WordPressでの実装方法まで、初心者の方でも迷わず設定できるよう解説します。また、SEO対策を行う上で絶対に避けるべき設定ミスについても触れています。安全かつ正しくアクセス制限をかけたい方は、ぜひ最後までご覧ください。

 

東京SEOメーカー

東京SEOメーカー編集部

東京SEOメーカーのブログでは、SEOとその他webマーケティングを中心に発信しています。社内の独自調査と実績による一次情報をもとに執筆しており、読んでいただいた方が参考になるような有益性の高い情報を執筆しています。

アドマノ株式会社 代表取締役 天野剛志

監修者

アドマノ株式会社 代表取締役 天野剛志国内海外webマーケティングのエキスパート

コンテンツ悩み解消

Basic認証とは?仕組みとメリット・デメリットをわかりやすく解説

Basic(ベーシック)認証とはWEBコンテンツに制限をかける方法の一つです。ユーザー名とパスワードが正しく入力されないと訪問できないWEBコンテンツを作成するために利用されます。例えば、自社サイトの社員用のWEBページへアクセスする際に以下のような画面からログインすることがあります。

basic認証

社員以外の方が閲覧しても意味のないWEBページなどに設定することにより、社員がインターネットを介してどこでも、情報を閲覧できるようにします。

HTTPの認証機能をもつシステムで、手軽に制限をかける認証方法であるため、多くのWEBサーバー上やWEBクライアントが対応しています。しかし、ユーザー名やパスワードが暗号化されていないため、通信時に第三者から除き見られる危険性があります。入力データを一定の計算手順で逆変換できない状態で通信するDigest(ダイジェスト)認証などの認証方式を用いたり、HTTPをSSL/TLSにより暗号化したHTTPS通信が広く普及していたり、他の通信方法と併用して利用されることが多いです。

 

Basic認証の3つの特徴(ディレクトリ制限・有効期限など)

簡単なアクセス制限であり、以下の特徴があります。

  • ディレクトリ単位で制限可能
  • ブラウザを閉じるまで有効
  • 認証情報を記憶

 

ディレクトリ単位で制限可能

制限をかけられる領域はディレクトリ単位です。そのため、設定したディレクトリ内のURLはどの領域もユーザー名やパスワードを求めるダイアログが表示されます。ディレクトリ内であれば、WEBページだけでなく、画像やPDFデータなども対象領域内です。簡単に一括で特定の領域に制限をかけられます。サイト全体にベーシック認証をかけたい場合は、ルートディレクトリに「.htaccess」ファイルを設置します。ルートディレクトリとはコンテンツデータファイルがある一番上の階層の事です。

 

ブラウザを閉じるまで有効

正しいユーザー名とパスワードで認証成功した場合、ブラウザを閉じるまで再認証しなくても閲覧可能です。例えば、認証が設定されたWEBコンテンツで認証成功し、他のWEBコンテンツへ移動したとします。認証設定されたWEBコンテンツへ移行しても、再度認証成功させる必要なく、一度認証成功したWEBコンテンツはブラウザを閉じるまで認証を省略して閲覧できます。

 

認証情報を記憶

WEBコンテンツの閲覧で認証成功した場合、認証成功状態を保持できます。しかし、利用するブラウザに依存する特徴があるため、ブラウザの種類やバージョン、ネットワークの状態によっては、認証状態がリセットされます。

 

Basic認証が利用可能なサーバー環境(Apache・nginx)

設定をするためには条件があり、条件を満たさないと設定できませんが、ほとんどのWEBサーバーで設置できます。社内サーバー上などで、自由に設定可能であれば問題ありませんが、無料のレンタルサーバーなどでは作成できないこともあります。設定する際、htaccessデータやhtpasswdデータを作成する必要があるため、データが作成できないWEBサーバー上では設定できません。

WebサーバーとしてApacheではなくnginxを利用している場合、Basic認証が利用できない場合があります。.haccessを利用したBASIC認証の場合は、WebサーバーがApacheである必要があります。nginxの場合には、.htaccessではなく他の方法でBASIC認証をする必要があります。

 

【重要】Basic認証がSEOやセキュリティに与える影響

簡易的であるがゆえに、注意すべき点がいくつかあります。

  • セキュリティの心配
  • クローラーによるアクセスも制限
  • 複数サーバーに同時設定ができない
  • スマートフォンは認証状態を保持できない

それぞれの内容について詳しく解説します。

 

1.通信の脆弱性とHTTPS(SSL化)の必須性

セキュリティ面において安全な認証設定ではなく、ユーザー名やパスワードを簡単なコードで通信します。Base64という64種類の文字コードを用いて、認証情報を付与した状態で通信をおこなうため、通信途中で第三者からのWEBコンテンツの情報閲覧があった場合は簡単に認証情報の漏洩につながります。

簡易的な認証機能であることを理解し、HTTPSによる暗号化されたWEBコンテンツで設定する必要があります。

 

2.全サイト適用は厳禁!SEO順位への影響

設定された領域内は、Googleなどの検索エンジンのクローラーによるアクセスも制限します。そのため、GoogleやYahoo!などの検索エンジンから認識されず、設定された領域内は検索結果として表示されません。SEOで上位表示させたいWEBコンテンツで設定すると、検索結果として表示されないため、注意する必要があります。

また、多くのSNSやプラットフォームでもクローラーを利用しているため、多くのサービスで表示されない状況が発生します。

 

3.スマートフォンでの利用における注意点

以前はスマートフォンで認証状態を保持できないケースが多く見られましたが、現在は主要なiOS(Safari)やAndroid(Chrome)のブラウザであれば、一度ログインすればブラウザを閉じるまで、あるいはタブを開いている間は認証状態が維持されます。

ただし、アプリ内ブラウザ(LINEやTwitterから開いた場合)では挙動が不安定になることがあるため、ユーザービリティへの配慮は引き続き必要です。

 

Basic認証の主な活用シーン(テストサイト・社内共有など)

簡易的な認証機能であるため、セキュリティとしての役割は不十分です。利用する場合は、活用シーンを選ぶことが重要であるため、以下の用途で利用されることが多いです。

  • 公開直前の確認用のWEBコンテンツ
  • 社内のメンバーのみ共有する場合
  • 簡易的な会員サイト

 

公開直前の確認用のWEBコンテンツ

公開前のWEBコンテンツを関係者と最終確認する場合などの一時的に利用することも可能です。設置方法が簡単であるため、タイムリーなタイミングで設置し、必要がなくなれば簡単にBasic認証の設置を外せます。

公開用のサーバー上にWEBコンテンツをアップロードし、インターネット上で関係者のみで動作確認できます。サイトリニューアルや新しくサイト構築するときにサイト全体にBasic認証をかけたり、特定の下層ページだけBasic認証をかけたりできるので有用です。

 

社内のメンバーのみ共有する場合

社内のメンバーで情報を共有するために活用するWEBページに、Basic認証を設置することにより、インターネットを介してアクセスできます。ローカルエリアで情報を共有するコンテンツを設けることもできますが、社外の端末からアクセスし、情報を共有したいときなどの設置が便利です。

 

簡易的な会員サイト

実験的な会員サイトなどのコンテンツを公開するときに、Basic認証の設置は有効です。本格的な会員サイトを公開する前に、運用時のシミュレーションや会員の予期せぬ動向を把握するために利用すると良いです。

会員サイトを本格始動する際、登録したユーザー名やパスコードをそのまま利用することも可能です。

 

セキュリティ向上のために:HTTPS化との併用が必須

セキュリティの脆弱性をフォローするために、HTTPSで暗号化されたWEBコンテンツと併用する方法があります。HTTPSはSSLという通信データを暗号化する方法で、認証情報を第三者に覗かれて漏洩する危険性を少なくするシステムです。

前述しているとおり、認証画面で入力されたユーザー名やパスワードを64種類の文字コードで通信をおこなうため、解読されやすい簡易的な通信です。SSL対応のHTTPSを利用することにより通信データを暗号化するので、解読されやすい簡易的な通信でおこないません。

設定をおこなう場合、前述した活用方法であるか、HTTPSで暗号化されたWEBコンテンツ内で利用する必要があります。

※警告:HTTPサイトでのBasic認証は推奨されません

現在のWEB標準では、常時SSL(HTTPS)化が当たり前となっています。HTTPサイトでBasic認証を行うと、ユーザー名とパスワードが「平文(読み取れる状態)」に近い形で送信されるため、非常に危険です。必ずHTTPS化された環境で利用してください。

 

Basic認証の正しい設定手順(.htaccess / .htpasswd)

用途やセキュリティ面に配慮して設定することを理解したうえで設定をしてください。設定方法はhtaccessデータとhtpasswdデータを作成することにより簡単に設置できます。

  1. メモ帳でテキストデータを作成
  2. 必要事項を記入する
  3. アップロード

 

1.メモ帳でテキストデータを作成

設定をおこなうディレクトリ直下に、メモ帳などのテキストデータを2つ作成します。

.htaccessデータ

 

2.必要事項を記入

.htaccessデータと.htpasswdデータに必要事項を入力します。

.htaccessデータには以下の内容を記入します。

AuthType Basic
AuthName “[認証名]”
AuthUserFile “.htpasswdファイルの場所”
require valid-user

  • 1行目:AuthTypeで認証方式を指定するため、Basicと記入します。Digest認証を設定する場合はDigestと記入します。
  • 2行目:AuthNameはお好きな名称を半角英数字で指定してください。ログイン時のユーザー名とは異なるため、わかりやすい認証名をつけて問題ありません。3行目:AuthUserFile は.htpasswdが保存されているパスを記入します。例えば、/example.com/httpdocs/test/.htpasswdなどのように/(スラッシュ)を用いて保存場所を指定してください。
  • 4行目: require valid-userと記入し、WEBコンテンツへ訪問するすべての人に認証を求める指定をします。スペルミスが多いため、確実に記入をします。

.htpasswdデータへ必要事項を入力

作成したデータには以下の内容を記入します。

.htpasswd

認証を成功させるユーザー名とパスコードを記入します。パスコードを直接記入した状態では、セキュリティ面で問題があるため、お好きなパスコードを暗号化したコードを記入します。パスコードの暗号化はLUFTTOOLSなどのツールより生成できます。また、パスコードの文字数は32文字まで有効です。

ユーザー名と暗号化されたパスコードを半角コロンで区切って記入します。認証成功させるユーザー名とパスコードの組み合わせを複数個記入できるため、利用する社員数などに応じて、ユーザー名とパスコードを設定してください。

 

3.アップロード・確認

作成したデータがユーザー名やパスコードを設定するディレクトリ直下に配置されていることを確認し、WEBコンテンツを更新すれば設定完了です。実際にWEBページの訪問時に認証を確認するポップアップが出現し、設定したユーザー名とパスコードでログインができれば設定完了です。

.htpasswdの「フルパス」を確認する方法

サーバー内の絶対パス(フルパス)がわからない場合は、<?php echo __FILE__; ?> と記述したPHPファイルをアップロードしてブラウザで実行するか、サーバーの管理画面(エックスサーバーやConoHa WINGなど)の「サイト設定」から確認できます。

 

【トラブル解決】Basic認証が効かない・エラー時のチェックリスト

手順通り設定してもエラーが発生したり、動作しなかったりする場合、以下のことを確認する必要があります。エラー内容を全て解消しなければ、正常に動作しません。

  • 作成したデータの記述ミス
  • 作成したデータのパス指定のミス
  • 半角英数字以外の文字を利用
  • .htpasswdで指定したパスコードの暗号化確認

 

作成したデータの記述ミス

エラーの原因として多い例が.htaccessデータと.htpasswdデータの記述ミスです。大文字小文字が混合しているため、テキストデータを一行一行確認し、記入した内容のスペルや記号の有無などを確認してください。

AuthType Basic
AuthName “[認証名]”
AuthUserFile “.htpasswdファイルの場所”
require valid-user

 

作成したデータのパス指定のミス

.htaccessデータで指定した.htpasswdのパス指定が正しいか確認してください。プログラミングなどでもよくあるミスで、パスを正しく記入指定されていないと、エラーもしくは動作しません。ディレクトリ内のファイル構造を確認して、パスを記入してください。また、URLとは違うため、注意をしてください。下記では、ファイルの場所をsample.comのルートディレクトリ部分にしました。

AuthType Basic
AuthName “[認証名]”
AuthUserFile “/var/www/sample.com/.htpasswd”
require valid-user

 

半角英数字以外の文字を利用

作成したデータに指定のテキストを記入する際、基本的には半角英数字を使います。また、特殊な記号を使うとエラーが発生します。エラーが発生した場合、半角英数字の利用と特殊な記号を使っていないか確認してください。パソコンの設定によっては無意識のうちに半角記入できていないこともあります。

 

.htpasswdで指定したパスコードの暗号化確認

上記3つの内容で解決しない場合、.htpasswdで指定したパスコードが暗号化されていないことにより、認証できないことがあります。再度ツールを使ったパスコードの暗号化をおこなって設定し直してください。

 

WordPressでBasic認証を簡単に実装する2つの方法

wordpressで構築したサイトでBasic認証をかけたい場合も.htaccessファイルと.htpasswdファイルを使えばできます。BASIC認証をかけたいWordPressサイトの「wp-admin」と同じ階層に.htaccessを置いて編集します。

AuthUserfile /ルートディレクトリからのフルパス/.htpasswd
AuthGroupfile /dev/null
AuthName “Please enter your ID and password”
AuthType Basic
require valid-user

WordPressでBasic認証をかける場合、プラグインでも可能です。HTTP Authのプラグインで実装できます。

httpauth

WordPressでプラグインをダウンロードして有効化すればBasic認証が使えます。

 

まとめ

SEOコンサルタントBasic認証は、ディレクトリ単位で素早くアクセス制限をかけられる非常に便利なツールです。 サイトリニューアル時やテストサイトの構築には欠かせませんが、あくまで「簡易的な制限」であることを忘れないでください。

  1. 必ずHTTPS環境で使用すること
  2. SEO対象サイトではルートディレクトリへの設置に注意すること
  3. パスワード管理を徹底すること

以上のポイントを守り、用途に合わせて正しく活用しましょう。もしエラーが出る場合は、本記事の「エラー原因チェックリスト」を見直して、記述ミスがないか確認することをおすすめします。

 

この記事の監修者

SEOコンサルタント

アドマノ株式会社 代表取締役 天野 剛志

日本大学法学部卒業、広告代理店で12年間働いている間、SEOと出会い、SEO草創期からSEO研究を始める。SEOを独学で研究し100以上のサイトで実験と検証を繰り返しました。そのノウハウを元に起業し現在、11期目。営業、SEOコンサル、WEB解析(Googleアナリティクス個人認定資格GAIQ保持)コーディング、サイト制作となんでもこなす。会社としては今まで2000以上のサイトのSEO対策を手掛けてきました。

監修者:アドマノ株式会社 代表取締役 天野剛志
天野 剛志
マーケティングのエキスパート。Googleアナリティクス個人認定資格GAIQ保持。大学では経営法学を専攻。オーストラリア・イタリア・フランス・タイ・カンボジアなど世界各国を旅した後、イギリスで1年半生活し語学力と国際的視野を磨く。日本帰国後は広告代理店で営業を12年経験。SEOは草創期から独学で研究し、100以上のサイトで検証しつつノウハウを蓄積。2012年にSEO専門会社のアドマノを設立。2000社以上のSEO支援実績が大手企業から中小企業まで国内、海外に豊富。SEO書籍7冊刊行。SEOのYouTube動画「東京SEOメーカーAIO戦略室」チャンネル登録者数16000人。SEOのプロフェッショナル。
facebookで共有 Xで共有 LINEで共有

新着記事

人気記事

WEBマーケティング

SEO対策

SEO/LLMO
無料診断
お問合せ 電話