« デジキャパ! 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


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

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