H 皆さん、
1 つのグループ内のすべてのユーザーを取得する際に問題が発生しています。グループ名があり、私のタスクはすべてのユーザーのリストを取得することです。OpenLDAP サーバーでmemberOfプロパティを有効にしていません。これまでのところ、次を使用してグループを取得できました。
"(&(objectClass=groupOfNames)(cn=" + groupName + "))";
これを取得したとき、見つかったグループの属性メンバーを使用しました。たとえば、「cn=ldapuser1,ou=Users,dc=example,dc=com」です。
次に、これを使用して、別のクエリを実行して、指定された名前のすべてのユーザーを取得しました (上記の例では、名前は ldapuser1 になります)。私はこのクエリを使用します:
"(&(objectClass=inetOrgPerson)(|" + builder + "))"; // it can contain several names
問題は、メイン グループに別のグループが含まれている場合... 2 番目のクエリが機能しないことです。
したがって、今のところ機能するのは次のとおりです。(ただし、それほど単純で簡単ではありません)1つのグループのユーザーを取得します(サーバーへの2回の呼び出しが必要です-最初にグループを取得し、次にメンバー属性に基づいて、特定のユーザー)
うまくいかないのは、たとえば、1 つのグループに 1 人のユーザーが含まれ、1 つのグループに 2 人のユーザーが含まれている場合、現在のソリューションの最終結果では 1 人のユーザーしか得られませんでした。この例では、結果として 3 人のユーザーが必要です。
私はすでに Active Directory ユーザー検索を行っていますが、それはとても簡単です。入れ子になったグループとそのユーザーには、memberOf と "1.2.840.113556.1.4.1941" フィルターを使用します。なぜ OpenLDAP ではこれほど単純にできないのでしょうか?
私の最後の質問は、これを実装するための最良のアプローチは何か、この種のクエリを作成する方法は?
皆様からのアドバイスを頂きたいのですが、
どんな助けでも大歓迎です!
どうもありがとう、
乾杯