Сделайте запрос AD / LDAP без сохранения имени пользователя / пароля в виде открытого текста - PullRequest
3 голосов
/ 21 марта 2019

Привет! Я создаю среду 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 или что-либо интерактивное.

1 Ответ

1 голос
/ 21 марта 2019

Вы можете использовать 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")
...