我想在这里分享手动操作的例子。
我已经通过使用 ldap3 进行 ldap 连接绑定创建了用户和广告组。 我可以看到 ldap3 支持自动化管理用户和组等用例。但我想要在这里有所不同。
我们可以通过使用 ldap3 为用户/组分配权限(读/写/删除)来共享文件/目录吗? 如果是,那么我们如何才能实现这一目标?
现在,我通过手动更改安全设置来手动创建文件并与广告组共享,但希望采用 pythonic 方式来实现完全自动化。
任何在同样方面的支持都将受到赞赏。
我试图找到相关文档,但没有任何帮助。 https://ldap3.readthedocs.io/en/latest/
这是使用
ldap3
并使用 SSL
和 TLS
连接到 AD 的示例。 ldap3 中有内置方法可以准确完成您想要做的事情:
from ssl import CERT_REQUIRED
from ldap3 import Server, Connection, ALL, Tls
from ldap3.extend.microsoft.addMembersToGroups import ad_add_members_to_groups
from ldap3.extend.microsoft.removeMembersFromGroups import ad_remove_members_from_groups
users_dn: list[str] = ["CN=Jack Jackson,OU=FOLDER,OU=PATH,OU=IN_YOUR_AD,DC=AD_NAME,DC=AD_EXTENSION"] # CNs of users to add AD security groups to
groups_dn: list[str] = ["CN=Security_group_name,OU=FOLDER,OU=PATH,OU=IN_YOUR_AD,DC=AD_NAME,DC=AD_EXTENSION"] # CNs of AD security groups to add to users in users_dn list
username: str = "ad username"
password: str = "ad password"
server_uri: str = f"ldaps://server.name"
tls_config = Tls(validate=CERT_REQUIRED) # if needed
server = Server(server_uri, port=636, use_ssl=True, tls=tls_config, get_info=ALL) # this example features SSL over TLS
with Connection(server, username, password, auto_bind=True) as conn: # Create connection
conn.start_tls() # Start TLS auth
# Add groups to users
ad_add_members_to_groups(connection=conn,members_dn=users_dn,groups_dn=groups_dn,fix=True) # fix: checks for group existence and already assigned members
# Remove groups from users
ad_remove_members_from_groups(connection=conn,members_dn=users_dn,groups_dn=groups_dn,fix=True)
基本上就是这样。如果您想在添加/删除组失败时引发错误,可以将
raise_error
和 ad_add
中的 ad_remove
设置为 True。描述如下: raise_error:如果操作失败,则会引发错误而不是返回 False