LDAP (Lightweight Directory Access Protocol の略) は、ディレクトリ サービスにアクセスするための業界標準で広く使われているプロトコル群です。
簡単に言えば、ディレクトリ サービスは読み取りアクセスに最適化された集中型のネットワークベースのデータベースです。
ディレクトリ サービスは、ユーザー、システム、ネットワーク、アプリケーション、およびサービスに関する情報をネットワーク全体で共有することを支援することにより、イントラネットおよびインターネット アプリケーションの開発において重要な役割を果たします。 これにより、さまざまなアプリケーション (またはサービス) が LDAP サーバーに接続してユーザーを検証できるようになります。
動作する LDAP サーバーを設定した後、それに接続するためのライブラリをクライアントにインストールする必要があります。 この記事では、外部の認証ソースに接続するために LDAP クライアントを設定する方法を紹介します。
すでに LDAP サーバー環境がある場合は、LDAP ベースの認証のために LDAP サーバーをセットアップします。
How to Install and Configure LDAP Client in Ubuntu and CentOS
クライアント システムでは、認証メカニズムを LDAP サーバーで正しく機能させるためのいくつかのパッケージが必要とされます。
Ubuntu 16.04 および 18.04 での LDAP クライアントの設定
まず、次のコマンドを実行して必要なパッケージをインストールすることから始めます。
$ sudo apt update && sudo apt install libnss-ldap libpam-ldap ldap-utils nscd
インストール中に、LDAP サーバーの詳細について尋ねられるので、環境に応じて値を提供します。 自動インストールされる ldap-auth-config パッケージは、入力された内容に基づいて、ほとんどの設定を行うことに注意してください。
Next, enter the name of the LDAP search base, you can use the components of their domain names for this purpose as shown in the screenshot.
Also choose the LDAP version to use and click Ok.
Now configure the option to allow you to make password utilities that use pam to behave like you would be changing local passwords and click Yes to continue..
Next, disable login requirement to the LDAP database using the next option.
Also define LDAP account for root and click Ok.
Next, enter the password to use when ldap-auth-config tries to login to the LDAP directory using the LDAP account for root.
The results of the dialog will be stored in the file /etc/ldap.conf.
次に、NSS の LDAP プロファイルを実行によって設定します。
$ sudo auth-client-config -t nss -p lac_ldap
次に、PAM 設定を更新することによって、認証に LDAP を使用するようにシステムを設定します。 メニューから、LDAP および必要なその他の認証機構を選択します。 これで、LDAP ベースの認証情報を使用してログインできるようになるはずです。
$ sudo pam-auth-update
ユーザーのホーム ディレクトリを自動的に作成したい場合、次のように設定します。 の場合、common-session PAM ファイルでもう1つ設定を行う必要があります。
$ sudo vim /etc/pam.d/common-session
この行を追加してください。
session required pam_mkhomedir.so skel=/etc/skel umask=077
変更を保存してファイルを閉じてください。 次に、次のコマンドで NCSD (Name Service Cache Daemon) サービスを再起動します。
$ sudo systemctl restart nscd$ sudo systemctl enable nscd
注意:レプリケーションを使用している場合、LDAP クライアントが /etc/ldap.conf で指定した複数のサーバーを参照する必要があります。
uri ldap://ldap1.example.com ldap://ldap2.example.com
これは、リクエストがタイムアウトし、プロバイダー (ldap1.example.com) が応答しなくなった場合、コンシューマー (ldap2.example.com) が処理のために到達しようとすることを意味します。
サーバーから特定のユーザーに対する LDAP エントリを確認するには、たとえば getent コマンドを実行してみてください。
$ getent passwd tecmint
上記のコマンドで /etc/passwd ファイルから指定したユーザーの詳細が表示された場合、クライアント マシンは LDAP サーバーで認証するように設定されているので、LDAP ベースの認証情報を使用してログインできるはずです。
LDAP Client in CentOS 7
必要なパッケージは次のコマンドでインストールして下さい。 このセクションでは、システムを非 root 管理ユーザーとして操作している場合、すべてのコマンドを実行するのに sudo コマンドを使用することに注意してください。
# yum update && yum install openldap openldap-clients nss-pam-ldapd
次に、クライアント システムで LDAP を使用して認証することを有効にします。
次のコマンドを実行し、example.com を自分のドメインに、dc=example,dc=com を自分の LDAP ドメイン コントローラーに置き換えてください。
# authconfig --enableldap --enableldapauth --ldapserver=ldap.example.com --ldapbasedn="dc=example,dc=com" --enablemkhomedir --update
上記のコマンドでは、--enablemkhomedir
オプションは、何も存在しなければ最初の接続でローカル ユーザー ホーム ディレクトリを作成します。
次に、サーバーからの特定のユーザー、たとえばユーザー tecmint に対して LDAP エントリーがあるかどうかをテストしてください。
$ getent passwd tecmint
上記のコマンドは、/etc/passwd ファイルから指定したユーザーの詳細を表示するはずで、これは、クライアント マシンが現在 LDAP サーバーで認証するように構成されていることを意味しています。
重要: システムで SELinux が有効になっている場合、mkhomedir によるホーム ディレクトリの自動作成を許可するルールを追加する必要があります。
詳細については、OpenLDAP Software 文書カタログから適切なドキュメントを参照してください。