модуль microsoft.ad.service_account — управление объектами учетных записей служб Active Directory
Примечание
Этот модуль входит в коллекцию microsoft.ad (версия 1.10.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install microsoft.ad. Для работы с этим модулем требуются дополнительные компоненты. Подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: microsoft.ad.service_account.
Добавлено в microsoft.ad 1.7.0
Краткое описание
- Управляет объектами учетных записей служб Active Directory и их атрибутами.
- В настоящее время этот модуль поддерживает только групповые управляемые учетные записи служб (gMSA).
- Перед созданием gMSA в среде AD необходимо создать корневой ключ KDS. Подробности см. в разделе Ключ KDS. Чтобы ключ начал действовать немедленно, задайте время начала действия на 10 часов раньше и не используйте параметр
-EffectiveImmediately. Подробности см. в примерах.
Требования
На узле, выполняющем этот модуль, должны быть установлены следующие компоненты.
-
модуль PowerShell
ActiveDirectory
Параметры
Параметр | Комментарии |
|---|---|
allowed_to_retrieve_password dictionary | Учетные записи субъектов, которым разрешено получать пароль учетной записи службы: их можно добавить, удалить или задать. Значение каждого вложенного ключа представляет собой список значений в виде строки Это значение преобразуется командлетом ActiveDirectory в дескриптор безопасности и задается для атрибута LDAP Соответствует параметру Чтобы удалить все учетные записи субъектов, используйте set с пустым списком. Дополнительные сведения о работе поиска DN см. в разделе Атрибуты поиска DN. Дополнительные сведения о добавлении, удалении и задании значений параметров-списков см. в разделе Задание значений параметров-списков. |
|
add list / elements=any |
Добавляет указанные учетные записи субъектов в список учетных записей, которым разрешено получать пароль учетной записи службы. Все существующие учетные записи субъектов, не указанные в add, останутся без изменений, если они не указаны в remove или отсутствуют в set. |
|
lookup_failure_action string |
Определяет действие при неудачном поиске DN. Значение Значение Значение Варианты:
|
|
remove list / elements=any |
Удаляет указанные учетные записи субъектов из списка учетных записей, которым разрешено получать пароль учетной записи службы. Все существующие учетные записи субъектов, не указанные в remove, останутся без изменений, если задан параметр set. |
|
set list / elements=any |
Задает учетные записи субъектов, которым разрешено получать пароль учетной записи службы. Все существующие учетные записи субъектов, не указанные в этом списке, будут удалены. Укажите пустой список, чтобы удалить все учетные записи субъектов, которым разрешено делегирование. |
attributes dictionary | Атрибуты, которые требуется добавить, удалить или задать для объекта AD. Значение каждого параметра атрибута должно быть словарем, где ключ — это атрибут LDAP, например Значением атрибута может быть исходная строка, целое число или логическое значение, которое нужно добавить, удалить или задать для соответствующего атрибута. Также в качестве значения можно указать словарь с ключом type, которому присвоено значение Тип Тип Тип Тип Строковые значения атрибутов сравниваются с учетом регистра с соответствующими значениями управляемого объекта AD. Дополнительные сведения см. в разделе Справка по атрибутам LDAP. По умолчанию: |
|
add dictionary |
Словарь всех атрибутов и их значений, которые нужно добавить в управляемый объект AD, если их там еще нет. Используется для атрибутов, которые могут содержать несколько значений. Если атрибут допускает только одно значение, используйте вместо этого set. По умолчанию: |
|
remove dictionary |
Словарь всех атрибутов и их значений, которые нужно удалить из управляемого объекта AD, если они там есть. Используется для атрибутов, которые могут содержать несколько значений. Если атрибут допускает только одно значение, используйте вместо этого set. По умолчанию: |
|
set dictionary |
Словарь всех атрибутов и их значений, которые нужно задать для управляемого объекта AD. Все существующие значения будут заменены, если они не совпадают с запрошенными. Порядок значений атрибутов не проверяется; проверяется только то, что запрошенные значения являются единственными значениями атрибута объекта. Задайте значение null или пустой список, чтобы удалить все значения атрибута. По умолчанию: |
delegates псевдонимы: principals_allowed_to_delegate dictionary | Объекты субъектов, которым текущий объект AD может доверять при делегировании: их можно добавить, удалить или задать. Это также называется ограниченным делегированием на основе ресурсов. Значение каждого вложенного ключа представляет собой список значений в виде строки Это значение задается для атрибута LDAP Это крайне важный атрибут безопасности, поскольку он позволяет указанным учетным записям субъектов выдавать себя за любую учетную запись при аутентификации в службе, работающей от имени этой управляемой учетной записи. Чтобы удалить все учетные записи субъектов, используйте set с пустым списком. Дополнительные сведения о работе поиска DN см. в разделе Атрибуты поиска DN. Дополнительные сведения о добавлении, удалении и задании значений параметров-списков см. в разделе Задание значений параметров-списков. |
|
add list / elements=any |
Добавляет указанные учетные записи субъектов в список учетных записей, которым разрешено делегирование. Все существующие учетные записи субъектов, не указанные в add, останутся без изменений, если они не указаны в remove или отсутствуют в set. |
|
lookup_failure_action string |
Определяет действие при неудачном поиске DN. Значение Значение Значение Варианты:
|
|
remove list / elements=any |
Удаляет указанные учетные записи субъектов из списка учетных записей, которым разрешено делегирование. Все существующие учетные записи субъектов, не указанные в remove, останутся без изменений, если задан параметр set. |
|
set list / elements=any |
Задает учетные записи субъектов, которым разрешено делегирование. Все существующие учетные записи субъектов, не указанные в этом списке, будут удалены. Укажите пустой список, чтобы удалить все учетные записи субъектов, которым разрешено делегирование. |
description string | Описание объекта AD, которое нужно задать. Это значение задается для атрибута LDAP |
display_name string | Отображаемое имя объекта AD, которое нужно задать. Это значение атрибута LDAP |
dns_hostname string | Задает DNS-имя учетной записи службы. Это значение задается для атрибута LDAP Этот параметр нельзя задать, если указано |
do_not_append_dollar_to_sam boolean | Не добавлять автоматически Применяется, только если sam_account_name задан явно, и позволяет создать учетную запись службы без суффикса Варианты:
|
domain_credentials list / elements=dictionary | Задает учетные данные, которые следует использовать при подключении к серверу, указанному в name. Чтобы задать учетные данные для сервера домена по умолчанию, используйте запись без ключа name или параметры domain_username и domain_password. Этот параметр можно задать в значениях по умолчанию для модулей плейбука в группе Дополнительные сведения см. в разделе Аутентификация AD в модулях. По умолчанию: |
|
name string |
Имя сервера, для которого предназначены эти учетные данные. Это значение должно соответствовать значению, используемому в других параметрах, указывающих пользовательский сервер, например в параметре, ссылающемся на идентификатор AD, расположенный на другом сервере AD. Этот ключ можно опустить в одной записи, чтобы задать учетные данные по умолчанию для случаев, когда сервер не указан, вместо использования domain_username и domain_password. |
|
password string / обязательный |
Пароль для подключения к серверу, указанному в name. |
|
username string / обязательный |
Имя пользователя для подключения к серверу, указанному в name. |
domain_password string | Пароль для domain_username. Для задания учетных данных аутентификации в домене по умолчанию также можно использовать вложенную запись domain_credentials без ключа name. Этот параметр можно задать в значениях по умолчанию для модулей плейбука в группе |
domain_server string | Задает экземпляр служб доменов Active Directory, к которому нужно подключиться. Можно указать полное доменное имя (FQDN) или имя NetBIOS. Если значение не указано, используется домен по умолчанию компьютера, на котором запущен PowerShell. Пользовательские учетные данные можно указать во вложенной записи domain_credentials без ключа name либо с помощью параметров domain_username и domain_password. Этот параметр можно задать в значениях по умолчанию для модулей плейбука в группе |
domain_username string | Имя пользователя для взаимодействия с AD. Если значение не задано, для аутентификации будет использоваться пользователь подключения. Ansible не сможет использовать пользователя подключения, если для аутентификации не используется Kerberos с делегированием учетных данных или CredSSP либо если для задачи не используется become. Для задания учетных данных аутентификации в домене по умолчанию также можно использовать вложенную запись domain_credentials без ключа name. Этот параметр можно задать в значениях по умолчанию для модулей плейбука в группе |
enabled boolean | Значение Значение Варианты:
|
identity string | Идентификатор объекта AD, используемый для поиска управляемого объекта AD. Этот параметр необходимо задать, если не задано name, при переименовании объекта с помощью нового значения name или при перемещении объекта в другой path. Идентификатор может иметь вид GUID, представляющего значение Если значение не указано, управляемый объект AD выбирается по При использовании модуля microsoft.ad.computer к концу |
kerberos_encryption_types dictionary | Задает типы шифрования Kerberos, поддерживаемые учетной записью службы AD. Это значение задается для атрибута LDAP Не используйте Чтобы удалить все типы шифрования, используйте set с пустым списком. Дополнительные сведения о добавлении, удалении и задании значений параметров-списков см. в разделе Задание значений параметров-списков. |
|
add list / elements=string |
Типы шифрования, которые нужно добавить к существующему набору. Все существующие типы шифрования, не указанные в add, останутся без изменений, если они не указаны в remove или отсутствуют в set. Варианты:
|
|
remove list / elements=string |
Типы шифрования, которые нужно удалить из существующего набора. Все существующие типы шифрования, не указанные в remove, останутся без изменений, если задан параметр set. Варианты:
|
|
set list / elements=string |
Типы шифрования, которые нужно задать в качестве единственных типов, разрешенных для учетной записи службы AD. Все существующие типы шифрования, не указанные в этом списке, будут удалены. Укажите пустой список, чтобы удалить все типы шифрования. Варианты:
|
name string | Значение Если указан identity, а имя найденного по этому идентификатору объекта не совпадает с этим значением, объект будет переименован. Этот параметр необходимо задать, если не задан identity. |
outbound_auth_only boolean | Помечает учетную запись службы как предназначенную только для исходящей аутентификации клиентов. Если этот параметр включен, учетную запись службы можно использовать только в роли клиента. Например, ее можно использовать только для исходящих попыток аутентификации, но нельзя использовать в качестве целевого субъекта-службы аутентификации. Если этот параметр включен, задать dns_hostname нельзя. Варианты:
|
path string | Путь к подразделению OU или контейнеру, в котором должен находиться новый объект. При создании нового объекта он будет создан по указанному пути. Если путь не указан, для большинства типов объектов в качестве пути будет использоваться При управлении существующим объектом, найденным по identity, найденный объект будет перемещён по пути, указанному в этом параметре. Если путь не указан, объект не будет перемещён. Модули microsoft.ad.computer, microsoft.ad.user и microsoft.ad.group используют собственный путь по умолчанию, настроенный на контроллере домена Active Directory. Можно задать буквальное значение |
protect_from_deletion boolean | Защищает объект от случайного удаления. Для этого применяется запрет на удаление объекта обычным способом. Перед удалением объекта через графический интерфейс или любой другой инструмент вне Ansible необходимо снять защиту. Использование state=absent всё равно приведёт к удалению объекта AD, даже если он защищён от удаления. Варианты:
|
sam_account_name string | Значение Максимальная длина — 256 символов; для совместимости со старыми операционными системами рекомендуется использовать не более 15 символов. Если значение не указано, при создании учётной записи службы оно будет таким же, как Обратите внимание, что значения По умолчанию, если суффикс |
spn псевдонимы: spns dictionary | Задаёт имена участников-служб для добавления, удаления или установки для учётной записи. Это значение задаётся в атрибуте LDAP Чтобы очистить все имена участников-служб, используйте set с пустым списком. Дополнительные сведения о добавлении, удалении и установке значений параметров-списков см. в разделе Задание значений параметров-списков. |
|
add list / elements=string |
SPN для добавления в |
|
remove list / elements=string |
SPN для удаления из |
|
set list / elements=string |
SPN, которые будут единственными значениями в Все существующие SPN, отсутствующие в указанном списке, будут удалены. Чтобы очистить все SPN объекта AD, задайте пустой список. |
state string | Задайте Задайте При state=present необходимо задать параметр name. Использование Варианты:
|
trusted_for_delegation boolean | Указывает, доверена ли учётная запись для делегирования Kerberos. Это также называется неограниченным делегированием Kerberos. Устанавливает флаг Варианты:
|
upn string | Настраивает имя участника-пользователя (UPN) для учётной записи. Формат: Это значение задаётся в атрибуте LDAP |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: full | Модуль может работать в режиме check_mode и возвращать прогноз статуса изменений, не изменяя целевой объект. Если режим не поддерживается, действие будет пропущено. |
diff_mode | Поддержка: full | В режиме diff будут возвращены сведения об изменениях (или возможных изменениях в режиме check_mode). |
platform | Платформа: windows | Целевая ОС или семейства ОС, с которыми можно работать |
Примечания
Примечание
- Этот модуль необходимо запускать на целевом узле Windows с установленным модулем
ActiveDirectory. - При поиске по identity со значением
sAMAccountNameзначение должно заканчиваться на$. Если указанное значение не заканчивается на$, модуль всё равно попытается найти учётную запись службы по указанному значению, а затем выполнит резервный поиск, добавив в конец$. - Некоторые атрибуты LDAP могут содержать только одно значение, другие — несколько. Некоторые атрибуты доступны только для чтения и не могут быть изменены. Рекомендуется изучить метаданные схемы атрибута:
System-Onlyобозначают значения только для чтения, аIs-Single-Value— атрибуты, допускающие только одно значение. - Попытка задать несколько значений для атрибута
Is-Single-Valueприводит к неопределённому поведению. - При запуске на сервере, который не является контроллером домена, необходимо использовать делегирование учётных данных через CredSSP или Kerberos с делегированием либо задать параметры domain_username и domain_password.
См. также
См. также
- microsoft.ad.object_info
-
Сбор сведений об объекте Active Directory.
- microsoft.ad.object
-
Управление объектами Active Directory.
Примеры
# A gMSA requires a KDS root key to be created. This key must be valid for
# 10 hours before it can be used. This example creates the key and sets the
# time for 10 hours ago to let it be used immediately. If your environment
# uses multiple DCs you will still need to wait 10 hours for replication to
# occur or target the DC you created the key on. Required Domain Admin or
# Enterprise Admin privileges.
- name: Create KDS root key if not present
ansible.windows.win_powershell:
error_action: stop
script: |
$Ansible.Changed = $false
if (-not (Get-KdsRootKey)) {
Add-KdsRootKey -EffectiveTime ((Get-Date).AddHours(-10))
$Ansible.Changed = $true
}
- name: Create gMSA that allows Domain Admins to use
microsoft.ad.service_account:
identity: MyGMSA
dns_hostname: MyGMSA.my_org.local
description: GMSA for Domin Admins
state: present
allowed_to_retrieve_password:
set:
- Domain Admins
- name: create gMSA that allows the ITFarmHosts computer account to retrieve the pass
microsoft.ad.service_account:
identity: ITFarm1
dns_hostname: ITFarm1.contoso.com
allowed_to_retrieve_password:
set:
- ITFarmHosts$
kerberos_encryption_types:
set:
- aes128
- aes256
spn:
add:
- http/ITFarm1.contoso.com/contoso.com
- http/ITFarm1.contoso.com/contoso
- http/ITFarm1.contoso.com
- http/ITFarm1.contoso
- name: Remove gMSA by identity
microsoft.ad.service_account:
identity: ITFarm1$
state: absent
- name: Add SPNs to service account
microsoft.ad.service_account:
identity: MySA$
spn:
add:
- HOST/MySA
- HOST/MySA.domain.test
- HOST/MySA.domain.test:1234
- name: Remove SPNs on the service account
microsoft.ad.service_account:
identity: MySA$
spn:
remove:
- HOST/MySA
- HOST/MySA.domain.test
- HOST/MySA.domain.test:1234
- name: Add gMSA with sAMAccountName without $ suffix
microsoft.ad.service_account:
identity: MySA
dns_hostname: MySA.contoso.com
sam_account_name: MySA
do_not_append_dollar_to_sam: true
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
distinguished_name string |
Возвращается: всегда Пример: |
object_guid string |
Если в режиме проверки был создан новый объект, будет возвращён GUID, состоящий из нулей. Возвращается: всегда Пример: |
sid string | Идентификатор безопасности (SID) управляемой учётной записи. Если в режиме проверки была создана новая учётная запись службы, SID будет иметь значение Возвращается: всегда Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/microsoft/ad/service_account_module.html