Ich versuche, Active Directory-Benutzer zu finden, sind:Unicode Base64-Werte in einem LDAP-Filter
memberOf:: Q049RG9tw6RuZW4tQWRtaW5zLENOPVVzZXJzLERDPWVsZW1lbnRzLERDPWludGVybg=
=
(diese base64 steht für CN=Domänen-Admins,CN=Users,DC=elements,DC=intern
)
für sie suche direkt (via API oder ldapsearch) ergibt kein Ergebnis (da es eine Unicode-DN) ist:
ldapsearch -h ... -D [email protected] -x -w '...' -b dc=elements,dc=intern '(memberof=CN=Domänen-Benutzer,CN=Users,DC=elements,DC=intern)'
Nach Filter funktionieren nicht entweder:
(memberof=Q049RG9tw6RuZW4tQWRtaW5zLENOPVVzZXJzLERDPWVsZW1lbnRzLERDPWludGVybg=)
(memberof=:Q049RG9tw6RuZW4tQWRtaW5zLENOPVVzZXJzLERDPWVsZW1lbnRzLERDPWludGVybg=)
(memberof=::Q049RG9tw6RuZW4tQWRtaW5zLENOPVVzZXJzLERDPWVsZW1lbnRzLERDPWludGVybg=)
Ich kann keine Dokumentation finden, außer für RFC Angabe Base64-Codierung in LDIF-Dateien.
UPDATE die oben ldapsearch-Befehle nur für Bequemlichkeit, es doesn‘arbeitet mit LDAP-API entweder - mit:
ldap.search_s('dc=elements,dc=intern', ldap.SCOPE_SUBTREE, filter, ['cn'])
mit Filter:
filter='(memberof=CN=Domänen-Benutzer,CN=Users,DC=elements,DC=intern)'.encode('utf-8') # raw UTF
filter='(memberof=CN=Domänen-Benutzer,CN=Users,DC=elements,DC=intern)'.encode('cp1252') # raw 1252
filter=b'(memberof=CN=Dom\\e4nen-Benutzer,CN=Users,DC=elements,DC=intern)' # hex
filter=b'(memberof=CN=Dom\\xe4nen-Benutzer,CN=Users,DC=elements,DC=intern)' # python repr
Ich habe auch mit bestätigter Wireshark, dass der Filter tatsächlich in UTF8 übertragen wird
Bitte beachten Sie die aktualisierte Frage. AD gibt keine Ergebnisse für einen "normalen" Filter mit Unicode-Zeichen zurück. Hex hilft nicht. –