python ldap3 使い方

Python
本ページはプロモーションが含まれています

はじめに

今回はpythonのldap3の使い方についてです。
ADサーバに対してldap3を使ってアクセスする必要がありその方法を備忘録として残します。
極力環境構築などは簡潔にするようにしているので、これからldap3を使う方は参考にしていただければと思います。

pythonのldap3の使い方

pythonのldap3の使い方について見ていきます。
まずはADサーバやpython-ldap3の概要について触れ、その後実際の使い方について書いてあります。

Active Directory (AD) サーバについて

Active Directory (AD) は、Microsoftが開発したディレクトリサービスで、ネットワーク上のオブジェクト(ユーザー、コンピュータ、プリンタ等)を一元的に管理するためのシステムです。情報を階層的に格納し、検索や管理を容易にすることができます。

Python-ldap3のインストール

PythonでActive Directoryにアクセスするためには、LDAP (Lightweight Directory Access Protocol) を使って通信を行います。PythonでLDAPを扱うためのライブラリとして、ldap3があります。

インストールはpipを使用して簡単に行うことができます:

pip install ldap3

環境構築例

ここでは、Pythonとldap3ライブラリを使用して、Active Directoryサーバーへの接続を行う環境を構築します。

環境構築の手順と前提は次の通りとします

  1. Active Directoryサーバのセットアップ:適切に設定されたActive Directoryサーバが必要です。詳細なセットアップ手順は、ADの設定が複雑で具体的な目的によって変わるため、ここでは省略します。Active DirectoryサーバのIPアドレスやドメイン、必要なユーザー名やパスワードなどの情報を把握しておく必要があります。
  2. Pythonとldap3のインストール:上記のpip install ldap3コマンドでPythonの環境にldap3をインストールします。

これらの設定が完了すると、PythonスクリプトからActive Directoryサーバに接続し、情報を取得したり操作したりすることができます。

今回の例としてADサーバは次のようになっているとします。

Root
  |
  +-- com (ドメインコンポーネント、dc=com)
      |
      +-- example (ドメインコンポーネント、dc=example)
          |
          +-- Users (組織単位、ou=Users)
              |
              +-- John Doe (共通名、cn=John Doe)

サンプルプログラムはは example.com というドメインにある Users というOUの中にある John Doe という名前のユーザを検索する例です。

注意点として、接続する際のユーザ名やパスワード、検索する際の検索基準やフィルタなどは実際の環境に合わせて変更する必要があります。

また、Active Directoryの階層構造や名前(CN、OU、DCなど)は環境によって異なるため、実際の操作前には適切な情報を確認する必要があります。

from ldap3 import Server, Connection, ALL

# LDAPサーバの定義
server = Server('your_ldap_server', get_info=ALL)

# 接続の設定
conn = Connection(server, 'cn=admin,dc=example,dc=com', 'password')

# 接続の確立
conn.bind()

# Users(組織単位、ou=Users)内のJohn Doe(共通名、cn=John Doe)を検索
conn.search('ou=Users,dc=example,dc=com', '(cn=John Doe)')

# 検索結果を表示
for entry in conn.entries:
    print(entry)

ドメイン名などは「Active Directoryユーザとコンピュータ」から確認できます。

さいごに

今回はpythonのldap3の使い方についてでした。
ドメインなどのフォルダ構成とソースコードの対応関係されわかれば(今回は検索としていますが)新規や変更や削除も簡単に行えると思います。

この記事がお役に立ったのなら嬉しいです。
最後までお読みいただきありがとうございます。

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました