VMware Lightwave に LDAP 検索してみる。(ldapsearch)

VMware Lightwave に LDAP 検索してみる。(ldapsearch)

VMware Lightwave Server は、LDAP サーバとしての機能をもっていて、

Windows の Active Directory ドメインコントローラと同じように LDAP 検索をすることも可能です。


Lightwave には、現状ではまだ登録情報をわかりやすく見る UI が無そうなので、

ためしに、Photon Linux に含まれている ldapsearch コマンドで、LDAP 検索してみました。


Lightwave Server は、Photon Linux にインストールされています。

今回はまだ 1.0 TP1 です。

root [ ~ ]# cat /etc/photon-release

VMware Photon Linux 1.0 TP1

この Photon は、Lightwave ドメインコントローラです。

(参考) こちらもどうぞ

VMware Lightwave の Domain Controller と Client の見分け方。

root [ ~ ]# /opt/vmware/bin/vmafd-cli get-domain-state --server-name localhost

Controller  ★ドメインコントローラ。

root [ ~ ]# /opt/vmware/bin/vmafd-cli get-domain-name --server-name localhost

lightwave.local ★ドメイン名

ldapsearch もインストールされています。

root [ ~ ]# ldapsearch -VV

ldapsearch: @(#) $OpenLDAP: ldapsearch 2.4.40 (Apr 15 2015 23:12:31) $

        @discus-test:/usr/src/photon/BUILD/openldap-2.4.40/clients/tools

        (LDAP library: OpenLDAP 20440)

root [ ~ ]# which ldapsearch

/usr/bin/ldapsearch

root [ ~ ]# rpm -qf /usr/bin/ldapsearch

openldap-2.4.40-1.x86_64

たとえば、下記のように検索すると、

lightwave.local(今回の Lightwave ドメイン名)の LDAP エントリを全件表示できます。

これですべてのエントリが表示できるので、そこからあたりを付けます。


今回の ldapsearch の検索では・・・

  • 「-D」で Lightwave ドメイン管理者ユーザを指定しています。
  • 「-d」 で、検索対象を指定しています。
  • 「-w」 で、パスワードを指定します。※大文字の「-W」にすると、都度入力にすることもできます。

※コマンドラインを簡略化するため、最初に「lightwave.local\Administrator」のパスワードを変数にいれてしまっています。

※全件表示は多いので省略してます。

root [ ~ ]# pw=<Administrator のパスワード>

root [ ~ ]# ldapsearch -D "cn=Administrator,cn=users,dc=lightwave,dc=local" -b "dc=lightwave,dc=local" -w $pw

結果の全件表示からアタリを付けて、ldapsearch の検索内容を変更してみます。

例1: 検索先「-b cn=users,dc=lightwave,dc=local」 にしぼってユーザを探してみます。

ついでに userPrincipalName が lw_user01@lightwave.local のエントリだけ表示しています。

root [ ~ ]# ldapsearch -D 'cn=Administrator,cn=users,dc=lightwave,dc=local' -b 'cn=users,dc=lightwave,dc=local' -w $pw userPrincipalName=lw_user01@lightwave.local

# extended LDIF

#

# LDAPv3

# base <cn=users,dc=lightwave,dc=local> with scope subtree

# filter: userPrincipalName=lw_user01@lightwave.local

# requesting: ALL

#

# user01 lw, users, lightwave.local

dn: CN=user01 lw,cn=users,dc=lightwave,dc=local

nTSecurityDescriptor:: AQAEgBQ~(省略)

givenName: user01

sn: lw

userPrincipalName: lw_user01@lightwave.local

sAMAccountName: lw_user01

cn: user01 lw

objectClass: top

objectClass: person

objectClass: organizationalPerson

objectClass: user

# search result

search: 2

result: 0 Success

# numResponses: 2

# numEntries: 1

例2: Lightwave ドメインに参加しているサーバを探してみる。

検索先を「-b 'ou=Computers,dc=lightwave,dc=local'」 に変更して、

さらにobjectClass が computer のエントリを検索します。

表示する属性情報も、dn cn vmwMachineGUID の3つにしぼってみました。

root [ ~ ]# ldapsearch -D 'cn=Administrator,cn=users,dc=lightwave,dc=local' -b 'ou=Computers,dc=lightwave,dc=local' -w $pw '(objectClass=computer)' dn cn vmwMachineGUID

# extended LDIF

#

# LDAPv3

# base <ou=Computers,dc=lightwave,dc=local> with scope subtree

# filter: (objectClass=computer)

# requesting: dn cn vmwMachineGUID

#

# photon01, Computers, lightwave.local

dn: cn=photon01,ou=Computers,dc=lightwave,dc=local

vmwMachineGUID: 9cfed666-dc7f-49da-88bc-6611c400399e

cn: photon01

# photon02, Computers, lightwave.local

dn: cn=photon02,ou=Computers,dc=lightwave,dc=local

vmwMachineGUID: 701681b6-1a85-4a6f-b7c1-c09aa4466d34

cn: photon02

# photon03, Computers, lightwave.local

dn: cn=photon03,ou=Computers,dc=lightwave,dc=local

vmwMachineGUID: 25662494-ea52-428f-bdea-66ad816b67e4

cn: photon03

# search result

search: 2

result: 0 Success

# numResponses: 4

# numEntries: 3

ldapsearch が使いにくかったら、普通の Linux コマンド grep などを併用してユーザを探したりできます。

下記のような感じで、Lightwave ドメインに作成したユーザが、だいたいわかります。

ちなみに、管理者ユーザや自分で作成したユーザ以外にもビルトインのユーザが存在しているようです。

root [ ~ ]# ldapsearch -D 'cn=Administrator,cn=users,dc=lightwave,dc=local' -b 'cn=users,dc=lightwave,dc=local' -w $pw | grep userPrincipalName

userPrincipalName: gowatana@lightwave.local

userPrincipalName: krbtgt/LIGHTWAVE.LOCAL@LIGHTWAVE.LOCAL

userPrincipalName: K/M@LIGHTWAVE.LOCAL

userPrincipalName: Administrator@LIGHTWAVE.LOCAL

userPrincipalName: lw_user01@lightwave.local

userPrincipalName: lw_user02@lightwave.local

ドメイン参加しているメンバサーバがだいたいわかります。

root [ ~ ]# ldapsearch -D 'cn=Administrator,cn=users,dc=lightwave,dc=local' -b 'ou=Computers,dc=lightwave,dc=local' -w $pw | grep dn

dn: ou=Computers,dc=lightwave,dc=local

dn: cn=photon01,ou=Computers,dc=lightwave,dc=local

dn: cn=photon02,ou=Computers,dc=lightwave,dc=local

dn: cn=photon03,ou=Computers,dc=lightwave,dc=local

この先 Lightwave がどう進化するかわかりませんが、現状の dir-cli コマンドだけだとわからない情報があったりします。

今回はうっかり登録したユーザや参加させたメンバを忘れてしまったため、つい ldapsearch してしまいました・・・

以上、Lightwave で LDAP 検索をしてみる話でした。

Version history
Revision #:
1 of 1
Last update:
‎09-29-2015 04:38 PM
Updated by: