Я ищу базовый сценарий ldap, который проверяет, является ли Active Directory комбинацией пользователя и пароля.
Я упоминаю, что аутентификация в LDAP выполняется с использованием другой учетной записи, отличной от проверяемой.
Вот мой неполный сценарий:
#!/usr/bin/env python
import ldap
import sys
Server = "ldap://pdc01.example.com"
DN = "EXAMPLE\username"
Secret = "pass"
un = "john"
un_password = "hispass"
Base = "dc=example,dc=com"
Scope = ldap.SCOPE_SUBTREE
Filter = "(&(objectClass=user)(sAMAccountName="+un+"))"
Attrs = ["displayName"]
l = ldap.initialize(Server)
l.set_option(ldap.OPT_REFERRALS, 0)
l.protocol_version = 3
print l.simple_bind_s(DN, Secret)
r = l.search(Base, Scope, Filter, Attrs)
Type,user = l.result(r,60)
Name,Attrs = user[0]
if hasattr(Attrs, 'has_key') and Attrs.has_key('displayName'):
displayName = Attrs['displayName'][0]
print displayName
# TODO: I get `john`'s Username but how to check his password ?
l.unbind()