« デジキャパ! 8月号 | Main | @niftyポイントが・・・ »

2010.08.03

PythonでLDAPにアクセス

PythonでLDAPにアクセスする方法。

【事前準備】
LDAP client API for Pythonで公開されているLDAPアクセス用のモジュールをダウンロード。具体的にはここから、ソースコードをダウンロード(これを書いている時点では python-ldap-2.3.11.tar.gz )。
ダウンロードしてきたアーカイブファイルを展開すると、setup.pyが入っているので、

python setup.py install

でインストール。

※標準でインストールされているPythonとは別のバージョンのものを手動でインストールしているので、yumではなくソースコードからインストールしています。

【検索してみる】

import ldap

host = "localhost"
baseDN = "dc=example,dc=co,dc=jp"
searchFilter = "(&(cn=testuser)(userPassword=password))"

try:
    l = ldap.open(host)
    l.protocol_version = ldap.VERSION3
except ldap.LDAPError, e:
    print e

searchScope = ldap.SCOPE_SUBTREE
retrieveAttributes = None

try:
    ldap_result_id = l.search(baseDN, searchScope, searchFilter, retrieveAttributes)
    result_set = []
    while 1:
        result_type, result_data = l.result(ldap_result_id, 0)
        if (result_data == []):
            break
        else:
            if result_type == ldap.RES_SEARCH_ENTRY:
                result_set.append(result_data)
    if len(result_set) == 0:
        print "No Results."

    for each in result_set:
        print "dn:%s" % each[0][0]

except ldap.LDAPError, error_message:
    print error_message

かなり手抜きなソースです(^^;
ユーザーが入力したID/PWに対応するエントリーがLDAPに登録されているかどうかをチェックすることが出来ます。

参考:
python-ldapで、ldap searchする方法
python-ldap sample code

ポチッとよろしく!

|

« デジキャパ! 8月号 | Main | @niftyポイントが・・・ »

Linux」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/3959/49027234

Listed below are links to weblogs that reference PythonでLDAPにアクセス:

« デジキャパ! 8月号 | Main | @niftyポイントが・・・ »