ある LDAP 属性の値を別の LDAP 属性の値に関連付けるにはどうすればよいですか?

ある LDAP 属性の値を別の LDAP 属性の値に関連付けるにはどうすればよいですか?

さまざまな理由から、私は職場で事実上の LDAP 管理者になりました。仕事を通じて LDAP を学んでから、もう 1 年になります。ですから、私が物事を説明するときに、もっと良い方法があれば遠慮なく提案してください。

私は従業員情報を保存している Novell eDirectory を持っています。その主な用途は、Moodle や Drupal などのさまざまな Web サービスを認証することです。しかし、新しい従業員ディレクトリのバックエンドとしても使用しています。すでに複製されているデータをさらに複製する意味がわかりません。さらに、従業員ディレクトリはまさに LDAP の目的にかなうもののように思えます。

各オフィスのエントリを作成し、各ユーザーに、オフィスのオフィス エントリの DN を参照する属性を設定しました。現在抱えている問題は、各オフィスに独自の電話番号がある可能性が高いことです。したがって、複数のオフィスを持つ従業員 (たとえば、複数のキャンパスで働いている場合) は、複数の電話番号を持ちます。電話番号は従業員に付随するため、オフィス エントリに番号を割り当てることはできません。そのため、「この電話番号はこのオフィス用です」と示す方法が必要です。

これが MySQL データベースであれば、好きなようにマッピングするテーブルを作成するだけです。

LDAP で使用できる同様の構造はありますか? または同等の方法はありますか?

私が話していることの詳細な例として、従業員エントリの疑似 ldif を以下に示します。

dn: cn=user,ou=staff,dc=college,dc=edu
officedn: cn=DC107,ou=locations,dc=college,dc=edu
officedn: cn=MAIN222,ou=locations,dc=college,dc=edu
phone: 555-555-5555
phone: 111-111-1111
departmentdn: cn=it,ou=departments,ou=groups,dc=college,dc=edu
departmentdn: cn=math,ou=departments,ou=groups,dc=college,dc=edu
title: web systems admin
title: professor of discrete math

では、私は とどのよう officedn: cn=DC107,ou=locations,dc=college,dc=eduに関係するのでしょうかphone: 555-555-5555?

それとも?officedn: cn=MAIN222,ou=locations,dc=college,dc=eduphone: 111-111-1111

それとも?departmentdn: cn=math,ou=departments,ou=groups,dc=college,dc=edutitle: professor of discrete math

等々...

関連するかもしれないので、いくつかメモしておきます:

DN 構文 1.3.6.1.4.1.1466.115.121.1.12 を使用して、オフィスおよび部門の DN のカスタム属性を作成しました。

部門エントリには、groupOfNames、nestedGroupAux、Top というオブジェクトクラスがあります。

オフィスには、親キャンパス エントリへのカスタム DN 参照を含むカスタム オブジェクト クラス、ndsLoginProperties、organizationalPerson、Person、および Top というオブジェクト クラスがあります。

ユーザー エントリは、オフィスと同じですが、さらに posixAccount が追加されます。

他に提供すべき情報はありますか?

コメントが短すぎる問題に対処するために編集します:

メタ情報を含む別のエントリを作成すると、https://serverfault.com/a/500129/99647電話番号ごと、役職ごとにメタエントリを作成する必要があります。

dn: cn=MAIN222,cn=user,ou=staff,dc=college,dc=edu officedn: cn=MAIN222,ou=locations,dc=college,dc=edu phone: 111-111-1111 departmentdn: cn=math,ou=departments,ou=groups,dc=college,dc=edu title: professor of discrete math departmentdn: cn=it,ou=departments,ou=groups,dc=college,dc=edu title: web systems admin

ウェブ システム管理は数学とは関係ないが、数学と関係があることをコンピューターが理解する方法がないので、機能しません。

質問を投稿する前に私が考え出した方法は、すべてのメタデータに対して ou を作成するようなものでした。ou=metadata,dc=college,dc=edu次に、各ユーザーに対して ou を作成します。ou=userid,ou=metadata,dc=college,dc=edu次に、役職と電話番号ごとにエントリを作成し、それらを部門とオフィスにリンクします。

``` dn: cn=jobtitle,ou=userid,ou=metadata,dc=college,dc=edu オフィスdn: cn=DC107,ou=locations,dc=college,dc=edu 電話: 555-555-5555

dn: cn=電話番号、ou=ユーザーID、ou=メタデータ、dc=大学、dc=edu オフィスdn: cn=MAIN222、ou=場所、dc=大学、dc=edu 電話: 111-111-1111 ```

私が望むことを達成するには、それよりももっと簡単な方法があるのではないかと期待していました。

答え1

各ポジションごとに、officedn と関連情報を同じオブジェクトに含めるオブジェクトを作成すればよいのではないでしょうか。

それで:

dn: cn=DC107,cn=user,ou=staff,dc=college,dc=edu
officedn: cn=DC107,ou=locations,dc=college,dc=edu
phone: 555-555-5555
departmentdn: cn=it,ou=departments,ou=groups,dc=college,dc=edu
title: web systems admin

dn: cn=MAIN222,cn=user,ou=staff,dc=college,dc=edu
officedn: cn=MAIN222,ou=locations,dc=college,dc=edu
phone: 111-111-1111
departmentdn: cn=math,ou=departments,ou=groups,dc=college,dc=edu
title: professor of discrete math

こうすることで、単一のポジションに関連するすべてのフィールドを 1 つのオブジェクトに保持し、ユーザーのオブジェクトがコンテナーになります。これにより、任意の数のポジションの検索と処理が非常に簡単になります。

関連情報