Python + LDAP を使用して AD に対して認証するにはどうすればよいですか。私は現在 python-ldap ライブラリを使用していますが、それが生成しているのは涙だけです。
簡単なクエリを実行するためにバインドすることさえできません。
import sys
import ldap
Server = "ldap://my-ldap-server"
DN, Secret, un = sys.argv[1:4]
Base = "dc=mydomain,dc=co,dc=uk"
Scope = ldap.SCOPE_SUBTREE
Filter = "(&(objectClass=user)(sAMAccountName="+un+"))"
Attrs = ["displayName"]
l = ldap.initialize(Server)
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
sys.exit()
これを実行するとmyusername@mydomain.co.uk password username
、次の 2 つのエラーのいずれかが表示されます。
Invalid Credentials
- 間違った資格情報を入力したり、意図的に間違った資格情報を使用したりすると、認証に失敗します。
ldap.INVALID_CREDENTIALS: {'info': '80090308: LdapErr: DSID-0C090334、コメント: AcceptSecurityContext エラー、データ 52e、vece'、'desc': '無効な認証情報'}
または
ldap.OPERATIONS_ERROR: {'info': '00000000: LdapErr: DSID-0C090627, コメント: この操作を実行するには、接続で正常にバインドする必要があります., データ 0, vece', 'desc': '操作エラー'}
適切にバインドするために何が欠けていますか?
Fedora と Windows で同じエラーが発生します。