• 締切済み

LINUX+APACHEでの基本認証の設定の仕方

LINUX+APACHE+CGIで開発をしております。 今回のシステムでは、基本認証にてログインを行ない、 環境変数からユーザIDを取得してDBからユーザ情報を 取得する方法を取っております。 上記環境で基本認証を実現しようと、いろいろ調べて 設定してみたのですが、どれも上手く出来ませんでした。 そこで質問なのですが、上記環境で基本認証を実現するに は、どのような設定をする必要があるのでしょうか? また、基本認証で入力されたユーザID等は環境変数の どれに格納されるのでしょうか? 初歩的な質問で申し訳ありませんが、宜しくお願い致します。

みんなの回答

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.1

 環境変数[REMOTE_USER]が有効になるのはOSの認証機能を利用した場合ですが、DB(.htpasswdのことではないと思うのですが)のユーザ情報を使っている場合はそのような設定になっていないということでしょう。  この場合には下記のmod-auth-scriptを使うなどして、apacheとは別のプログラム上で認証機能を実行させる必要があります。 http://www.dadd9.com/tech/mod_rewrite.html

参考URL:
http://mod-auth-script.sourceforge.net/index.ja.html
narita_narita
質問者

お礼

ご回答ありがとうございます。 昨日、社内のLINUXに精通した人に基本認証の設定を してもらい、環境変数[REMOTE_USER]にてユーザIDを取得 することができました。 ありがとうございました。

