Windows Server の Active Directory からすべてのユーザー情報 (名、姓、電子メール) を取得したいと考えています。だから私はldap3(python)を使用しており、管理者ログで(HyperV Windows Server 2022を使用して)サーバーへの接続に成功しています:
from ldap3 import Server, Connection, ALL, NTLM, SAFE_SYNC
server = Server('ldap://172.28.63.240', get_info=ALL)
conn = Connection(server, user="TESTJER\Administrator",
password="my_admin_password",client_strategy=SAFE_SYNC, auto_bind=True)
status, result, response, _ = conn.search('OU=Users2,DC=testjer,DC=local',
'(givenName=*)')
print(response)
しかし、将来的には複数の異なるサーバーに接続する必要があるため、すべてのクライアントのサーバーのすべてを表示するために管理者アカウントを持つことはできないと思います (そして、それはおそらく悪い考えです)?
そこで、AD LDS をインストールし、インスタンス名、説明、ポートなどを選択して、インスタンスを初期化しようとしました...
しかし、ポートを指定してpythonに接続することはできません。ポートを指定しないと接続できるため、インスタンスが役に立たないことを意味します。
ldap3.core.exceptions.LDAPBindError: 自動バインドが失敗しました - invalidCredentials
ユーザー情報のみを表示し、他には何も表示しないインスタンスをインストールする必要がありますか? どのように?
インスタンスを作成するために私がしたこと:
ここで、何を書けばいいのかさっぱりわからなかったのですが、OU=Users2 というのは、Users2 だけを取得するという意味だと思います。これは私が欲しいものです。私のユーザーは次のとおりです。
そしてここで、とにかくユーザーを pu にする必要があることがわかったので、実際に管理者アカウントを設定する選択肢はありませんが、将来的にはすべてのクライアントが私のためにアカウントを作成する必要があります。
最後に、ここで「MS-User.LDF」を選択する必要があったと思います。
from ldap3 import Server, Connection, ALL, NTLM, SAFE_SYNC
server = Server('ldap://172.28.63.240', port=50001, get_info=ALL)
conn = Connection(server, user="TESTJER\Administrator",
password="my_admin_password",client_strategy=SAFE_SYNC, auto_bind=True)
status, result, response, _ = conn.search('OU=Users2,DC=testjer,DC=local',
'(givenName=*)')
print(response)