Я использую функцию ldap_get_values_len()
для получения двоичных данных для атрибута Windows objectSid
, который является частью пользовательских данных в AD DS. Мне нужно преобразовать Windows SID в Unix номер UID для проверки подлинности.
Я понимаю, что формат SID состоит в том, что последние 4 байта его являются RID, который отличается для каждого пользователя / группы в домене. План состоит в том, чтобы просто извлечь эти последние 4 байта, преобразовать их из младшего порядка в исходный порядок байтов хоста и использовать значение для номера UID.
Итак, предположим, что я всегда использую AD DS, а не AD LDS (который имеет другой формат SID / RID). Кто-нибудь может подсказать причину, по которой это не всегда работает, или какие-либо другие проблемы, о которых я не задумывался?