community.windows.laps_password – Извлечение пароля LAPS для сервера.
Примечание
Этот плагин входит в состав коллекции community.windows (версия 1.2.0).
Для его установки используйте: ansible-galaxy collection install community.windows.
Для использования в книге задач укажите: community.windows.laps_password.
Описание
- Этот поиск возвращает пароль 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, необходимо установить опции имя пользователя и пароль. Если не использовать scheme=ldaps или start_tls=True, эти учетные данные будут отправлены в открытом виде в сетевом трафике.Рекомендуется использовать gssapi, так как оно автоматически зашифрует трафик.При использовании gssapi, выполните kinit перед запуском Ansible, чтобы получить действительный билет Kerberos.Нельзя использовать gssapi, если установлены scheme=ldaps или start_tls=True. | |
| ca_cert строка | Путь к файлу сертификата УЦ в формате 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 рекомендуется сузить область поиска (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('community.windows.laps_password', 'SERVER', domain='dc01.ansible.com') }}"
- name: Specific the domain host using an explicit LDAP URI
set_fact:
ansible_password: "{{ lookup('community.windows.laps_password', 'SERVER', domain='ldap://ansible.com:389') }}"
- name: Use Simple auth over LDAPS
set_fact:
ansible_password: "{{ lookup('community.windows.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('community.windows.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('community.windows.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('community.windows.laps_password', 'windows-pc',
domain='dc01.ansible.com',
start_tls=True,
ca_cert='/usr/local/share/certs/ad.pem') }}"
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого поиска:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| _raw строка | успешно | Пароль LAPS для запрошенного хоста(ов). |
Авторы
- Jordan Borean (@jborean93)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/windows/laps_password_lookup.html