第25章 LDAP—ディレクトリサービス

目次

25.1. LDAPとNISの比較
25.2. LDAPディレクトリツリーの構造
25.3. slapd.confを使用したサーバの設定
25.4. LDAPディレクトリのデータ処理
25.5. YaST LDAPクライアント
25.6. YaSTでのLDAPユーザおよびグループの設定
25.7. 関連情報

概要

LDAP (Lightweight Directory Access Protocol)は、情報ディレクトリへのアクセスと管理を行うために設計されたプロトコルセットです。LDAPは、ユーザおよびグループ管理、システム構成の管理、アドレス管理など、さまざまな目的に使用できます。この章では、OpenLDAPの動作原理とYaSTを使用したLDAPデータの管理方法の基本事項について説明します。LDAPプロトコルには複数の実装方法がありますが、この章ではもっぱらOpenLDAPの実装を中心に説明します。

ネットワーク環境では、重要な情報をすぐに利用できるように整理しておくことは不可欠です。そのため、一般的に使用されているイエローページのようなディレクトリサービスを使用して、情報を整理し、すぐに検索できる形式にしておくことができます。

理想的なケースは、一元的なサーバでデータをディレクトリに保持し、特定のプロトコルを使用してそれをすべてのクライアントに配布するという形態です。データはさまざまなアプリケーションがアクセスできる方法で整理されます。この方法では、個々のカレンダツールや電子メールクライアントが独自のデータベースを持つ必要はありません。一元的なリポジトリにアクセスすればよいためです。これにより、情報管理のための負荷も大幅に軽減されます。LDAP (lightweight directory access protocol)のようなオープンで標準化されたプロトコルを使用すれば、可能な限り多くの異なるクライアントアプリケーションが、このような情報にアクセスできるようになります。

この文脈でのディレクトリとは、高速かつ効果的に読み込みと検索ができるように最適化された一種のデータベースです。

LDAPなどのディレクトリサービスの設計には、複雑な更新やクエリメカニズムのサポートは含まれません。このサービスにアクセスするすべてのアプリケーションが、すばやく簡単にアクセスできることが主な課題です。

Unixでも他のシステムでも、多くのディレクトリサービスがこれまでに存在し、今なお存在しています。いくつか例を挙げると、Novell NDS、Microsoft ADS、BanyanのStreet Talk、OSI標準のX.500などがあります。LDAPは元々、DAP (directory access protocol)の無駄な機能を省略したサービスであり、X.500へのアクセスを目的として開発されました。X.500標準は、ディレクトリエントリの階層構造を規定しています。

LDAPは、DAPの簡易版です。LDAPでは、X.500エントリ階層が維持されているため、プラットフォーム非依存という特長を持ち、必要なリソースも少なくて済みます。TCP/IPを使用することにより、ドッキングアプリケーションとLDAPサービス間のインタフェースが、非常に簡単に確立できます。

一方でLDAPは、X.500サポートとは別に進化し、スタンドアロンソリューションとして採用されることが多くなっています。LDAPはLDAPv3の照会(パッケージopenldap2のプロトコルバージョン)をサポートすることによって、分散データベースを実現しています。SASL (simple authentication and security layer)も新しく採用されています。

LDAPの機能は、当初の計画ではX.500サーバにデータを問い合わせることだけでしたが、現在はそれだけにとどまりません。slapdというオープンソースサーバが存在し、オブジェクト情報をローカルデータベースに格納できます。また複数のLDAPサーバへのレプリケートを行うslurpdという拡張機能もあります。

openldap2パッケージの構成は、次のとおりです。

slapd

スタンドアロンのLDAPv3サーバ。オブジェクト情報をBerkeleyDBベースのデータベースで管理します。

slurpd

このプログラムは、データの変更をローカルLDAPサーバから、ネットワーク上にインストールされた他のLDAPサーバへレプリケートします。

システム管理用の追加ツール

slapcatslapaddslapindex


25.1 LDAPとNISの比較

Unix系システムの管理者は、従来から、ネットワーク内の名前の解決やデータ配信にNISサービスを使用しています。設定データは/etc内のファイルに保存され、grouphostsmailnetgroupnetworkspasswdprintcapprotocolsrpc、およびservicesの各ディレクトリは、ネットワーク内の複数のクライアントに分散されています。これらのファイルはシンプルテキストファイルのため、保守にそれほどの手間はかかりません。しかし、構造化されていないため、大量のデータを処理することがますます困難になっています。 NISはUnix系プラットフォーム専用に設計されています。このため、異種ネットワークでの一元的データ管理には採用できません。

LDAPサービスはNISと異なり、純粋なUnix系ネットワークに制限されていません。Windowsサーバ(2000以降)は、LDAPをディレクトリサービスとしてサポートします。NovellもまたLDAPサービスを提供します。前述のアプリケーションタスクは、Unix系以外のシステムでもサポートされます。

LDAPの原則は、一元管理が必要なあらゆるデータ構造に適用可能です。いくつかの例を次に示します。

  • NISサービスの代替としての採用

  • メールルーティング(postfix、sendmail)

  • Mozilla、Evolution、およびOutlookなどのメールクライアント用アドレス帳

  • BIND9ネームサーバのゾーン記述の管理

  • 異種ネットワークでのSambaのユーザ認証

LDAPはNISと異なり拡張できるため、これら以外にも広範な用途が考えられます。データが明確に定義された階層構造になっているため、検索が容易であり、大量データの管理が非常に容易になります。