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 для получения действительного Kerberos-тикета.Нельзя использовать 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, или полное доменное имя (FQDN) конкретного контроллера домена. Поддерживается как имя домена/хоста, так и явный 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, для повышения производительности рекомендуется сузить базу поиска. | ||
| 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.9/plugins/lookup/laps_password.html