进行AD / LDAP查询而不将用户名/密码存储为明文

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

嗨,我正在创建Cloudera环境,并希望与其他团队分享。该脚本应该查询我们的Active Directory服务器。但不幸的是,我不想把我的密码/用户名放在脚本中。

from ldap3 import Server, Connection, ALL, NTLM, ALL_ATTRIBUTES, ALL_OPERATIONAL_ATTRIBUTES, AUTO_BIND_NO_TLS, SUBTREE

serverName = 'internal.imsglobal.com'
server = Server(serverName)
conn = Connection(server, read_only=True, user='',password='', auto_bind=True)

person='somebody'

conn.search('dc=internal,dc=mydomain,dc=com', '(&(givenName=*)(sAMAccountName=*{person}*))'.format(person=person), attributes=[ALL_ATTRIBUTES, ALL_OPERATIONAL_ATTRIBUTES])

no_entries = len(conn.entries)

可以做些什么来避免硬编码凭据?不幸的是,Cloudera不允许使用输入功能或任何交互式功能。

python python-3.x active-directory lda ldap-query
1个回答
1
投票

你可以使用dotenv

pip install python-dotenv

创建一个包含键/值的.env文件,如下所示:

USERNAME=foo
PASSWORD=bar

然后加载.env文件并访问值。

dotenv_path = join(dirname(__file__), $location_of_.env_file)
load_dotenv(dotenv_path)

username = os.getenv("USERNAME")
password = os.getenv("PASSWORD")
© www.soinside.com 2019 - 2024. All rights reserved.