LDAPを用いた認証(クライアント側)

以上の運用でデータを見られることを確認した上で認証を実装する。認証に使うパッケージはlibnss-ldap,libpam-ldapだけのはずなのだが、後述の参考サイトのやり方を真似るとその他もろもろのpamがらみのパッケージを要してしまう。具体的にはlibpam-opie,libpam-cracklibとそれに依存するパッケージである。この他、passwdでパスワード変更しようとすると新しいパスワードをUNIXパスワードとLDAPのパスワードのそれぞれで入力させられる(前者は捨てられる?)問題もあるので、pam.dがらみの問題はもう少し慎重に対策したほうがよさそうだ。この辺はRedHat系だとauthconfigを使うことで一発解決なはずだが…

設定ファイルに関しては

  • LDAPユーザのエントリに関する設定は/etc/libnss-ldap.conf
  • LDAPユーザの認証に関する設定は/etc/pam_ldap.conf

をそれぞれいじる必要があるのだが、実は両者のファイルはほとんど同じものなので共通化出来たりする。ldapにはlibldap2パッケージの中にさらに/etc/ldap/ldap.confというファイルがあって、これもやはり同種の設定をつかさどっていたりする。三つをシンボリックリンクで結びつけて運用することも出来なくない。今回のようなケースでわざわざ三者を分けて使用する必要はあるだろうか…

(追記) SSL絡みで使おうとしたら、三者統一だとうまくいかない…。

(長いけど追記その2) 参考サイトLDAPv3 HOWTO on Debianの方法(pam.dまるごとコピー)だとパスワード変更の際に二度聞かれたり何かと使い勝手が悪かったり、今までと違ったりするので方法の再考。調べたらUUの記事でも使われていたlibpam-unix2がdebianにもあるので、それをインストール。/etc/pam.d/common-*にsufficientでpam_unix2.soを利用するようにすればよいだけだった。

(追記その3) 上の方法だとLDAPユーザの場合、パスワード認証の初回が必ず失敗する。pam_unix.soの変わりにpam_unix2.soを使うだけでよい。これでもpasswdコマンドでパスワード変えようとするとまだ少し具合が悪い。具体的にはLDAPユーザがpasswdで最初のパスワード認証で空のパスワードを入れると、通常アカウントのパスワードの認証に入ってしまう(もちろん通常アカウントにはエントリがないので認証は必ずこけるわけだが)。この辺は再度改良の余地あり。pam.dについても理解が無駄に深まっていく…(実際、無駄ということはないが)

カテゴリー: Linux, OpenLDAP. LDAPを用いた認証(クライアント側) はコメントを受け付けていません。
%d人のブロガーが「いいね」をつけました。