您好,我正在创建 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 不允许使用 input 功能或任何交互式功能。
答案 0 :(得分: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")