次のクエリを使用して、各ユーザーがメンバーであるグループを見つけます。
(&(objectClass=group)(|(member=cn=UID,OU=ServiceAccounts,OU=MC,DC=ads,DC=myCompany,DC=com,DC=au)(member=cn=UID,OU=BTLY,OU=Sites,OU=MC,DC=ads,DC=myCompany,DC=com,DC=au)))
このクエリは、次のベース DN を使用して機能し、実行されます。
OU=MC,DC=ads,DC=myCompany,DC=com,DC=au
クエリにはいくつか問題があります。
- OR 演算子を使用してサービス アカウント ユーザーと BTLY ユーザーを検索する必要はありません。
- BTLY サイトをハードコーディングしたくありません。他にもあります。
理想的には、クエリを次のようにしたいだけです。
(&(objectClass=group)(|(member=cn=UID,OU=MC,DC=ads,DC=myCompany,DC=com,DC=au))
このように、ユーザー アカウントがサービス アカウントであるかどうかや、アカウントがどのサイトに属しているかは気にしません。残念ながら、そのクエリは機能しません。
誰かが LDAP クエリを一般化するのを手伝ってくれませんか? 私は少し初心者なので、完全に明白な何かを見落としている可能性が高いです!
ありがとう!
返信いただきありがとうございます。あなたの言ったことは理にかなっていますが、残念ながら私には役に立ちません。GlassFish (Java アプリケーション サーバー) を使用しており、ローカル AD サーバーを指すように構成されています。通常、GlassFish にユーザーを取得する方法を伝えることができます。
(&(objectCategory=user)(CN=UID))
GlassFish はすべてのグループを取得します (おそらくmemberOf
属性を使用して)。
今回は、別のユーザー ディレクトリをホストする別の AD サーバーを使用しています。GlassFish はそれ自体でグループを取得できません。そのため、GlassFish にカスタム クエリを指定してグループを検索できるフィールドがあります。このフィールドには、投稿したクエリを入力しましたが、これは機能しますが、見苦しく冗長です。
私ができるようになりたいのは:
(&(objectClass=group)(member=cn=UID))
しかし、これは機能しません。
とにかくこれを行うことはありますか?
ありがとう、ミュール。