超雑に理解するLDAP
諸事情により、LDAPを少し触ったので、主に自分向けメモ。
LDAPとは?
こちらの解説が自分的には一番わかりやすかったです。
階層構造を持ったデータベースという感じ。
Javaのjp/co/example/Hoge.java
みたいなディレクトリ構造とか、DNSをイメージするとしっくりくるかもしれません。
LDAPで検索してみる
こちら読んでください!
が、それだけだとアレなので、もうちょい自分なりに消化したことを書きます。
以下の用語が何かイメージできれば、実装するときにそんな困らないはず。
自分的に一番説明しやすいので、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 targetdir のtargetdir 的な。 |
scope | どの階層を対象にするか。 | -s sub |
find . -mindepth 1 -maxdepth 1 の-mindepth とか-maxdepth 的な。 |
filter | 属性を絞り込む | (&(uid=y*)(gid>=600)) |
SQLのSELECT * FROM xxx WHERE uid='aaa' のWHERE句 |
attrs | どの属性を返すか | uid の部分 |
SQLのSELECT name, age FROM・・・ のSELECTでカラムを指定するところ |
ちなみに
使ったライブラリは
でした。