2016-04-20 21 views
0

朝、私のproyectにDjangoの認証にLDAPを実装するDjangoの認証はLDAP

- 私にはユーザーアカウントを見つけていないが、それは動作しません。私はldap接続(Djangoシェルによる)をチェックし、検索を返します。だから、python-ldapが動作していると思います。私は、次を使用:

import ldap 
con = ldap.initialize("ldap://hostname") 
con.simple_bind_s("CN=MyName MySurname, CN=Users, DC=CompanyName, DC=local", "MyPassword") 
con.search_s('DC=CompanyName, DC=local', ldap.SCOPE_SUBTREE, '(objectclass=person)', ['sn']) 

私は(ジャンゴ-AUTH-LDAPを使用)は、Webでユーザーを認証しようとすると、認証は常にNoneを返します。私の見解では

Settings. (LDAP Configuration). 
AUTH_LDAP_SERVER_URI = "ldap://hostname" 
AUTH_LDAP_BIND_DN = "CN=MyName MySurname, CN=Users, DC=CompanyName, DC=local" 
AUTH_LDAP_BIND_PASSWORD = "MyPassword" 
AUTH_LDAP_USER_SEARCH = LDAPSearch("CN=Users, DC=CompanyName, DC=local", ldap.SCOPE_SUBTREE, "(uid=%(user)s)") 
AUTH_LDAP_CONNECTION_OPTIONS = { 
    ldap.OPT_REFERRALS: False 
} 

from django_auth_ldap.backend import LDAPBackend 
View. 
def Login(request): 
usr = "MyUserName" 
pwd = "MyPassword" 

    if request.method == 'POST': 
     ldap_backend = LDAPBackend() 
     user = ldap_backend.authenticate(usr, pwd) 
     print user 
     print usr, pwd 

、 - 私は私がドメインにログインするために使用されるLDAP認証私のユーザー名とパスワードを渡します。あれは正しいですか? DSQUERYユーザー

これは、ADスキーマです: AD Structure

私が間違っているのは何 は、私は一種のディレクトリアクティブサーバーでのコマンドからの値"CN=MyName MySurname, CN=Users, DC=CompanyName, DC=local"を得ましたか。

ありがとうございます。

EDITED:私はAUTH_LDAP_USER_SEARCH =のldapsearch(、ldap.SCOPE_SUBTREE、「(CN =% "CNユーザー、DC =会社名、DC =ローカルを=" としてそれを定義した場合、私は、UID throug検索を定義するときに問題があります(ユーザ)))が働いています(そして、私はusr = "MyNameMySurname"として渡す必要があります)。ログインに使用したユーザー名で検索を定義するにはどうすればよいですか。

答えて

0

最後に、CNの代わりにsamAccountNameを使用する必要があります。それが皆さんを助けることを願っています。みんなありがとう。