Contents
Overview
LDAP ユーティリティを導入します。LDAP ユーティリティは ldapsearch 等の LDAP コマンドツールです。
前提条件
- こちらを参考に基本設定が完了していること。
インストール
ldap-utils は 389-ds-base の依存パッケージであり、LDAP サーバーを導入済みのホストではあらためてのインストールは不要です。
myadmin@ubuntu:~$ sudo apt -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold install ldap-utils
/etc/ldap/ldap.conf
ldap-utils の設定ファイルは /etc/ldap/ldap.conf です。
デフォルト値
デフォルト値は下記の通りです。
myadmin@ubuntu:~$ grep -v -e '^\s*#' -e '^\s*$' /etc/ldap/ldap.conf | expand | tr -s [:space:] | sed 's/^ / /g'
TLS_CACERT /etc/ssl/certs/ca-certificates.crt
TLS_CACERT は LDAPSで接続する際に信頼するルート証明書を指定しており、設定値の /etc/ssl/certs/ca-certificates.crt は信頼するルート証明書の情報が含まれています。このファイルはupdate-ca-certificates で更新可能です。
設定値
ldap.conf の変更が必要なケースはほぼありませんが、TLS_CACERT を特定のルート証明書で指定することも可能です。
TLS_CACERT {{ path }}/ca.crt
下記の設定で証明書検証を無効にすることもできます。never と allow は挙動が異なり、never はサーバー証明書を要求しません。allow はサーバー証明書を要求しますがサーバー証明書の検証に問題があってもセッションを継続します。この設定は一時的なトラブルシューティングでのみ使用すべきです。
TLS_REQCERT [ never | allow ]
その他、LDAP コマンドの実行にあたってのデフォルト値をいくつか定義可能ですが、あまり積極的に設定することではないでしょう。
LDAPコマンドの実行例
LDAP コマンドの実行例をいくつか記載します。大抵のケースでは下記のコマンドで十分だと思います。
ldapsearch
ldapsearch は LDAP の情報を参照します。
myadmin@ubuntu:~$ ldapsearch -H ldaps://ldap.si1230.com -D "cn=Directory Manager" -W -b dc=si1230,dc=com
下記のオプション指定は他の LDAP コマンドでも同じです。
オプション | 説明 |
---|---|
-H | 接続先 URI を指定します。省略すると localhost になりますが、LDAPS 接続の場合は原則として、FQDN で指定します。 |
-D | BIND DN を指定します。ここでは cn=Directory Manager を指定しているため ACI は無視されますが、他の DN を使用する場合は ACI に応じた出力になります。 |
-W | インタラクティブに BIND DN のパスワードを入力します。-w の引数に直接パスワードを入力することもできます。 |
-b | BASE DN を指定します。省略すると Root DSE に設定された BASE DN を使用します。 |
ldapadd
ldapadd は新規に DN を追加します。ここでは LDIF を標準入力として ldapadd に読み込ませていますが、-f オプションで LDIF ファイルの指定も可能です。
myadmin@ubuntu:~$ cat <<"EOF" | ldapadd -H ldap://ldap.si1230.com -D "cn=Directory Manager" -W
dn: cn=test,dc=si1230,dc=com
objectClass: person
cn: test
sn: test
userPassword: password
EOF
ldapmodify
ldapmodify は既存の DN の内容を変更(属性追加・属性変更・属性削除)します。操作内容は LDIF に記載します。
以下は属性追加の例です。
myadmin@ubuntu:~$ cat <<"EOF" | ldapmodify -H ldaps://ldap.si1230.com -D "cn=Directory Manager" -W
dn: cn=test,dc=si1230,dc=com
add: description
description: test
EOF
以下は属性変更の例です。
myadmin@ubuntu:~$ cat <<"EOF" | ldapmodify -H ldaps://ldap.si1230.com -D "cn=Directory Manager" -W
dn: cn=test,dc=si1230,dc=com
replace: description
description: testtest
EOF
以下は属性削除の例です。
myadmin@ubuntu:~$ cat <<"EOF" | ldapmodify -H ldaps://ldap.si1230.com -D "cn=Directory Manager" -W
dn: cn=test,dc=si1230,dc=com
delete: description
description: testtest
EOF
ldapdelete
ldapdelete は既存の DN を削除します。
myadmin@ubuntu:~$ ldapdelete -H ldap://ldap.si1230.com -D "cn=Directory Manager" -W cn=test,dc=si1230,dc=com
参考
ldapsearch はツリー構造として見づらい(というよりツリー構造の表示ではない)為、LDAP の管理用に LDAP ブラウザの導入を推奨します。私は Apache Directory Studio を使用しています。