2017-01-17 13 views
2

現在私はDjango Pythonで作業しています。私の目的は、Ldapディレクトリからユーザーを認証することです。私はldapディレクトリにアクセスして情報を取得するためのPythonコードを持っています。Django Python - Ldap認証

コード:

import ldap 
try: 
     l = ldap.open("ldap.forumsys.com") 
     l.protocol_version = ldap.VERSION2 
     username = "cn=read-only-admin,dc=example,dc=com" 
     password = "password" 
     l.simple_bind(username,password) 

except ldap.LDAPError,e: 
     print e 

私の疑問は、どのように私は私のジャンゴでこれを実装し、ということでしょうか? 。どのようにこれらのコードをdjangoで使用して実装するのですか?それはほとんど同じである事前

+0

[django-python3-ldap](https://github.com/etianen/django-python3-ldap)を見ましたか? –

答えて

0

おかげで、あなたは(通常はSAMアカウント名)は、LDAPについてのあなたの特定の検索をコーディングする必要があり、あなたがそれをしたいとき、通常は後user'sログインからのコールを提出します。

userDN = "" 
passwordUser = "" 
base_dn = 'node where we start to seach, from your AD structure' 
#attrs = ['description', 'telephoneNumber', 'title', 'mail' , 'lastLogon', 'memberOf', 'accountExpires',] 
attrs = [] 

def myAccount(request): 
    con = ldap.initialize("ldap://ldapserver") 
    con.simple_bind_s(userDN, passwordUser) 
    filter = '(sAMAccountName=' + "loginName" + ')' 
    user = con.search_s(base_dn, ldap.SCOPE_SUBTREE, filter, attrs) 
    con.unbind() 

    userInfoList = [] 
    for key, value in user[0][1].items(): 
     userInfoList += [userInfo(key, value)] 

    return render_to_response('template.html',{'userInfoList':userInfoList, 'dnUser': user[0][0]}, context_instance = RequestContext(request)) 

は、以下のコードでは、特定のテンプレートは、この方法では、我々は、検索を行うためのDNで許可されたユーザにより、LDAPオーバー検索を行うためのLDAP補数を使用し、マイアカウント方法に呼びかけています。その後、この検索で​​得られた情報を回復します。

希望します。あなたが持っている可能性のある疑問は、私に知らせてください:)

+0

ansのおかげで。私は上記の方法でそれを実装しました。しかし、私はデフォルトのDjango-Ldap設定を使って認証を実装したいと思っています。どのようにそれを行うことができますか? –

+0

私が知る限り、Djangoはデフォルトでldap設定をしていません。 django-ldapモジュールをインストールする必要があります。 –

+0

ところで、あなたは私の感情を報いて、私の答えを評価することができますか?ありがとう。 :) –