LDAP:このプロトコルはクライアントを認証するためにどのように機能しますか

ネットワーク上に数十台のコンピューターがある場合、データとさまざまなユーザーの資格情報を正しく整理する必要があります。 階層構造を構築するためには、すべての機器の情報を適切に保存、管理、保護し、すべてのユーザーと資産。 今日この記事では、LDAPに関するすべてのことと、LDAPをインストールおよび構成する方法について説明します。 Linux システム。

LDAP:このプロトコルはどのように機能しますか

LDAPとは何ですか?それは何のためですか?

LDAP(ライトウェイトディレクトリアクセスプロトコル)または「ライトウェイトディレクトリアクセスプロトコル」とも呼ばれるTCP / IPアプリケーション層プロトコルは、順序付けられ分散されたディレクトリサービスにアクセスして、環境ネットワーク内の情報を検索できるようにします。 LDAPの目的を説明し続ける前に、「ディレクトリ」とは何かを知る必要があります。 ディレクトリは、論理的および階層的に編成された属性を持つオブジェクトのセットです。つまり、ツリーの形式であり、アルファベット順、ユーザー、アドレスなど、必要なものに応じて完全に順序付けられます。

通常、LDAPサーバーは、認証情報、つまりユーザー名とパスワードを保存して、後で別のプロトコルまたはシステムサービスにアクセスできるようにします。 ユーザー名とパスワードの保存に加えて、ユーザーの連絡先の詳細、ローカルネットワークリソースの場所、ユーザー自身のデジタル証明書などの他の情報も保存できます。 LDAPは、オペレーティングシステムでさまざまなユーザーを作成することなく、ローカルネットワークのリソースにアクセスできるようにするアクセスプロトコルであり、さらに汎用性があります。 たとえば、LDAPを使用すると、Docker、OpenVPN、QNAP、Synology、ASUSTORなどで使用されるファイルサーバーなどのさまざまなソフトウェアのユーザーの認証および承認タスクなど、さまざまな用途に使用できます。

LDAPは、アクセス資格情報を要求されたユーザーと、特定のシステム情報にアクセスできるかどうかを知るためのアプリケーションの両方で使用できます。 通常、LDAPサーバーはプライベートネットワーク、つまりローカルエリアネットワーク上に配置され、さまざまなアプリケーションやユーザーを認証しますが、パブリックネットワークでも問題なく動作する可能性があります。

LDAPでサポートされている最も人気のあるXNUMXつのActiveDirectoryサービスは次のとおりです。Windows 「ActiveDirectory」、または「Windows Active Directory」、およびOpenLDAPとも呼ばれます。 したがって、LDAPプロトコルは両方のテクノロジと互換性があるため、ユーザーはどこからでもすべてのファイルとアプリケーションにアクセスでき、認証するだけでコンピューターにアクセスできます。

現在、LDAPのバージョンはLDAPv3であるため、このプロトコルをインストールして使用する場合、ほとんどの場合、LDAPv3プロトコルを使用してさまざまなクライアントを認証します。

LDAPサーバーのしくみ

LDAPはクライアントサーバーアーキテクチャを備えたプロトコルであるため、XNUMXつまたは複数のLDAPサーバーに接続する複数のクライアントを用意します。 一般に、単一のLDAPサーバーが使用され、数十または数百のクライアントがそれに接続して、ローカルネットワークのさまざまなリソースにアクセスします。 サーバーは、ディレクトリに関連するすべてのデータが保存される場所であり、ユーザー認証、同時に接続されているユーザーがXNUMX人だけ、または異なるデバイスから複数のユーザーがいることの確認、および以下で説明するその他のタスクも担当します。

LDAPの操作は非常に簡単です。これは、Active Directoryを使用するWindowsで行われるのと同じように、通信がクライアントとサーバー間の他の通信と同じであるためです。 以下に、コミュニケーションのXNUMXつの最も重要なステップを示します。

  • クライアントは、TCP / IPポート389を介してLDAPサーバー(プロセスはDirectory System Agentと呼ばれます)に接続して、LDAPセッションを開始します。
  • クライアントとサーバーの間に接続が確立されます。
  • サーバーとクライアントの間でデータが交換されます。

