Python 3 と ldap3 を使用して、LDAP 経由で Active Directory にユーザーを追加しようとしています。
現在、動作して true を返す次のコード行があります。
conn.add('cn=' + uid + ',cn=Users,dc=example,dc=com', 'user', {'sAMAccountName': uid, 'userPrincipalName': uid,'givenName': fname, 'sn': sname, 'displayName': name, 'mail': uid + '@example.com'})
これが行うことは、指定されたパラメーターでユーザーを作成するだけです-素晴らしいです。
member
次に、作成しているユーザーをグループに割り当てたいと思ったので、属性リストに次を追加しました (の代わりにも試しましたmemberOf
)。
'memberOf': ['cn=My Group,cn=Users,dc=example,dc=com']
しかし、これは false を返し、ユーザーをまったく作成しません。
何か間違ったことをしたと思ったので削除memberOf
し、最初のコードを再度実行してユーザーを再作成しました。Windows Server で Active Directory ユーザーとコンピューター ツールを使用して、手動でグループをユーザーに追加しました。IDLEを開き、接続をセットアップして、これを実行しました(簡潔にするために出力をカットしています):
>>> conn.search('dc=example,dc=com', '(objectclass=person)', attributes=['memberOf'])
>>> conn.entries
[...
, DN: CN=username,CN=Users,DC=example,DC=com - STATUS: Read - READ TIME: <snip>
memberOf: CN=My Group,CN=Users,DC=example,DC=com
]
大文字以外のものは、CN
まさにDC
私が持っていたものでした。私は私のものを大文字にしようとしましたが、それでもうまくいきません。私はすべてを正しくやっていると思っていたので、これは本当に私を困惑させました。私は過去1〜2時間、グーグルで頭を悩ませていました。
tl;dr を使用して作成時に AD ユーザーに AD グループを割り当てる方法Connection.add()