web-dev-qa-db-ja.com

Active DirectoryとOpenLDAP

LDAPプロトコルのこれら2つの実装の主な違いは何ですか?異機種混在環境にはどちらが適していますか?このトピックについての良いウェブサイトはありますか?

27
Migol

ヘテロジニアスな環境では、OpenLDAPなどの汎用サーバーを使用します。 ADの利点は通常、内部ユーザーのユーザーアカウントが既に含まれていることです。これにより、複雑さが増しますが、これらのアカウントを別のLDAPサーバーと同期させることができます。

プロトコルの詳細に関する限り、Oracle Virtual Directoryのドキュメントにはかなり良い要約があります。 (OVDは、ADをプロキシし、その癖の一部をより標準的なインターフェースに変換するために使用できる製品です。):

http://download.Oracle.com/docs/html/E10286_01/app_bundled_plugins.htm#CHDGDBBG

範囲属性 1000を超える値を持つActive DirectoryおよびADAMの属性は、一度に1000が返されます。名前には、返された値の範囲(Windows 2003の場合は1500)が含まれます。範囲は次の形式でクライアントに返されます:member; 1-1000:somevalue次の1000のエントリを取得するには、クライアントアプリケーションが何らかの方法でクエリを繰り返し、属性member; 1001-2000を要求する必要があります。これには、アプリケーションがMicrosoft Active Directoryを他のディレクトリ製品と比較して特別な方法で処理する必要があります。

パスワードの更新 Microsoft Active DirectoryとADAMには、LDAPを使用してユーザーのパスワードを更新する方法に関する特別なルールがあります。

  • パスワードは安全なSSL接続を介してのみ更新できます。
  • ユーザーが自分のパスワードを更新する場合、元のパスワードを変更削除に含め、新しいパスワードを同じ変更操作の変更追加に含める必要があります。
  • 以前のパスワードを知らなくても、管理者だけがユーザーのパスワードをリセットできます。
  • Active DirectroyはuserPassword属性を使用せず、unicodePwd属性を使用します(これは quoted-UTF16-hex-padded-base64エンコードされています )。

ObjectClassマッピング ほとんどのLDAPディレクトリは、ユーザーおよびグループのinetOrgPersonおよびgroupOfUniqueNamesオブジェクトクラスを使用します。 Microsoft Active Directoryは、Active Directory固有の属性を持つユーザーとグループのobjectClassesを使用しますNOS Microsoftの要件です。 "

これらは主なものの一部ですが、他にもあります。

14
Andrew Strong

ここに、私が頭の上で知っているいくつかの違いがあります。 OpenLDAPは、他の多くのベンダーのLDAPサーバー(Fedora DS 389、Oracle Internet Directory、IBM Tivoli Directory Server)と同様の汎用LDAPサーバーと呼ぶことができます。ActiveDirectoryは、Microsoft製品用に少しカスタマイズされていますスイート(例:Microsoftドメインの実行)それぞれの長所と短所があります。

OpenLDAPはインストール後に空になり、構造(DITと呼ばれます)がありません。すぐに使えるルートエントリさえありません。 ADには基本的な構造が同梱され、ユーザーの入力を開始できるGUIツールが用意されています。 OpenLDAPなどは、DITを手動で作成することを想定しているため、構造を設計する必要があります。したがって、ユーザー、グループ、役割をどこに配置するかを計画し、プロジェクトにそのようなことが含まれる場合は、ACLまたはブランチの委任について考える必要があります。たとえば、widgets.comのドメインがあるとします。 ADでは、出荷された構造は次のようになります。

+ dc=widgets,dc=com
|-- cn=Computers
|-- cn=Users
|-- cn=Groups

OpenLDAP(または他のVanilla実装)では、DITをさまざまな方法で設計できます。ドメインコンポーネント(dc = foo、dc = bar)の規則に従うことも、地理的な領域(o = foo、c = bar)で編成されたものを使用することもできます。それは大した問題ではありませんが、どちらか一方を使用する必要があります。 ADはDC規則を使用し、選択を与えませんが、他のLDAPサーバーはどちらの規則にも従うことができます。大きなMSドメインに適合させようとしている場合は、= DC一貫性と統合を容易にするための規則です。ただし、この例では、会社の組織(o)を1つの国(c)に、地域や単位(ou)がないものとします。

+ o=widgets,c=us
|-- cn=Machines
|-- cn=People
|-- cn=Groups
|-- cn=Roles

その後、必要に応じてスキーマを拡張できます。 ADスキーマを拡張する場合、ADでは、Active Directoryスキーマエディターを介してスキーマ要素を追加する必要がありますMMCコンソールプラグイン(カスタムMMCを作成)。その後は、非常に簡単です。定義最初に属性、次にオブジェクトクラスです。OpenLDAPではLDIFを作成する必要があります(最初に属性、次にオブジェクトクラスも必要です)。または、Apache Directory StudioとOpenLDAPを使用してください。

ADでは、389のすべてを匿名でクエリすることはできません。スキーマ情報(カタログと呼ばれる)を取得する場合は、3289でクエリを実行して認証する必要があります。これは、LDAPのDIBとDITの非表示を思い出させますが、ADが同じことをここで実行しようとしているのかどうかはわかりません。

ADのデフォルトのクエリ制限は10,000です。すべてを一度に吸い上げたい場合は、クライアントまたはコードでページングコントロールを使用するか、検索しているドメインコントローラーの既定のクエリ制限を変更する必要があります。ページング制御には問題があることに注意してください。 Netscapeライブラリを使用してJavaで動作するようにしてもらいましたが、ページングコントロール(YMMV)をサポートしていると主張していても、一部のLDAPクライアントは正しく動作しないようです。

ADの認証は少し奇妙です。電子メール形式のユーザー名(-D username @ domain)として認証するか、完全なユーザーDNを使用できます。 OpenLDAPでこれを行う方法がある場合、私はそれを行う方法がわかりませんが、気にしません。これは、他のLDAPサーバーと比較すると奇妙です。プレーンLDAPは通常DN形式に従います(cn = username、cn = Users、o = widgets、c = us)。

要するに、ADは独断的で、OpenLDAPは汎用的だと思います。そのため、ADは簡単に立ち上がることができますが、OpenLDAPの方が柔軟性があります。

54
squarism