2016-07-23 15 views
0

すべての人が複数のアカウントを持つことができるように、LDAPでデータを整理する適切な方法は何ですか?LDAPの1人あたり複数のアカウントを管理する

人< - >アカウントは1:nである必要があります。

アカウント< - >サービスはn:mにする必要があります。

サービスをグループとして表し、これらのグループにアカウントを割り当てることで、後者を実現できます。しかし、私はどのように私は人からアカウントを分離する必要があるかについては、私は確信していません。

答えて

0

人のエントリにアカウント固有の識別子を追加できます。この一意の識別子は、口座エントリのDNまたは他の固有の属性(accountID)のいずれかです。私はあなたのアカウントの名前を変更または再配置(DNを変更)することを決定した場合、人物のエントリを更新することについて心配する必要がないように、後で個人的に好みます。

あなたは、次の2つのアカウントを持っていると仮定しましょう:

dn: accoutnID=accountA,ou=Accounts,dc=example,dc=com 
objectClass: top 
objectClass: account 
accoutnID: accountA 
desc: Sample Account A 

dn: accoutnID=accountB,ou=Accounts,dc=example,dc=com 
objectClass: top 
objectClass: account 
accoutnID: accountB 
desc: Sample Account B 

次のように、1対多の関係を確立することができます。

dn: uid=bjensen,ou=people,dc=example,dc=com 
objectClass: top 
objectClass: customPerson 
uid: bjensen 
cn: Barbara Jensen 
sn: Jensen 
userPassword: XXXXXXX 
accountID: accountA 
accountID: accountB 

それはあなたのスキーマに依存しますが、あなたが持つかもしれませんそれをカスタマイズしてaccountID属性が人物のエントリに許可されていることを確認します。

accountID属性のインデックスを作成して、アカウントに属するすべての人物を効率的に検索できるようにすることもできます。たとえば、アカウントAのすべてのユーザーを検索するには、次のようにします:

ldapsearch --port 1389 --hostname localhost --bindDN “cn=directory manager” \ 
--password password123 --baseDN “ou=people,dc=example,dc=com” \ 
--scope ONE “(&(objectclass=device)(accountID=accountA)” 
関連する問題