如何添加 AD 组权限以使用 ldap3 或任何其他 python 库访问文件(共享路径访问)?

问题描述 投票:0回答:1

我想在这里分享手动操作的例子。

我已经通过使用 ldap3 进行 ldap 连接绑定创建了用户和广告组。 我可以看到 ldap3 支持自动化管理用户和组等用例。但我想要在这里有所不同。

我们可以通过使用 ldap3 为用户/组分配权限(读/写/删除)来共享文件/目录吗? 如果是,那么我们如何才能实现这一目标?

现在,我通过手动更改安全设置来手动创建文件并与广告组共享,但希望采用 pythonic 方式来实现完全自动化。

任何在同样方面的支持都将受到赞赏。

我试图找到相关文档,但没有任何帮助。 https://ldap3.readthedocs.io/en/latest/

python active-directory ldap-query ldap3 activedirectorymembership
1个回答
0
投票

这是使用

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

© www.soinside.com 2019 - 2024. All rights reserved.