2009-03-12 6 views
2

私はLDAPとADをかなり新しくしています。私は、広告のすべての学生を表示するLDAPフィルタを作成したい。しかし、問題は、学生が異なるBASE DNであるということです。あなたが別の学部の学生が別の場所にある見ることができるように、それは生徒を検索するためのLDAPフィルタ

 
CN =khx72b,OU=STUDENTS,OU=USERS,OU=SOCS,OU=FOS,OU=UNIVERSITY,DC=sepang 

のようである各学生のための

 
OU=STUDENTS,OU=USERS,OU=SOE,OU=FOAE,OU=UNIVERSITY,DC=sepang 
OU=STUDENTS,OU=USERS,OU=SOMLC,OU=FOAE,OU=UNIVERSITY,DC=sepang 
OU=STUDENTS,OU=USERS,OU=SOCS,OU=FOS,OU=UNIVERSITY,DC=sepang 

すなわち。 ユーザー名を指定すると、指定したユーザーがディレクトリに存在するかどうかを検索して調べることはできますか?

objectClassは、すべての生徒のために'user'です。

答えて

1

「学生」と呼ばれるOU内にある「ユーザー」タイプのオブジェクトを検索しているようですが、それ以外の場合は共通の親はありません。

これは、1つの手順(つまり、1つのLDAPクエリ)で行うことはできません。

すでに指定されているように、「STUDENTS」という名前のすべてのOUを取得し、それらをベースDNとして1つずつ使用する必要があります。

または、すべての生徒が共有するプロパティ(たとえば、直接のグループメンバーシップ、または特定の値)を見つけて、それをフィルタとして使用します。これはより危険なアプローチです。すべての生徒が実際にあなたが頼りにしている特徴を持っていることを保証するものはありません。

0

Tomalak、そうですが、マイクロソフトでは、「employeeType」、「comment」、「department」、「company」、「department」、「divison」など、この目的に使用できる多くの属性を提供していますこれらの問題は、今すぐあなたを助けることができる情報があらかじめ用意されていないことです。これらのうちの1つを将来の目的で使用することはできますが、一貫性を保つためにはその習慣を維持する必要があります。あなたのための最も簡単な解決策は、OU名に似た名前のグループに各ユーザーを配置することです。これは、現在同じOUにいる場合は本当に簡単な作業です。そして、これが行われたら、あなたは簡単にこのような、そのグループのメンバーシップを見ていきますLDAPクエリを作成することができます。

((objectCategory=person)(objectClass=user)(memberOf=CN=STUDENTS GROUP,OU=USERS,OU=SOCS,OU=FOS,OU=UNIVERSITY,DC=sepang)) 

に注意してください。LDAPフィルタで「のmemberOf」を使用したときに、検索値がなければなりませんグループへの完全な文字列であるため、次のようなワイルドカードは使用できません。memberOf = CN = STUDENTS GROUP *)。

また、LDAPクエリが正確であることを確認するために、グループメンバシップを維持している人や何か(例:自動スケジュールスクリプトタスクなど)を維持する必要があります。

私は"Matching Components of Distinguished Names"で余分なことをすることなくあなたのやろうとしていることが可能であることを言うthis postを見ましたが、これまでにこれを見たことがなく、動作させることができませんでした。

1

「searchRoot」にOUへのLDAPパスを設定することで、OU内のオブジェクトを検索します。すべての検索はそのOUに限定されます。

関連する問題