外部認証に接続するためのLDAPクライアントの設定方法


LDAP Lightweight Directory Access Protocol の略)は、ディレクトリサービスにアクセスするための業界標準で広く使用されている一連のプロトコルです。

ディレクトリサービスは、簡単に言えば、読み取りアクセス用に最適化された集中型のネットワークベースのデータベースです。アプリケーション間で共有しなければならないか、または高度に分散しているかのいずれかである情報へのアクセスを保存して提供します。

ディレクトリサービスは、ユーザーがシステム、ネットワーク、アプリケーション、およびサービスに関する情報をネットワーク全体で共有できるようにすることで、イントラネットおよびインターネットアプリケーションの開発に重要な役割を果たします。

ある[ LDAP のための典型的なユースケースは、ユーザー名とパスワードの集中ストレージを提供することです。これにより、さまざまなアプリケーション(またはサービス)がLDAPサーバーに接続してユーザーを検証できます。

実用的なある[ LDAP のサーバーを設定した後、あなたはそれに接続するためのクライアントにライブラリをインストールする必要があります。この記事では、外部認証ソースに接続するようにLDAPクライアントを構成する方法を説明します。

LDAPベースの認証用にLDAPサーバーをセットアップしていない場合は、既にLDAPサーバー環境が機能していることを願います。

UbuntuとCentOSにLDAPクライアントをインストールして設定する方法

クライアントシステムでは、認証メカニズムをLDAPサーバーで正しく機能させるために必要ないくつかのパッケージをインストールする必要があります。

まず以下のコマンドを実行して必要なパッケージをインストールします。

$ sudo apt update && sudo apt install libnss-ldap libpam-ldap ldap-utils nscd

インストール中に、 LDAP サーバーの詳細を入力するように求められます(環境に応じて値を入力してください)。自動インストールされた ldap-auth-config パッケージは、入力した入力に基づいてほとんどの設定を行います。

次に、LDAP検索ベースの名前を入力します。スクリーンショットに示すように、この目的のためにそれらのドメイン名のコンポーネントを使用できます。

使用するLDAPのバージョンも選択して、[ OK ]をクリックします。

ローカルのパスワードを変更するのと同じように pam を使用するパスワードユーティリティを作成できるようにオプションを設定し、[はい]をクリックして続行します。

次に、次のオプションを使用してLDAPデータベースへのログイン要件を無効にします。

root用のLDAPアカウントも定義し、[OK]をクリックします。

次に、 ldap-auth-config がroot用のLDAPアカウントを使用してLDAPディレクトリにログインしようとするときに使用するパスワードを入力します。

ダイアログの結果はファイル /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

uri ldap://ldap1.example.com  ldap://ldap2.example.com

これは、リクエストがタイムアウトし、プロバイダ ldap1.example.com )が応答しなくなった場合、消費者 ldap2)が応答しなくなることを意味します。 .example.com )はそれを処理しようとします。

サーバーから特定のユーザーのLDAPエントリを確認するには、たとえば getentコマンドを実行します。

$ getent passwd tecmint

上記のコマンドで/etc/passwd ファイルから指定したユーザーの詳細が表示された場合、クライアントコンピュータはLDAPサーバーで認証するように設定されているので、LDAPベースの認証情報を使用してログインできます。

CentOS 7でLDAPクライアントを設定する

必要なパッケージをインストールするには、次のコマンドを実行してください。このセクションで、システムをroot以外の管理ユーザーとして操作している場合は、 sudoコマンドを使用してすべてのコマンドを実行します。

# yum update && yum install openldap openldap-clients nss-pam-ldapd

次に、クライアントシステムがLDAPを使用して認証できるようにします。システム認証リソースを設定するためのインターフェースである authconfig ユーティリティを使用できます。

次のコマンドを実行して、 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サーバーで認証するように設定されたことを意味します。

詳細については、OpenLDAPソフトウェアのドキュメントカタログから適切なドキュメントを参照してください。

LDAP は、ディレクトリサービスの照会と変更に広く使用されているプロトコルです。このガイドでは、UbuntuおよびCentOSクライアントマシンで、LDAPクライアントを外部認証ソースに接続するように設定する方法を示しました。下記のフィードバックフォームを使用して、質問やコメントを残すことができます。