Как обнаружить и предотвратить циклические ссылки в Unboundid LDAP SDK для java? - PullRequest
2 голосов
/ 20 марта 2020

Я использую Unboundid LDAP SDK для java для подключения к AD и выполнения операций над AD.

У меня есть вложенные назначения группы в группе.

Например, например:

Группа-1 имеет члена Группа-2 .

Группа-2 имеет члена Группа-3 .

Теперь возможно, что Group-3 имеет члена Group-1 . Это приведет к бесконечному l oop из-за круговой ссылки.

Кроме того, у меня есть n уровень глубины в AD для вложенных членов, поэтому я не уверен, как определить круговую ссылку при создании члена группы в другой группе.

Я сделал несколько изучил Google, чтобы найти решение, и наткнулся на эту вещь:

clientL oop (96) Код результата clientL oop указывает, что клиент обнаружил какой-то тип l oop при обработке результатов с сервера. Это обычно применяется, когда клиент пытается следовать рефералу (или ссылке на результат поиска) и встречает реферальный URL, которому он уже пытался следовать.

Loop_DETECT (54) Код результата (54), который будет использоваться, если сервер обнаруживает цепочку или псевдоним l oop.

Ссылка: https://docs.ldap.com/ldap-sdk/docs/javadoc/com/unboundid/ldap/sdk/ResultCode.html#LOOP_DETECT

Таким образом, это означает, что это возможно и существует способ в Unboundid ldap sdk для обнаружения циклических ссылок. Но я пока не могу найти пример кода или решения для этого.

Как обнаружить и предотвратить циклические ссылки в таких случаях, используя Unboundid LDAP SDK для java?

Примечание: Это НЕ a дубликат существующих связанных вопросов , потому что я ищу ответ / решение только в контексте Unboundid ldap sdk. Не в каком-то сценарии PowerShell. Другие подобные вопросы еще не получили ответа, связанные с Unboundid ldap sdk .

1 Ответ

1 голос
/ 23 марта 2020

Возможно, вы захотите попробовать (решение Active Directory c) использования функции LDAP_MATCHING_RULE_IN_CHAIN, если это удовлетворяет вашим потребностям и позволяет избежать этого в целом, см., Например:

Безопасно ли использовать 1.2.840.113556.1.4.1941 реализация в случае циклических c зависимостей?

См. Полный пример, например:

https://confluence.atlassian.com/crowdkb/active-directory-user-filter-does-not-search-nested-groups-715130424.html

Это также позволяет избежать нескольких вызовов Active Directory, что может повысить производительность (также убедитесь, что используются кэшированные соединения, которые не используются по умолчанию для соединения SSL / TLS).

Если вам также необходимо принять во внимание другие домены в лесу, вы можете подключиться к Глобальному каталогу (открытый текст через порт 3268 или SSL / TLS через 3269)

Длинные волхвы c число - это OIN от Microsoft (часть: https://ldapwiki.com/wiki/1.2.840.113556), которое представляет собой переносимое число c представление имени функции: LDAP_MATCHING_RULE_IN_CHAIN. Это имя функции может быть неизвестно вашему программному обеспечению, но OIN - это то, что действительно передается по проводам в LDAP / Active Directory.

...