Я успешно установил соединение ldap. Как ехать:
1.У меня есть Python v 3.7.2
2.Установите python-ldap: для этого я попытался " pip установить python-ldap ", но это не сработало
для меня на машине windows, поэтому я использую альтернативу ниже.
3.Для установки ldap перейдите сюда: https://www.lfd.uci.edu/~gohlke/pythonlibs/#python-ldap
и загрузите python_ldap ‑ 3.1.0 ‑ cp37 ‑ cp37m ‑ win_amd64.whl
4. Теперь перейдите в каталог загрузки и запустите " pip install
python_ldap ‑ 3.1.0 ‑ cp37 ‑ cp37m ‑ win_amd64.whl"
- Теперь откройте оболочку Python и проверьте «import ldap», если вы не получили ошибку, значит, все готово.
Это пример кода:
#Resource of code :https://gist.github.com/ibeex/1288159
import ldap
def check_credentials(username, password):
"""Verifies credentials for username and password.
Returns None on success or a string describing the error on failure
# Adapt to your needs
"""
LDAP_SERVER = 'xxx'
# fully qualified AD user name
LDAP_USERNAME = '%s@spi.com' % username
# your password
LDAP_PASSWORD = password
base_dn = 'DC=spi,DC=com'
ldap_filter = 'userPrincipalName=%s@spi.com' % username
attrs = ['memberOf']
try:
# build a client
ldap_client = ldap.initialize(LDAP_SERVER)
# perform a synchronous bind
ldap_client.set_option(ldap.OPT_REFERRALS,0)
ldap_client.simple_bind_s(LDAP_USERNAME, LDAP_PASSWORD)
except ldap.INVALID_CREDENTIALS:
#print("wron")
ldap_client.unbind()
return 'Wrong username or password'
except ldap.SERVER_DOWN:
#print("down")
return 'AD server not awailable'
# all is well
# get all user groups and store it in cerrypy session for future use
ab = str(ldap_client.search_s(base_dn,
ldap.SCOPE_SUBTREE, ldap_filter, attrs)[0][1]['memberOf'])
#print("ab"+ab)
ldap_client.unbind()
return 'success'
if __name__ == "__main__":
u="chirag"
p="secred"
print(check_credentials(u,p))