なっく日報

技術やら生活やらのメモ

超雑に理解するLDAP

諸事情により、LDAPを少し触ったので、主に自分向けメモ。

LDAPとは?

こちらの解説が自分的には一番わかりやすかったです。

www.valinux.co.jp

階層構造を持ったデータベースという感じ。

Javajp/co/example/Hoge.javaみたいなディレクトリ構造とか、DNSをイメージするとしっくりくるかもしれません。

LDAPで検索してみる

こちら読んでください!

www.valinux.co.jp

が、それだけだとアレなので、もうちょい自分なりに消化したことを書きます。

以下の用語が何かイメージできれば、実装するときにそんな困らないはず。

自分的に一番説明しやすいので、ldapsearchコマンドのオプションを無理やり、他の概念と対比させてみます。

ldapsearch -x -h 127.0.0.1 -b (dc=example,dc=co,dc=jp) (&(uid=y*)(gid>=600)) -s sub uid

用語 意味 ldapsearch 似ている概念
base 検索の起点となるオブジェクト -b (dc=example,dc=co,dc=jp) find targetdirtargetdir的な。
scope どの階層を対象にするか。 -s sub find . -mindepth 1 -maxdepth 1-mindepthとか-maxdepth的な。
filter 属性を絞り込む (&(uid=y*)(gid>=600)) SQLSELECT * FROM xxx WHERE uid='aaa'のWHERE句
attrs どの属性を返すか uidの部分 SQLSELECT name, age FROM・・・のSELECTでカラムを指定するところ

ちなみに

使ったライブラリは

github.com

でした。