Могу ли я использовать JWSCL, чтобы проверить, имеет ли текущий пользователь конкретное расширенное право на объект Active Directory?
[Это немного более конкретная версия вопроса, который я уже задавал здесь: как запросить действующие разрешения для объекта Active Directory? - Надеюсь, ответы, которые я получу здесь, помогут мне лучше понять и оценить ответ, который я получил там.]
В частности, в настоящее время я ищу способ проверить, имеет ли текущий пользователь разрешение Exchange "Отправить как" (это так называемое "расширенное право") для данного объекта Active Directory, такого как другой пользователь (т.е. почтовый ящик), общая папка с включенной поддержкой почты или список рассылки. Важно, чтобы разрешения, предоставляемые (или запрещенные) косвенно через членство в группах, также учитывались. В среднесрочной и долгосрочной перспективе я бы очень хотел узнать больше о модели безопасности Windows и ее API. Эта задача - моя отправная точка.
Исследуя, как лучше всего реализовать некоторые из доступных примеров C++ в Delphi, я наткнулся на JWSCL (JEDI Windows Security Code Library). Но даже несмотря на то, что, похоже, в последнее время были добавлены некоторые коды, связанные с AD, в нескольких документах в блоге JWSCL и вики все еще отмечается, что "поддержка Active Directory" еще не добавлена.
Однако, может быть, это просто проблема устаревшей документации? И даже если нет, действительно ли мне это нужно для этой конкретной задачи? Я уже могу получить SECURITY_DESCRIPTOR
атрибут объектов, которые я хочу проверить с помощью IDirectoryObject.GetAttributes
, Как только я получу эту SD-карту, будет ли иметь значение, что я проверяю разрешения для объекта AD? Не могу ли я просто использовать это с кодом, который уже существует, несмотря на предположительно отсутствующую поддержку AD?
Если так, то как?
Я уже пытался изменить GetEffectiveRightsFromAclWithAuthZ
пример, который поставляется с JWSCL, но я уже не могу создать TJwSecurityDescriptor
объект из моего PSECURITY_DESCRIPTOR
указатель. Просто передав его TJwSecurityDescriptor.Create()
терпит неудачу с EJwsclInvalidSIDException
,
Есть идеи? Я даже удаленно на правильном пути?