• 締切済み

ApacheのBasic認証のログの取り方

質問させて頂きます。 現在ホームページを作成しているのですが、 ホームページ内のあるページにアクセスする際にBasic認証をかけ、 こちらが発行するIDとパスワードを持っている人しかページを表示できないようにしたいと考えています。 そして、認証したときは時刻、ID、リモートアドレス等の情報のログを取りたいのですが、ログを取るには何が必要でしょうか? スクリプトとか必要なのでしょうか? はじめてBasic認証をやるので何もわからない状態です。 よろしくお願いします。

みんなの回答

  • notnot
  • ベストアンサー率47% (4845/10255)
回答No.3

>私の管理しているページの認証についてだけ、別のファイルにログをとることはできないでしょうか? >指定した場所に他のログとは別にして自分のページが置いてあるディレクトリの.htaccessが認証したログのみ 検索もいいですが、マニュアルをまず読みましょう。 http://httpd.apache.org/docs/2.2/ja/ の「ログファイル」の部分。 ユーザがfooの場合というのを、下記で出来るかと思ったのですが、 SetEnvIf Remote_User "^foo$" mylog CustomLog logs/my_auth_log combined env=mylog 駄目でした。Remote_Userというのを認識してくれないみたい。(Apache2.2) URLで範囲を絞ってと言うことでいいなら、これで出来ます。 SetEnvIf Request_URI "^/mydir/" mylog CustomLog logs/my_auth_log combined env=mylog

  • notnot
  • ベストアンサー率47% (4845/10255)
回答No.2

認証要求が出る元になったアクセスは、401 という応答をブラウザに返し、401というコードでaccess_logに載ります。 例: 10.1.1.1 - - [19/Feb/2010:12:34:00 +0900] "GET /text.txt HTTP/1.1" 401 1111 "-" "ブラウザ情報" この401という応答ステータスを受け取ったブラウザは、認証ダイアログを出します。 認証後のアクセスが普通にaccess_logに出ますが、そこにユーザ名が載ります(標準的な設定の場合)。 例: 10.1.1.1 - hashi2246 [19/Feb/2010:12:34:56 +0900] "GET /text.txt HTTP/1.1" 200 1111 "-" "ブラウザ情報" したがって、何時認証されたかを知りたければ、401の次の、同じリクエスト内容で、ユーザ名が載ったログの時刻を見ればいいです。 実際にやってみて、access_log を見るのがわかりやすいです。

hashi2246
質問者

補足

回答ありがとうございます。 acccess.logを見てみました。 そこで追加質問なのですが、私の管理しているページの 認証についてだけ、別のファイルにログをとることは できないでしょうか? 指定した場所に他のログとは別にして自分のページが置いてある ディレクトリの.htaccessが認証したログのみ 記録したものが作成したいのです。 可能でしょうか?

回答No.1

私も Apache は使ったことがないので何もわけわからない状態です。 なので Google で検索してみました。 http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=apache+basic%E8%AA%8D%E8%A8%BC+%E3%83%AD%E3%82%B0&num=50 上から 3件目ぐらいに試してみる価値がありそうな記事がありました。 http://q.hatena.ne.jp/1243208794 10分もかからず辿り着きましたので、質問者さんは既にお試し済みで、これでは実現できなかったというのならごめんなさい。 調べてなかったのなら調べてみる癖をつけてないと、この先やっていけなくなりますよ。

hashi2246
質問者

補足

回答ありがとうございました。 自分なりに検索してみたのですが、紹介して頂いたページは 見ていませんでした。ありがとうございます。 customlogを利用すれば何とかできそうな感じがしますが、 初心者のため、customlogなどの設定をどこに書き込めば良いのか わかりません。 可能であればログファイルの記録場所も指定したいのですが、 良い方法はあるでしょうか?

