- - PR -
apacheのbasic認証をLDAPで実現
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-01-07 18:33
初めまして。Webサーバを構築中です。basic認証の際に事前に登録した人にだけidとpwを送り、許可するという事を
行いたいと思っています。それらを格納するのをLDAPでと考えております。登録人数は2000人近くいます。 モジュールはwww.muquit.comのmod_auth_ldap(apache2.Xに対応)をDLしました。apacheは2.0.52です。LDAPはopenldap2.1.14です。 httpd.confは以下です。 <IfModule mod_auth_ldap.c> <Directory "/usr/local/apache2/htdocs"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all AuthType Basic LDAP_Server aaa.co.jp LDAP_Port 389 Base_DN "dc=aaa,dc=co,dc=jp" UID_Attr uid Require valid-user AuthName "alright?" </Directory> </Ifmodule> ブラウザで見にいくと、ウィンドウが出ましてidとpwを入力するんですが、一向にウィンドウが消えません。何がいけないのか,煮詰まっています。私と同じようなことをやっている人で、ldifのobjictclassは何を使っているか等を教えていただきたいです。また、実際に上手くいってる人のアドバイスなど何でもいいので教えて頂けたらと思います。よろしくお願い致します。 | ||||
|
投稿日時: 2005-01-08 23:49
私も今一LDAPは理解していませんので間違ってるかもしれませんが
>Base_DN "dc=aaa,dc=co,dc=jp" これが違うような気がします どのようにデータが格納されているかは分かりませんがこの場合 Base_DN "ou=People,dc=aaa,dc=co,dc=jp" などの記述になるかと思います mod_auth_ldapではありませんが先日mod_authz_ldapで試した時の設定などです 参考までにどうぞ LoadModule authz_ldap_module modules/mod_authz_ldap.so <IfModule mod_authz_ldap.c> <Location /test> AuthzLDAPEngine on AuthzLDAPServer localhost AuthzLDAPUserBase ou=Users,dc=k3nw,dc=com AuthzLDAPUserKey uid AuthzLDAPUserScope base AuthType basic AuthName "test" require valid-user </Location> </IfModule> LDIFは以下のような感じです dn: dc=k3nw,dc=com objectClass: dcObject objectClass: orgnization dc: k3nw dn: ou=Users,dc=k3nw,dc=com objectClass: organizationalUnit ou: Users dn: uid=ley,ou=Users,dc=k3nw,dc=com uid: ley cn: ley objectClass: account objectClass: posixAccount objectClass: top objectClass: shadowAccount userPassword: {crypt}xxxxx shadowLastChange: 12686 shadowMax: 99999 shadowWarning: 7 loginShell: /bin/bash uidNumber: 500 gidNumber: 500 homeDirectory: /home/ley ※)Usersはmigrate_passwd.plを使用し作成 [ メッセージ編集済み 編集者: れぇは 編集日時 2005-01-08 23:52 ] | ||||
|
投稿日時: 2005-01-10 19:34
やったことはないですが...
とりあえず、apache のログと、OpenLDAP のデバッグログ(257あたりで取る)を 読んで、どうなってるのかみてみるのがよいと思うです。 objectClass については、LDAPでパスワードの認証をする場合の一般論として いうと、特に何か決まったものを指定する必要はありません。 ふつうは、ユーザIDとして利用する attribute と、パスワードを入れている attribute を持つことができる objectClass であればなんでも構いません。 自分でスキーマを定義してもよいのですがそれは少し面倒なので、 account とか posixAccount とかの、出来合いのものを利用するのが 楽だと思います。 | ||||
|
投稿日時: 2005-01-11 18:14
れぇはさん、ぽんすさん、回答ありがとうございました。
>Base_DN "ou=People,dc=aaa,dc=co,dc=jp" などの記述になるかと思います 修正してやってみましたが変わりませんでした。 LDIFは私もmigrateツールを使って変換しましたので同じです。 apacheのログはチェックしてます。OpenLDAP のデバッグログについてですが、slapd.confにloglevelディレクティブで設定しましたが、どこにそのファイルが置いてあるのでしょうか? 調べたんですが、見つけられませんでした。 ひとつ気になるんですが、httpd.confのディレクティブでLoadModuleとAddModeleを書かないとそのモジュールが有効にならないとオライリーの本に書いてあったんですけど、私はapache2を使ってますので調べたところ、AddModuleは載ってません。apache2ではそれの代替ディレクティブはあるのでしょうか?ご存知の方いましたら、よろしくお願いします。 | ||||
|
投稿日時: 2005-01-11 19:29
なにも設定していなければLOCAL4のファシリティで出力されるので syslog.confとかで設定してあげれば出力出来ます。 slapdの起動オプションでファシリティは変更可です。 もしくは、slapdを-dオプション付きで起動して ログをずらずら眺めるのもありですが。 詳細は man slapd で分かると思います。 | ||||
|
投稿日時: 2005-01-12 12:00
>もしくは、slapdを-dオプション付きで起動して
ログをずらずら眺めるのもありですが。 [root@ns root]# /usr/local/libexec/slapd -d 257 @(#) $OpenLDAP: slapd 2.1.14 (2004年 12月 1日 水曜日 14:29:00 JST) $ root@aaa.co.jp:/usr/local/openldap-2.1.14/servers/slapd daemon_init: listen on ldap:/// daemon_init: 1 listeners to open... ldap_url_parse_ext(ldap:///) daemon: socket() failed errno=97 (Address family not supported by protocol) daemon: bind(6) failed errno=98 (Address already in use) slap_open_listener: failed on ldap:/// slapd stopped. connections_destroy: nothing to destroy. You have new mail in /var/spool/mail/root というエラーが出ます。 >なにも設定していなければLOCAL4のファシリティで出力されるので syslog.confとかで設定してあげれば出力出来ます。 /etc/syslog.confで以下の行を追加したんですが,これでいいのでしょうか? local4.info /var/log/ldap.log(このファイルは新たに作りました) 何かアドバイス等、よろしくお願い致します。 | ||||
|
投稿日時: 2005-01-12 14:37
errno=97は、ipv6使っていないのなら-4オプションかな。 errno=98は、すでに起動しているのにさらに起動させたのでは? で、たとえ-dオプションで起動してもslapd.confにloglevel 0としなければ ファシリティlocal4でsyslogへも出力します。 >これでいいのでしょうか? ってログ出力されていないんですかね? man slapd 見るとpriorityのデフォルトはdebugぽいから infoじゃ出ないかもね。 というか、local4.* /var/log/ldap.log じゃだめなんですかね? そういえば、local0〜local7あたりがあるOSですよね? 無いなら何がデフォルトになるか私は知りませんので。 | ||||
|
投稿日時: 2005-01-12 15:22
[ メッセージ編集済み 編集者: miura 編集日時 2005-01-13 10:13 ] |