関連するQ&A

  • apacheをWindows認証にしたい

    Windows Active Directory環境にまだドメイン参加していないLinuxのマシンが一台あります。そのLinuxでapacheが動いています。 そのapacheの特定のフォルダを(現在はBasic認証を使用中)ADのユーザー認証を同じように したいのです。 つまりAさんとBさんというユーザーがいてaaa.comというドメイン環境にログインしている中 現在はAさんには見せたいけどBさんには見せたくないフォルダがあるとします。 それをBasic認証でAさんにID/PASSを発行してセキュリティを保っています。 しかしユーザー数が増えたのでできればAさんだったらAAA/passwardというID/PASSを使い apacheにも認証を掛けたいのです。 これは可能でしょうか?可能であれば一番シンプルなやり方を教えていただけませんか? お願いします。 Linuxの環境はRedHat or Debian , apache2 , を使っています。 よろしくお願いいたします。

  • 基本認証でどのようにユーザーを判別すればいいのでしょうか?

    基本認証でユーザーを判別したいと思っていますが方法が分かりません。 例えば@niftyなどは会員サイトのログインを基本認証で行っています。その際 oshiete というIDでメールボックスにログインした際 oshiete に届いたメールが表示されます。又 goo というIDでログインした際は goo のメールが表示されます。これはいったいどのような仕組みになっているのでしょうか? 私の乏しい知識で考えてきたところ環境変数に格納してあるIDを取得し、ただそのIDのログを読み込んでいるだけと考えました。もしこの場合環境変数を自由自在に変換することができるブラウザを使用して goo というIDでログインしたのにもかかわらず環境変数のIDを oshiete に変換すれば oshiete のメールを操作できてしまうのではないでしょうか?こうなるとセキュリティ面で心配ですがこのような事は可能なのでしょうか? どうぞよろしくお願いいたします。

    • ベストアンサー
    • CGI
  • apacheで SetEnvを設定してもCGIに設定されていない

    apache1.3.33を使っています。CGIに環境変数を渡したくて httpd.confに <VirtualHost 192.168.0.1:80> # 他の設定は省略 SetEnv MYPATH /foo/bar </VirtualHost> のように設定しています。 環境変数の確認のために、apache付属の printenv をprintenv.cgiに リネームして、virtualhostで指定しているディレクトリに配置しました。 これを呼び出すと、環境変数 MYPATH は設定されていません。 apacheで環境変数を設定するには上記の設定だけでは不十分でしょうか? アドバイスなどいただけたら幸いです。

    • 締切済み
    • CGI
  • Apacheでベーシック認証が出来ない

    Apacheでベーシック認証をさせようと色々試しているのですが、ユーザ名、パスーワードを設定したものを入れても認証されません。 httpd.confの設定、ユーザ名・パスワードの設定、などしてみましたけどダメでした。 何か他に原因は考えられるものありますでしょうか?

  • Apache+Tomcat+Cocoonの組み合わせで基本認証を実現するには?

    現在、Apache+Tomcat+Cocoonという組み合わせでXMLファイルをXSLTを使ってHTMLに変換してコンテンツを表示するサイトを作っています。 コンテンツの表示はできるようになったのですが、このサイトにApacheの基本認証と同じような、IDとパスワードでユーザ認証を機能させたいのです。でも、Cocoonを使って動的に出力しているページのディレクトリにユーザ認証を使う方法が分からないでおります。ご経験のある方、お分かりになる方、ご教授お願いできないでしょうか。 よろしくお願いいたします。

    • 締切済み
    • XML
  • apacheの設定

    os linuxで、webserverをたてるんですけど、cgiでexeが実行できるようにしたいんです。 apacheの設定方法で、なにか参考になるサイトとかありませんか?

  • Apacheでのベーシック認証

    Apacheでのwebサーバのベーシック認証を勉強しております。.htaccessにてvar/www/html/jikken/index.html をhttpsでしかアクセスできなくし、ベーシック認証にも成功いたしました。ですがvar/www/html/index.htmlには同じ設定をしてもhttpでアクセスできてしまいます。httpsの場合はきちんとベーシック認証をしてくれるのですがhttpの場合はアクセスできてしまうとともにベーシック認証もしません。 .htaccessの設定は SSLRequireSSL AuthUserFile /etc/httpd/conf/.htpasswd AuthGroupFile /dev/null AuthName "please enter your name" AuthType Basic require user hoge としてあり、httpd.confでは Directory "/var/www/html"> 以下の変更点はAllowOverride Allです。 OSはLinux Fedora Core 4です。 まとめるとhttp://hoge.jp/jikkenはアクセスできなくて(httpsで無ければアクセスできない+ベーシック認証) 同じ設定でhttp://hoge.jpではアクセス出来てしまうということです。(httpsのときは正常に作動する) ご教授よろしくお願いいたします。

  • apacheの設定について

    先日red hat linux8(雑誌の付録)を購入し、apacheを試しているのですが。 http://localhost/やhttpd://localhost/~ユーザー名/にはアクセスできるのですが。 http://localhost/manual/index.htmlやhttpd://localhost/cgi-bin/にアクセスしようとすると「302 found」と出てしまいます。 ちゃんとmanualやcgi-binのフォルダはあるのに... どなたか、教えてください。 apacheのバージョンは2.0.4です。 お願いします。

  • Apache2実行ユーザでLinuxディレクトリへのアクセス制御をするには?

    Apache2・Tomcatを使用したWebアプリケーションよりLinuxOS(CentOS4.4)内の特定のディレクトリのファイル一覧を取得また特定ユーザにのみそのディレクトリ内へのファイルの書込みを許可するというようなアプリケーションを作成中です。またこのアプリケーションのユーザ以外は上記ディレクトリへのアクセス許可を与えないようにしたいと思っています。そこでApache2の実行ユーザと同ユーザによってLinuxOS内の該当ディレクトリにパーミッションを設定すれば実現できるのではと思い自分なりに設定してみたのですがうまくいきません。 クライアントとしてブラウザからApache2に接続したPCはLinux上ではApache2の実行ユーザとして認識されないのでしょうか? Apache2の実行ユーザはhttpd.confのUser nobody Group nobodyとなっているところを任意のユーザに変更しました。 User apa01 Group apa01(ここではapa01とします)Linux内にも同名のユーザ・グループを追加します。 LinuxOSのユーザはapa01(上記)とlxuserの2人がいるとします。 該当ディレクトリのパーミッションは d rwxr-x--- apa01 apa01 該当ディレクトリ名 とします。 これによりapa01と認識されている?と思われるwebアプリケーションのクライアントPCからは該当ディレクトり内のファイルを取得できました。ここでパーミッションをd rwxr-x--- lxuser lxuserと変更します。すると思惑ではWebアプリケーションのクライアントからはファイルの一覧が取得できなくなるはずでしたがしっかり取得してしまいます。ひょっとして・・と思いApache2のhttpd.confのUser Groupを変更してもしっかり取得してしまいます。 なにか考えが根本的に違っているのでしょうか? 長々と書きましたがもっと違う方法があるようでしたら是非ともご教授願えませんでしょうか?よろしくお願いいたします。

  • CGIの掲示板に基本(BASIC)認証をかけたい

     へたれ自宅サーバ管理者です。  CGIのBBS(掲示板)に基本認証でアクセス制限をかけたいのですが、うまくいかず困っています。  もしかして、そもそもCGIのBBSに認証をかけること自体、できないのでしょうか?どなたか、ご存じの方、お助けください。  現在の設定は次の通りです。 ・サーバ Apache ・掲示板 YY-BOAD  ?http://www.kent-web.com/bbs/yybbs.html? ・上記CGIを置いているディレクトリ(/home/test/cgi-bin/yybbs」に「.htaccess」を作成して設置。 ・「.htaccess」の内容  <Limit GET>  AuthUserFile "/home/test/.htpasswd1"  AuthName "Welcome"  AuthType Basic  require user testid  </Limit> ・/home/test/に.htpasswd1を設置。 ・「.htpasswd1」の内容  testid:jkfdshkfjdhsfd  以上