18

アクセス サーバーとソース コードを管理するための可能なツールとして LDAP に取り組んでいます。ユーザーとマシンをエンティティとして表す、属性を作成する、属性を定義するなどの基本的な概念を把握することができました。それらに適用された objectClasses に基づくエンティティに適用されますが、まだ意味をなさないエラーがいくつかあります。誰かがそれらがどのように機能するかを説明してくれることを願っています.

ネストされたグループはどのように機能しますか?

私は (組織単位) が何であるかを理解ouできます。また、その内部に人を配置し、 groupOfNames クラスを使用してメンバーのコンテナーとして機能することも理解できます

    # create FIRST Level groups branch

    dn: ou=groups,dc=example,dc=com
    objectclass:organizationalunit
    ou: groups
    description: generic groups branch

    # create the itpeople entry under groups

    dn: cn=itpeople,ou=groups,dc=example,dc=com
    objectclass: groupofnames
    cn: itpeople
    description: IT security group
    member: cn=William Smith,ou=people,dc=example,dc=com

    # create the hrpeople entry under groups

    dn: cn=hrpeople,ou=groups,dc=example,dc=com
    objectclass: groupofnames
    cn: hrpeople
    description: Human Resources group
    member: cn=Robert Smith,ou=people,dc=example,dc=com

ただし、ネストのレベルをさらに追加するにはどうすればよいですか?

私が求めているのは、次の疑似コードのようなものです。

ou='Projects' /
description: This top level group has a few people in it that can create new groups, and control who's in them
member: cn=Robert Smith,ou=people,dc=example,dc=com

    -- somethingsomethingAbitrarilyNestedGroup='project-name'
        member: cn=Robert Smith,ou=people,dc=example,dc=com

        -- groupOfNames = 'project-name development'
            member: cn=Robert Smith,ou=people,dc=example,dc=com
            member: cn=Jane Doe,ou=people,dc=example,dc=com
            member: cn=server1$,ou=servers,dc=example,dc=com

        -- groupOfNames = 'project-name staging'
            member: cn=Jane Doe,ou=people,dc=example,dc=com
            member: cn=server2$,ou=servers,dc=example,dc=com

この階層を考えると、今このグループにアクセスを許可する最善の方法は何ですか?

高価なクローズド ソース ツールを使用せずに、利用可能な通常のクラスの中で、ここで任意のグループのネストを行う簡単な方法はわかりませんが、これほど複雑であってはならないと感じています。

OpenLDAP のようなツールを使用して、他の LDAP クライアントが正しい権限を持つユーザーとして認証された後にグループ メンバーシップを制御できるようにするには、通常どのように行うのでしょうか? ?

4

2 に答える 2

19

あなたの質問は少し混乱しています。最初の数段落の文脈で、「このグループへのアクセスを今すぐ許可する最善の方法は何ですか」という意味がわかりません。

ネストされたグループは非常に単純です。groupOfNames objectClass を使用している場合は、別のmember属性を親グループに追加し、その値を子グループの DN にします。

あなたの疑似コードから:

# Assuming your "groups" OU already exists...
# First create the child groups

dn: cn=project-name development,ou=groups,dc=example,dc=com
objectclass: groupofnames
cn: project-name development
member: cn=Robert Smith,ou=people,dc=example,dc=com
member: cn=Jane Doe,ou=people,dc=example,dc=com
member: cn=server1$,ou=servers,dc=example,dc=com

dn: cn=project-name staging,ou=groups,dc=example,dc=com
objectclass: groupofnames
cn: project-name development
member: cn=Jane Doe,ou=people,dc=example,dc=com
member: cn=server2$,ou=servers,dc=example,dc=com

# Now create the parent group
dn: 'project-name,ou=groups,dc=example,dc=com'
objectclass: groupofnames
member: cn=Robert Smith,ou=people,dc=example,dc=com
member: cn=project-name staging,ou=groups,dc=example,dc=com
member: cn=project-name development,ou=groups,dc=example,dc=com

OU 内の階層は、組織の構造に基づいて、LDAP ツリーを「論理的な」セグメントに分割するためだけのものです。したがって、たとえば、「開発部門」を管理するすべてのグループを独自の OU に貼り付けることができます。これにより、それらが何に関係するのかがわかりやすくなります。オブジェクトは、適切な属性 (この場合は ) を使用して相互に参照することにより、相互に参照したり、入れ子になったりすることができますmember

于 2011-02-27T19:10:08.710 に答える
7

ユーザーオブジェクトを参照するときは、uid= ではなく使用する必要があると思いますcn=

グループのネストに関する問題は、グループを参照できる多くのアプリケーションが、ネストされたグループでメンバーオブジェクトを検索する方法に精通していないことです。

于 2012-11-22T02:05:11.863 に答える