401 応答コードをブラウザーに送信する必要があります。これにより、ブラウザーはユーザー名とパスワードの入力を求められます。PHP マニュアルから抜粋した PHP の例を次に示します。
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Text to send if user hits Cancel button';
exit;
} else {
echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}
?>
選択した言語で同じことを実行できるはずですが、使用する言語でユーザー名とパスワードの変数がどこに保存されているかを調べる必要があります。
別の方法として、Web サーバーでこれを構成することもできます。そうすれば、Web サーバーが認証を処理し、通常は「REMOTE_USER」環境変数にある現在のユーザー名を取得するようにアプリケーションをプログラムするだけで済みます。Apache では、次のように特定のフォルダーへのアクセスを制限できます。
<Directory /usr/local/apache/htdocs/secret>
AuthType Basic
AuthName "Restricted Files"
# (Following line optional)
AuthBasicProvider file
AuthUserFile /usr/local/apache/passwd/passwords
Require user rbowen
</Directory>
詳細については、認証とアクセス制御に関する Apache のドキュメントを参照してください。別の Web サーバーを使用している場合でも、これは Web サーバーの一般的な機能ですのでご安心ください。使用しているどの Web サーバーでも同等の機能を見つけることができると確信しています。