クライアントが接続時に実行できる基本的なアクションはXNUMXつありますが、最初に認証と承認を区別する必要があります。 認証は、たとえばユーザー名とパスワードを使用して、システムで自分自身を識別するメカニズムです。 承認とは、システム内で何かを実行できる、または実行できないメカニズムです。 LDAPサーバーでは、次のことができます。

  • 情報を読む :情報を読み取るには、クライアントを認証する必要があります。次に、ディレクトリから情報を読み取って取得しようとします。この手順を実行する前に、サーバーは、特定のユーザーが情報を読み取る権限を持っているかどうかを確認します。
  • 情報を変更する :情報を変更するプロセスは同じですが、サーバーはサーバーに対する変更権限があるかどうかを確認します。

LDAPを使用すると、複数のサーバー間で情報を交換することもできます。サーバーで自分自身を認証し、必要な情報がない場合は、同じローカルネットワーク上にある別のサーバーに対してこのクエリを実行して、実際にあるかどうかを確認できます。この情報かどうか。 これは、 DNS サーバー。ルートサーバーに到達するまで、ツリーを上っていくように互いに要求します。

 

操作の種類

サーバーでは、クライアントとして実行できるさまざまな操作があります。以下に、実行できるすべての操作を示します。

  • 追加:新しいエントリを追加します。 エントリがすでに存在する場合、サーバーは通知します。
  • 変更:エントリを変更します。 このプロトコルでは、XNUMXつの異なる変更、新しい値の追加、値の置換、または値の削除が可能です。
  • 削除:エントリを削除します。
  • 検索:ディレクトリエントリを検索または取得します。
  • 比較:名前付き入力に特定の属性があるかどうかを確認します。
  • 放棄:前のリクエストを中止します
  • バインド:サーバーへの認証
  • TLSの開始–LDAPv3プロトコルでTLSを使用して安全な通信を確立します。
  • バインド解除:接続を閉じます。

 

コンポーネントと構造

このプロトコルがそのタスクを実行するために、ディレクトリ構造とコンポーネントの両方があります。 最も重要なコンポーネントは次のとおりです。

  • ディレクトリ:ディレクトリエントリのツリーです。
  • 入力:一連の属性で構成されます。 エントリは、すべての属性をリストすることによってユーザーを説明します。 各エントリには、DN(識別名)を持つ一意の識別子があります
  • 属性:属性には名前とXNUMXつ以上の値があり、スキーマで定義されています。

LDAPの基本構造は次のとおりです。

dn: cn=Redes Zone,dc=example,dc=com
cn: Redes Zone
givenName: Redes
sn: Zone
telephoneNumber: +34 666 111 111
telephoneNumber: +34 666 222 222
mail: redeszone@example.com
manager: cn=this article2,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top

  • dn(識別名):これはエントリの名前ですが、属性またはエントリ自体の一部ではありません。
  • cn(一般名):相対的な識別名です。
  • dc(ドメインコンポーネント):親エントリの識別名です。

残りの行は、givenName、sn、telephoneNumber、mail、および私たちが持っているさまざまなobjectClassなどの入力の属性です。 サーバーは常に特定のエントリで始まるサブツリーをホストします。

検索を実行するには、情報を取得するためにURLを入力する必要があります。使用する必要のある構文は、次のとおりです。

ldap://host:puerto/DN?attributes?scope?filter?extensions

これらのコンポーネントの多くはオプションです。たとえば、DNを呼び出すだけで、このエントリに関連するすべての情報が返されます。

 

MicrosoftActiveDirectoryとLDAPの違い

Microsoft Active Directoryは、LDAPプロトコルを内部的に使用して、クライアントからXNUMXつまたは複数のサーバーへのすべての通信を実行します。したがって、クライアントが自分自身を認証し、保存されているデータにアクセスできるようにします。さらに、このプロトコルはマルチプラットフォームであることを考慮する必要があります。 、Windowsオペレーティングシステムで使用できるだけでなく、プロトコル全体でLinux、Unix、macOSとも互換性があります。 アイデアを与えるために、次のディレクトリサービスは通信にこのプロトコルを使用します。

  • Microsoft Active Directoryの
  • アパッチ
  • RedHatディレクトリサービス
  • OpenLDAP

また、他の多くのサービスもこれを使用しています。特に最新のOpenLDAPは、プロトコルのオープンソース実装であり、コンパイルするためのソースコードが利用できるため、どのシステムにもインストールできます。 ただし、ほとんどのLinuxディストリビューションでは、リポジトリで利用できます。

 

