WindowsのユーザをLDAPで検索してみる

Active Directoryに登録されているWindowsのユーザを、ldapを用いて検索するには以下のようにする

以下は一行

ldapsearch -x -D 'cn=<ユーザ名>,cn=users,dc=<nLD>,dc=<(n-1)LD>,...,dc=<2LD>,dc=<TLD>' -w <パスワード> -H 'ldap://<ドメインコントローラ>/' -b 'dc=<nLD>,dc=<(n-1)LD>,...,dc=<2LD>,dc=<TLD>' '(&(objectclass=user)(memberOf=cn=<グループ名>,cn=builtin,dc=<nLD>,dc=<(n-1)LD>,...,dc=<2LD>,dc=<TLD>))'

これだとすべてのユーザが一覧されてしまうので、指定したグループに属するユーザだけを検索してみる

ビルトイングループの場合はこれでいいが、後から作成したグループの場合だと cn=builtinは不要

以下は一行

ldapsearch -x -D 'cn=<ユーザ名>,cn=users,dc=<nLD>,dc=<(n-1)LD>,...,dc=<2LD>,dc=<TLD>' -w <パスワード> -H 'ldap://<ドメインコントローラ>/' -b 'dc=<nLD>,dc=<(n-1)LD>,...,dc=<2LD>,dc=<TLD>' '(&(objectclass=user)(memberOf=cn=<グループ名>,dc=<nLD>,dc=<(n-1)LD>,...,dc=<2LD>,dc=<TLD>))'

さて、ouを追加し、そこにグループを作成した場合はこんな感じになる

以下は一行

ldapsearch -x -D 'cn=<ユーザ名>,cn=users,dc=<nLD>,dc=<(n-1)LD>,...,dc=<2LD>,dc=<TLD>' -w <パスワード> -H 'ldap://<ドメインコントローラ>/' -b 'dc=<nLD>,dc=<(n-1)LD>,...,dc=<2LD>,dc=<TLD>' '(&(objectclass=user)(memberOf=cn=<グループ名>,ou=<組織名>,dc=<nLD>,dc=<(n-1)LD>,...,dc=<2LD>,dc=<TLD>))'

つまり、ユーザはどの階層にあってもいいが、グループは正しい階層を指定しないと検索できないようである

フィルタ条件で memberof属性を絞り込んでいる部分が、たとえばmemberof=*cn=<グループ名>*のように記述できれば、グループを作った階層とは無関係にできるのだが、どうしてもエラーになってしまう

関連する投稿

返信の投稿

 

 

 

これらのHTMLタグが使えます。

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">