Back to page

− Links

 Print 

Gentoo Linuxな生活​/ApacheのBasic認証をLDAPで :: Nest Of Hawk

xpwiki:Gentoo Linuxな生活/ApacheのBasic認証をLDAPで

Table of contents
  • Webページのユーザ認証もLDAPで
  • Apache自体の設定
    • /etc/conf.d/apache2
    • HP側での認証の設定。

Webページのユーザ認証もLDAPで anchor.png[1]

htdigestを使用してパスワード認証させてみる[2]のページで、既に認証設定はなされておりますが、これまた、認証ユーザ/パスワードは別物。これをLDAPアカウントで認証させてあげれば、LDAPにアカウント登録されている人は、自動的にそのHPにもアクセス権をもつことができます。

Page Top

Apache自体の設定 anchor.png[3]

Page Top

/etc/conf.d/apache2 anchor.png[4]

APACHE2_OPTSに、-D LDAP -D AUTHNZ_LDAPを追記してあげてください。

Page Top

HP側での認証の設定。 anchor.png[5]

Gentooの場合は、/etc/apache2/vhosts.d/default_vhost.includeとか、/etc/apache2/vhosts.d/default_ssl_vhost.includeに、閲覧させるHPの設定が書かれているはず。例えばこんなかんじ?

<Directory /home/var/www/localhost/htdocs/board>
  Options -Indexes FollowSymLinks MultiViews
  AllowOverride All
  SSLRequireSSL   ←SSLしかゆるしません(一つ前の設定が残ってるのね)
  AuthType Digest  ←MD5ダイジェスト認証を要求 
  AuthName "User Only" ポップアップするパスワード入力窓に表示させるメッセージ
  AuthDigestFile /etc/apache2/userpasswd ←パスワードファイルの指定
  require valid-user       ←パスワードファイルに記述されている全てのユーザが参照できる
 <IfModule mod_access.c>
        Order deny,allow
        Allow from all
  </IfModule>
</Directory>

注意です。LDAPを使用する場合は、Digest認証サポートされておりません。Basic認証のみです。なので、ふつーにやってしまうとパスワードがダダ漏れになってしまうので、https側を使用するなどしてほごしてあげましょうね。

で、うえのディレクティブ記載を、以下の用に変更してあげましょう。

<Directory /home/var/www/localhost/htdocs/board>
  Options -Indexes FollowSymLinks MultiViews
  AllowOverride All
  SSLRequireSSL   ←SSLしかゆるしません(一つ前の設定が残ってるのね)
  AuthType Basic  ←Basic認証です
  AuthName "Please input user and password"
  AuthBasicProvider ldap ←Basic認証基盤をLDAP使用します。
  AuthLDAPBindDN "cn=syncuser,dc=example,dc=com"  ←LDAPにバインドするユーザ指定
  AuthLDAPBindPassword secret                                   ←LDAPユーザのパスワード
  AuthLDAPURL "ldap://foo.example.com/ou=People,dc=example,dc=example?uid"
                                                                               ←BaseDNと検索キーの指定
  require valid-user
 <IfModule mod_access.c>
        Order deny,allow
        Allow from all
  </IfModule>
</Directory>

AuthLDAPURLの指定の仕方は、LDAPにおける検索キーなので、ディレクティブの使用方法説明などをじっくり見てやってください。 requireの指定の仕方も、valid-user(LDAPに登録されている全ユーザ)、user XXXX(XXXXさんだけ使用を許可する)など出来ますので、試行錯誤してみてください。

で、再起動します。

# /etc/init.d/apache2 restart


Last-modified: 2011-01-11 (Tue) 01:04:35 (JST) (3614d) by maruo