インストールと基本構成

Linuxベースのオペレーティングシステムへのインストールと試運転は非常に簡単で、QNAPNASでサーバーをアクティブ化することもできます。 次に、DebianとQNAPでインストールと基本設定を実行する方法を説明します。

 

Debianの

DebianのようなLinuxベースのオペレーティングシステムを使用している場合は、ディストリビューションの公式リポジトリからldapをインストールできます。 これを行うには、次のコマンドをターミナルに配置できます。論理的には、スーパーユーザーのアクセス許可が必要です。

sudo apt install slapd ldap-utils

実行すると、サーバーに設定する管理者パスワードが要求されます。パスワードを入力すると、ソフトウェアのインストールが完了し、作業を開始できます。

正しくインストールされていることを確認するために、次の順序で注文すると、現在のサーバーのすべてのデータが表示されます。

sudo slapcat

次のスクリーンショットは、インストール直後に得られるものを示しています。

ここで、独自のドメインを配置するためにslapdを再構成する必要があります。次のコマンドを実行して、構成ウィザードを開始します。

sudo dpkg-reconfigure slapd

ウィザードはサーバーの多くの側面を尋ねます。次のスクリーンショットに示すように、すべてを残すことができます。 最も重要なことは、DNを適切に配置することです。

すべてが完了すると、サーバーでさまざまなユーザーを追加できるようになります。

最初に行う必要があるのは、すべてのユーザーのリストを作成することです。このために、/ etc/ldapに「users.ldif」という名前のファイルを作成します。

sudo touch /etc/ldap/users.ldif

任意のテキストエディタを使用して、次の内容でこのファイルを編集します。

dn: ou=People,dc=redeszone,dc=net
objectClass: organizationalUnit
ou: People

完了したら、次の方法でサーバーに導入する必要があります。

sudo ldapadd -D "cn=admin,dc=redeszone,dc=net" -W -H ldapi:/// -f users.ldif

パスワードの入力を求められ、入力に進みます。 いかなる種類のエラーも発生しないはずです。

最後に、検索を実行する場合は、次の方法で実行できます。

sudo ldapsearch -x -b "dc=redeszone,dc=net" ou

サーバーの基本構成はすでに完了しているので、必要な情報を使用してさまざまなエントリを追加する必要があります。

 

QNAPNASサーバー

QNAP NASサーバーを使用する場合、デフォルトでLDAPサーバーがインストールされています。 これを行うには、「コントロールパネル/アプリケーション/LDAPサーバー」セクションに移動します。 このメニューでは、ドメイン名と管理者パスワードを入力し、指定したら、[適用]をクリックします。

変更を適用すると、サーバーが稼働します。 「ユーザー」、「グループ」、「バックアップ andRestore」が表示されます。

ユーザーセクションでは、小さな構成ウィザードを使用してさまざまなユーザーを登録できます。 この単純なウィザードに従って、必要なすべてのユーザーを追加するだけです。

また、新しいユーザーグループを追加することもできます。また、プロセスを支援するウィザードもあります。

最後に、バックアップと復元のセクションでは、サーバーデータベース全体のバックアップを作成し、以前のコピーから復元することもできます。これは、サーバーに含まれるすべての情報を失わないために理想的です。

ご覧のとおり、QNAPでのこのLDAPサーバーの実装は非常に単純であり、コンソールからコマンドを実行する必要はありません。すべてがグラフィカルユーザーインターフェイスを介して実行されます。

 

結論

LDAPプロトコルは、さまざまなユーザーを認証するために専門的な環境で広く使用されており、順序付けられた階層情報を格納できるようになります。 このプロトコルは、OpenLDAPなどのソフトウェアだけでなく、WindowsやRedHatなどの他のディレクトリシステムでも使用されています。 最初は操作が複雑に見えるかもしれませんが、サーバーをインストールしてユーザーとグループの登録を開始すると、この重要なプロトコルに関連するすべてを完全に理解できます。

このプロトコルは、企業内のユーザーを認証するために最も重要なもののXNUMXつです。さらに、RADIUSサーバーと一緒に使用されることも多く、ニーズに応じて、RADIUSの代わりにこのプロトコルを選択できます。両方が同じローカルに共存することもできます。私たちがそれを与えることができるさまざまな用途のためのネットワーク。