laps_password – Извлечение пароля LAPS для сервера
Новое в версии 2.8.
Обзор
- Этот поиск возвращает пароль LAPS, заданный для сервера из базы данных Active Directory.
- См. https://github.com/jborean93/ansible-lookup-laps_password для получения дополнительной информации об установке предварительных требований и тестировании.
Требования
Ниже приведены требования, необходимые на локальном узле-мастере, на котором выполняется этот поиск.
- python-ldap
Параметры
| Параметр | Варианты/Значения по умолчанию | Конфигурация | Комментарии |
|---|---|---|---|
| _terms строка / обязательно | Имя хоста для извлечения пароля LAPS. Это Common Name (CN) хоста. | ||
| allow_plaintext логическое |
| При установке значения yes, разрешит отправку трафика без шифрования.Сильно рекомендуется не изменять это значение, чтобы избежать раскрытия учетных данных в сети. Используйте scheme=ldaps, auth=gssapi, или start_tls=yes для обеспечения шифрования трафика. | |
| auth строка |
| Тип аутентификации для подключения к серверу Active Directory При использовании simple, необходимо установить параметры username и password. Если не использовать scheme=ldaps или start_tls=True, то эти учетные данные будут переданы в открытом виде в сетевом трафике.Рекомендуется использовать gssapi, так как это автоматически зашифрует трафик.При использовании gssapi, выполните kinit перед запуском Ansible, чтобы получить действительный кероберовский билет.Нельзя использовать gssapi, когда установлен scheme=ldaps или start_tls=True. | |
| ca_cert строка | Путь к файлу сертификата CA в формате PEM для проверки сертификатов. Проверка сертификатов используется, когда scheme=ldaps или start_tls=yes. Это может привести к ошибкам на хостах со старой установкой OpenLDAP, например, MacOS. Необходимо обновить OpenLDAP перед переустановкой python-ldap для устранения неполадок. псевдонимы: cacert_file | ||
| domain строка / обязательно | Домен для поиска пароля LAPS. Это может быть имя домена Windows, видимое контроллеру Ansible из DNS, или полное доменное имя конкретного контроллера домена. Поддерживает имя домена/хоста или явную LDAP-URI с заполненным домен/хост. Если задана URI, параметры port и scheme игнорируются. | ||
| password строка | Пароль для username. Необходим, когда установлен username. | ||
| port целое число | Порт LDAP для связи. Если kdc уже является LDAP-URI, то этот параметр игнорируется. | ||
| scheme - |
| Схема LDAP для использования. При использовании ldap, рекомендуется установить auth=gssapi, или start_tls=yes, в противном случае трафик будет в открытом виде.Хост Active Directory должен быть настроен на ldaps с сертификатом, прежде чем его можно будет использовать.Если kdc уже является LDAP-URI, то этот параметр игнорируется. | |
| search_base строка | Изменяет базу поиска, используемую при поиске хоста в Active Directory. По умолчанию ищет в defaultNamingContext сервера Active Directory.Если найдено несколько совпадений, требуется более явная search_base, чтобы найти только один хост. Если ищется большая база данных Active Directory, рекомендуется сузить search_base для повышения производительности. | ||
| start_tls логическое |
| При scheme=ldap, будет использоваться расширение StartTLS для шифрования трафика, отправляемого по сети.Это требует настройки Active Directory с сертификатом, поддерживающим StartTLS. Этот параметр игнорируется, если scheme=ldaps, поскольку трафик уже зашифрован. | |
| username строка | Требуется при использовании auth=simple. Имя пользователя для аутентификации. Рекомендуется использовать имя пользователя в формате UPN, например username@DOMAIN.COM. Требуется, когда auth=simple, и не поддерживается, когда auth=gssapi.Вызовите kinit вне Ansible, если auth=gssapi необходимо. | ||
| validate_certs строка |
| При использовании scheme=ldaps или start_tls=yes, это управляет поведением проверки сертификатов.demand приведет к ошибке, если не предоставлен сертификат или предоставлен неверный сертификат.try приведет к ошибке для неверных сертификатов, но продолжит выполнение, если сертификат не предоставлен.allow запросит и проверит сертификат, но продолжит выполнение даже если он неверен.never не запросит сертификат от сервера, поэтому проверка не выполняется. |
Примечания
Примечание
- Если хост был найден, но у него отсутствовал атрибут пароля LAPS
ms-Mcs-AdmPwd, поиск завершится ошибкой. - В связи с конфиденциальностью данных, передаваемых по сети, настоятельно рекомендуется использовать
auth=gssapi,scheme=ldaps, илиstart_tls=yes. - Отказ от использования одного из вышеперечисленных параметров приведет к передаче учетных данных пользователя и пароля LAPS в открытом виде.
- В некоторых случаях это может не сработать на хосте со старой установкой OpenLDAP, например, на MacOS. Рекомендуется установить последнюю версию OpenLDAP и скомпилировать python-ldap на её основе. См. https://keathmilligan.net/python-ldap-and-macos/ для получения дополнительной информации.
Примеры
# This isn't mandatory but it is a way to call kinit from within Ansible before calling the lookup
- name: call kinit to retrieve Kerberos token
expect:
command: kinit username@ANSIBLE.COM
responses:
(?i)password: SecretPass1
no_log: True
- name: Get the LAPS password using Kerberos auth, relies on kinit already being called
set_fact:
ansible_password: "{{ lookup('laps_password', 'SERVER', domain='dc01.ansible.com') }}"
- name: Specific the domain host using an explicit LDAP URI
set_fact:
ansible_password: "{{ lookup('laps_password', 'SERVER', domain='ldap://ansible.com:389') }}"
- name: Use Simple auth over LDAPS
set_fact:
ansible_password: "{{ lookup('laps_password', 'server',
domain='dc01.ansible.com',
auth='simple',
scheme='ldaps',
username='username@ANSIBLE.COM',
password='SuperSecret123') }}"
- name: Use Simple auth with LDAP and StartTLS
set_fact:
ansible_password: "{{ lookup('laps_password', 'app01',
domain='dc01.ansible.com',
auth='simple',
start_tls=True,
username='username@ANSIBLE.COM',
password='SuperSecret123') }}"
- name: Narrow down the search base to a an OU
set_fact:
ansible_password: "{{ lookup('laps_password', 'sql10',
domain='dc01.ansible.com',
search_base='OU=Databases,DC=ansible,DC=com') }}"
- name: Set certificate file to use when validating the TLS certificate
set_fact:
ansible_password: "{{ lookup('laps_password', 'windows-pc',
domain='dc01.ansible.com',
start_tls=True,
ca_cert='/usr/local/share/certs/ad.pem') }}"
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для этого поиска:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| _raw строка | Пароль(и) LAPS для запрошенного(ых) хоста(ов). |
Статус
- Этот поиск не гарантирует обратную совместимость интерфейса. [предварительная версия]
- Этот поиск поддерживается сообществом Ansible. [сообщество]
Авторы
- Jordan Borean (@jborean93)
Подсказка
Если вы обнаружите какие-либо проблемы в этом руководстве, вы можете отредактировать этот документ для его улучшения.
Подсказка
Параметры конфигурации для каждого типа имеют порядок приоритета «низкий-высокий». Например, переменная, расположенная ниже в списке, переопределит переменную, расположенную выше.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/plugins/lookup/laps_password.html