関連するQ&A

  • Apache 認証について

    現在ホームページビルダー10でHP作成をしています。 そこでこのHPにパスワードをつけようと思っています。 Apache認証でパスワードがつけられるとの情報を得たのですが よくわかりません。ホームページビルダーにもApache認証で パスワードがつけれるのでしょうか? またどのようにすればよいのか教えていただけますか? 宜しくお願いします。

  • ApacheのBASIC認証の有効期間

    ApacheのBASIC認証なのですが、私は勉強のために自宅サーバに導入しました。ところで疑問があるのですが、有効期間の扱いはどのようになっているのでしょうか。 つまり、一度BASIC認証のページを閲覧してパスワードを入力してページを見られるようになったとします。すると、もはや二度とパスワードを尋ねられることはないのでしょうか?それとも、何らかのタイミングでリセットがかかり、再度パスワードを求められることがあるのでしょうか? ブラウザのキャッシュクリアを試しましたが効果はなく、Apacheのプロセス再起動でも効果はなく、「○○ユーザは認証済み」という情報をいったいどこで保持しているのかという疑問です。 分からなくて不都合があるというわけではないのですが、知りたいのです。Apache.orgの関連項目を見たりググってみたりしましたが分かりませんでした。よろしくお願いいたします。 OS:FedoraCore3 Apache:2.2.0

  • アパッチのログ

    の構造について教えてください できれば、アパッチの入ってるPCにくる全てのパケット情報を得られるのが一番理想的なように思いますが アクセス時刻 IPアドレス 以外に得られる情報はなんでしょうか

    • ベストアンサー
    • PHP
  • apacheのログの取得について

    質問させて頂きます。 仕事でホームページの管理を行うこととなり、 ページの更新などを行っているのですが、 ホームページ内のある1つのページにアクセスした際の ログが残るようにして欲しいと頼まれました。 私はまるっきりの初心者で、ページの更新方法もやっと覚えた程度 の知識しかないので、どのように設定すればそのページに関するログが 取れるのかわかりません。 すこし調べてみた限りでは、httpd.confの中にLogFormatを設定して、 Customlogでログファイルのパスと設定したLogFormatを利用するように 書き込めばいいらしいのですが・・・。 この方法でホームページ内のある1ページへのアクセスログを取ることは可能でしょうか? 可能であれば、どのように設定すればいいか例を挙げて頂けると助かります。 私の調べた方法では無理な場合は、他の方法を教えて頂けないでしょうか? よろしくお願いします。

  • basic認証を何度も行うには

    いつもお世話になります。 htmlにて入力されたID、パスワードを元に、サーブレットからあるページへアクセスし、そのページではbasic認証となっているのですが、java.net.Authenticatorクラスを使用してbasic認証を行う、という簡単なWebアプリケーションを作成しています。 サーブレットでは以下の実装を行っているのですが(抜粋)、 -------------------------ここから String username = req.getParameter("username"); String password = req.getParameter("password"); Authenticator.setDefault(new HttpAuthenticator(username, password)); URL url = new URL("[basic認証が必要なページのURL]"); HttpURLConnection connection = (HttpURLConnection)url.openConnection(); -------------------------ここまで この実装では、一度認証が成功すると、以降、どのようなID、パスワードを入力しても(間違ったものを入力しても)認証に成功してしまいます。 正しいID、パスワードの時のみ認証に成功させるようにするにはどうすればよいでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • SQL認証 BASIC認証

    SQL認証にするべきか BASIC認証にするべきか、もしくは他の方法があるのか、わからず困っています。 既に出ている似たようなQ&Aは「ビジネス・キャリア」の「インターネットビジネス」と「コンピューター(技術者向け)」の「運用・管理」で【アクセス制御】【アクセス制限】【会員サイト】の検索ですべて読んでみました。 有料会員サイトを作成しています。サイトをなんとか作れるくらいのレベルでパソコンのレベルはほとんど素人です。 ■会員数数百人を予定しており、毎月の会員費を銀行振込みでお支払いしていただきます。 ■会員ごとにIDとパスワードを発行し、会員専用ページにはそのID・パスがないと入れない。 ■パスワードの発行、削除等は管理者がウェブ上で簡単に管理したい。 アクセス制御を設置してくる業者を調べたところ「CGIの匠」http://www.ortecweb.com/ こちらの業者さまから SQL認証 84000円 BASIC認証 5250円 の回答を得ました。 極力安い費用で済ませたいので、BASIC認証や他レンタルサーバーに付いているアクセス制限機能で問題ないようでしたらそうしたいと思っています。 Q1.BASIC認証だと何か不都合はございますか? 値段がここまで違うと不安になってきます。 Q2.BASIC認証でも、会員専用のすべてのページにアクセス制限がかかりますか?一度退会した人がURLから入ってこれることはありませんか? 教えてgooでの似たようなQ&Aの一部です。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1292153 Q3.また、レンタルサーバーで上記条件のアクセス制限ができる業者をご存知でしたら教えてください。 どうぞアドバイスしていただければと思います。 お願いいたします。

  • ホームページ認証設定の方法

    ホームページビルダーを使っています。 あるページにID設定(ユーザー名とパスワードを入れないとアクセス出来ないように)したいのですが。 認証設定の方法教えていただけませんか? プロバイダーは@jcom・・・・です。

  • パスワード認証について。

    フレッツ光プレミアム(西日本)で契約しています。 ホームページ上に様々なデータを載せようと検討しているのですが、 特定の人以外には見られない様にする必要があります。 そこで入り口にパスワード認証を設置したいのですが、 (1) CGIは任意に使用できますか? (2) ベーシック認証は使用できますか? また、その他に第三者の閲覧を制限出来る方法があるのか教えて頂ければ、と思います。 追加情報必要であれば明記ください。宜しくお願いします。 ※JavaスクリプトはURLに直接アクセスされると意味がないので考えておりません。

  • 携帯のbasic認証がうまくいかない

    携帯用にbasic認証を作成しています。 説明サイト等を参考にして作成したのですが、どれだけやっても、認証失敗になってしまい、何度もパスワード請求画面が出てしまいます。 携帯はauで、昨年購入したばかりで古いモデルでもなんでもありません。 以下、ファイル内に記載している内容です。 **htaccess内** <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> AuthUserFile /フルパス/.htpasswd AuthGroupFile /dev/null AuthName "Please enter your ID and password" AuthType Basic require valid-user 仮にadminというファイルをテスト用に作成し、その中に.htaccessファイルと、認証成功後に表示されてほしいテスト用のhtmlファイルを置いています。 htaccessファイルを削除すると、当然ですがhtmlファイルが表示されます。 パスワードは説明サイトで暗号化したものをそのままhtpasswdファイルにコピペをしてアップロードしています。 パスワード請求画面が出るまでは成功しているのに、パスワード認証が失敗する理由がわかりません。 どんな原因があるのか、アドバイスをいただければ幸いです。 よろしくお願いいたします。

  • 特定のページだけBASIC認証が聞かれないよう設定

    本番公開前のサイトで、自宅からのアクセス(IPアドレスによる判別)はBASIC認証が聞かれないよう、サーバ上に以下の.htaccessを作成しています。 ※一部、お見せできない箇所を●●●に置き換えています。 /home/●●●/html/.htaccess ========= AuthUserFile /home/●●●/html/.htpasswd AuthGroupFile /dev/null AuthName "Please enter your ID and password" AuthType Basic require valid-user SetEnvIf Request_URI "(●●●|●●●|●●●|●●●|●●●)" api #SetEnvIf Request_URI "●●●" ●●● order deny,allow allow from ●●●.●●●.●●●.●● allow from env=api deny from all Satisfy any ========= 上記により、 /home/●●●/html/ 以下に外からアクセスした際にBASIC認証が聞かれるようになりました。 次に、特定のディレクトリにだけ外からでもBASIC認証が聞かれないよう設定をするため、該当のディレクトリに、以下の.htaccessを設置致しました。 /home/●●●/html/●●●/.htaccess ========= #Release Satisfy any Order allow,deny Allow from All ========= ここまでは順調に設定が進みました。 特定のページだけBASIC認証が聞かれないように設定したページに、 ブラウザから直接アクセスした際ももちろんBASIC認証が聞かれず、 またそのページをiframeで埋め込んだページにアクセスした際もBASIC認証は聞かれません。 しかし、特定のサイトだけBASIC認証が聞かれないよう設定したページをiframeで埋め込んだページに対して、 HTTPSでアクセスした際にBASIC認証が聞かれてしまいます。 HTTPの際はBASIC認証が聞かれないのですが、HTTPSの際はBASIC認証が聞かれてしまう、 という現象を解決したいと思っております。 原因や解決策などお分かりいただける方いらっしゃいましたら、ご教授いただけますと幸いです。 よろしくお願い致します。

専門家に質問してみよう