Spec-Zone.ru › Ansible

модуль 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

Учетные записи субъектов, которым разрешено получать пароль учетной записи службы: их можно добавить, удалить или задать.

Значение каждого вложенного ключа представляет собой список значений в виде строки distinguishedName, objectGUID, objectSid, c(sAMAccountName) или userPrincipalName либо словаря с ключом name и необязательным ключом server.

Это значение преобразуется командлетом ActiveDirectory в дескриптор безопасности и задается для атрибута LDAP msDS-GroupMSAMembership.

Соответствует параметру -PrincipalsAllowedToRetrieveManagedPassword командлетов AD.

Чтобы удалить все учетные записи субъектов, используйте set с пустым списком.

Дополнительные сведения о работе поиска DN см. в разделе Атрибуты поиска DN.

Дополнительные сведения о добавлении, удалении и задании значений параметров-списков см. в разделе Задание значений параметров-списков.

add

list / elements=any

Добавляет указанные учетные записи субъектов в список учетных записей, которым разрешено получать пароль учетной записи службы.

Все существующие учетные записи субъектов, не указанные в add, останутся без изменений, если они не указаны в remove или отсутствуют в set.

lookup_failure_action

string

Определяет действие при неудачном поиске DN.

Значение fail приведет к сбою задачи.

Значение ignore приведет к игнорированию значения и продолжению выполнения.

Значение warn приведет к игнорированию значения и отображению предупреждения.

Варианты:

  • "fail" ← (по умолчанию)
  • "ignore"
  • "warn"

remove

list / elements=any

Удаляет указанные учетные записи субъектов из списка учетных записей, которым разрешено получать пароль учетной записи службы.

Все существующие учетные записи субъектов, не указанные в remove, останутся без изменений, если задан параметр set.

set

list / elements=any

Задает учетные записи субъектов, которым разрешено получать пароль учетной записи службы.

Все существующие учетные записи субъектов, не указанные в этом списке, будут удалены.

Укажите пустой список, чтобы удалить все учетные записи субъектов, которым разрешено делегирование.

attributes

dictionary

Атрибуты, которые требуется добавить, удалить или задать для объекта AD.

Значение каждого параметра атрибута должно быть словарем, где ключ — это атрибут LDAP, например firstName, comment, а значение — значение или список значений, которые нужно задать для этого атрибута.

Значением атрибута может быть исходная строка, целое число или логическое значение, которое нужно добавить, удалить или задать для соответствующего атрибута.

Также в качестве значения можно указать словарь с ключом type, которому присвоено значение bytes, date_time, security_descriptor или raw, и значением этой записи в ключе value.

Тип bytes принимает в качестве значения строку с исходными байтами в кодировке base64.

Тип date_time принимает в качестве значения строку даты и времени в формате ISO 8601. Дата и время задаются как целочисленное значение Microsoft FILETIME — количество 100-наносекундных интервалов с 1601-01-01 по UTC.

Тип security_descriptor принимает в качестве значения строку SDDL дескриптора безопасности, используемую для атрибута nTSecurityDescriptor.

Тип raw принимает целочисленное, строковое или логическое значение.

Строковые значения атрибутов сравниваются с учетом регистра с соответствующими значениями управляемого объекта AD.

Дополнительные сведения см. в разделе Справка по атрибутам LDAP.

По умолчанию: {}

add

dictionary

Словарь всех атрибутов и их значений, которые нужно добавить в управляемый объект AD, если их там еще нет.

Используется для атрибутов, которые могут содержать несколько значений. Если атрибут допускает только одно значение, используйте вместо этого set.

По умолчанию: {}

remove

dictionary

Словарь всех атрибутов и их значений, которые нужно удалить из управляемого объекта AD, если они там есть.

Используется для атрибутов, которые могут содержать несколько значений. Если атрибут допускает только одно значение, используйте вместо этого set.

По умолчанию: {}

set

dictionary

Словарь всех атрибутов и их значений, которые нужно задать для управляемого объекта AD.

Все существующие значения будут заменены, если они не совпадают с запрошенными.

Порядок значений атрибутов не проверяется; проверяется только то, что запрошенные значения являются единственными значениями атрибута объекта.

Задайте значение null или пустой список, чтобы удалить все значения атрибута.

По умолчанию: {}

delegates

псевдонимы: principals_allowed_to_delegate

dictionary

Объекты субъектов, которым текущий объект AD может доверять при делегировании: их можно добавить, удалить или задать.

Это также называется ограниченным делегированием на основе ресурсов.

Значение каждого вложенного ключа представляет собой список значений в виде строки distinguishedName, objectGUID, objectSid, sAMAccountName или userPrincipalName либо словаря с ключом name и необязательным ключом server.

Это значение задается для атрибута LDAP msDS-AllowedToActOnBehalfOfOtherIdentity.

Это крайне важный атрибут безопасности, поскольку он позволяет указанным учетным записям субъектов выдавать себя за любую учетную запись при аутентификации в службе, работающей от имени этой управляемой учетной записи.

Чтобы удалить все учетные записи субъектов, используйте set с пустым списком.

Дополнительные сведения о работе поиска DN см. в разделе Атрибуты поиска DN.

Дополнительные сведения о добавлении, удалении и задании значений параметров-списков см. в разделе Задание значений параметров-списков.

add

list / elements=any

Добавляет указанные учетные записи субъектов в список учетных записей, которым разрешено делегирование.

Все существующие учетные записи субъектов, не указанные в add, останутся без изменений, если они не указаны в remove или отсутствуют в set.

lookup_failure_action

string

Определяет действие при неудачном поиске DN.

Значение fail приведет к сбою задачи.

Значение ignore приведет к игнорированию значения и продолжению выполнения.

Значение warn приведет к игнорированию значения и отображению предупреждения.

Варианты:

  • "fail" ← (по умолчанию)
  • "ignore"
  • "warn"

remove

list / elements=any

Удаляет указанные учетные записи субъектов из списка учетных записей, которым разрешено делегирование.

Все существующие учетные записи субъектов, не указанные в remove, останутся без изменений, если задан параметр set.

set

list / elements=any

Задает учетные записи субъектов, которым разрешено делегирование.

Все существующие учетные записи субъектов, не указанные в этом списке, будут удалены.

Укажите пустой список, чтобы удалить все учетные записи субъектов, которым разрешено делегирование.

description

string

Описание объекта AD, которое нужно задать.

Это значение задается для атрибута LDAP description.

display_name

string

Отображаемое имя объекта AD, которое нужно задать.

Это значение атрибута LDAP displayName.

dns_hostname

string

Задает DNS-имя учетной записи службы.

Это значение задается для атрибута LDAP dNSHostName.

Этот параметр нельзя задать, если указано outbound_auth_only=True; в противном случае его необходимо задать.

do_not_append_dollar_to_sam

boolean

Не добавлять автоматически $ к значению sam_account_name.

Применяется, только если sam_account_name задан явно, и позволяет создать учетную запись службы без суффикса $.

Варианты:

  • false ← (по умолчанию)
  • true

domain_credentials

list / elements=dictionary

Задает учетные данные, которые следует использовать при подключении к серверу, указанному в name.

Чтобы задать учетные данные для сервера домена по умолчанию, используйте запись без ключа name или параметры domain_username и domain_password.

Этот параметр можно задать в значениях по умолчанию для модулей плейбука в группе group/microsoft.ad.domain.

Дополнительные сведения см. в разделе Аутентификация AD в модулях.

По умолчанию: []

name

string

Имя сервера, для которого предназначены эти учетные данные.

Это значение должно соответствовать значению, используемому в других параметрах, указывающих пользовательский сервер, например в параметре, ссылающемся на идентификатор AD, расположенный на другом сервере AD.

Этот ключ можно опустить в одной записи, чтобы задать учетные данные по умолчанию для случаев, когда сервер не указан, вместо использования domain_username и domain_password.

password

string / обязательный

Пароль для подключения к серверу, указанному в name.

username

string / обязательный

Имя пользователя для подключения к серверу, указанному в name.

domain_password

string

Пароль для domain_username.

Для задания учетных данных аутентификации в домене по умолчанию также можно использовать вложенную запись domain_credentials без ключа name.

Этот параметр можно задать в значениях по умолчанию для модулей плейбука в группе group/microsoft.ad.domain.

domain_server

string

Задает экземпляр служб доменов Active Directory, к которому нужно подключиться.

Можно указать полное доменное имя (FQDN) или имя NetBIOS.

Если значение не указано, используется домен по умолчанию компьютера, на котором запущен PowerShell.

Пользовательские учетные данные можно указать во вложенной записи domain_credentials без ключа name либо с помощью параметров domain_username и domain_password.

Этот параметр можно задать в значениях по умолчанию для модулей плейбука в группе group/microsoft.ad.domain.

domain_username

string

Имя пользователя для взаимодействия с AD.

Если значение не задано, для аутентификации будет использоваться пользователь подключения.

Ansible не сможет использовать пользователя подключения, если для аутентификации не используется Kerberos с делегированием учетных данных или CredSSP либо если для задачи не используется become.

Для задания учетных данных аутентификации в домене по умолчанию также можно использовать вложенную запись domain_credentials без ключа name.

Этот параметр можно задать в значениях по умолчанию для модулей плейбука в группе group/microsoft.ad.domain.

enabled

boolean

Значение yes включает учетную запись службы.

Значение no отключает учетную запись службы.

Варианты:

  • false
  • true

identity

string

Идентификатор объекта AD, используемый для поиска управляемого объекта AD.

Этот параметр необходимо задать, если не задано name, при переименовании объекта с помощью нового значения name или при перемещении объекта в другой path.

Идентификатор может иметь вид GUID, представляющего значение objectGUID, userPrincipalName, sAMAccountName, objectSid или distinguishedName.

Если значение не указано, управляемый объект AD выбирается по distinguishedName с использованием формата CN={{ name }},{{ path }}. Если параметр path не задан, вместо него используется defaultNamingContext.

При использовании модуля microsoft.ad.computer к концу sAMAccountName автоматически добавляется $, если указанное значение не дало совпадений и уже не оканчивалось на $.

kerberos_encryption_types

dictionary

Задает типы шифрования Kerberos, поддерживаемые учетной записью службы AD.

Это значение задается для атрибута LDAP msDS-SupportedEncryptionTypes.

Не используйте rc4 или des, поскольку это более старые и небезопасные протоколы шифрования.

Чтобы удалить все типы шифрования, используйте set с пустым списком.

Дополнительные сведения о добавлении, удалении и задании значений параметров-списков см. в разделе Задание значений параметров-списков.

add

list / elements=string

Типы шифрования, которые нужно добавить к существующему набору.

Все существующие типы шифрования, не указанные в add, останутся без изменений, если они не указаны в remove или отсутствуют в set.

Варианты:

  • "aes128"
  • "aes256"
  • "des"
  • "rc4"

remove

list / elements=string

Типы шифрования, которые нужно удалить из существующего набора.

Все существующие типы шифрования, не указанные в remove, останутся без изменений, если задан параметр set.

Варианты:

  • "aes128"
  • "aes256"
  • "des"
  • "rc4"

set

list / elements=string

Типы шифрования, которые нужно задать в качестве единственных типов, разрешенных для учетной записи службы AD.

Все существующие типы шифрования, не указанные в этом списке, будут удалены.

Укажите пустой список, чтобы удалить все типы шифрования.

Варианты:

  • "aes128"
  • "aes256"
  • "des"
  • "rc4"

name

string

Значение name управляемого объекта AD. Это не sAMAccountName объекта, а запись LDAP cn или name объекта по указанному пути. Используйте identity, чтобы выбрать объект для управления по его sAMAccountName.

Если указан identity, а имя найденного по этому идентификатору объекта не совпадает с этим значением, объект будет переименован.

Этот параметр необходимо задать, если не задан identity.

outbound_auth_only

boolean

Помечает учетную запись службы как предназначенную только для исходящей аутентификации клиентов.

Если этот параметр включен, учетную запись службы можно использовать только в роли клиента. Например, ее можно использовать только для исходящих попыток аутентификации, но нельзя использовать в качестве целевого субъекта-службы аутентификации.

Если этот параметр включен, задать dns_hostname нельзя.

Варианты:

  • false ← (по умолчанию)
  • true

path

string

Путь к подразделению OU или контейнеру, в котором должен находиться новый объект.

При создании нового объекта он будет создан по указанному пути. Если путь не указан, для большинства типов объектов в качестве пути будет использоваться defaultNamingContext домена.

При управлении существующим объектом, найденным по identity, найденный объект будет перемещён по пути, указанному в этом параметре. Если путь не указан, объект не будет перемещён.

Модули microsoft.ad.computer, microsoft.ad.user и microsoft.ad.group используют собственный путь по умолчанию, настроенный на контроллере домена Active Directory.

Можно задать буквальное значение microsoft.ad.default_path, которое соответствует значению по умолчанию, используемому при создании нового объекта.

protect_from_deletion

boolean

Защищает объект от случайного удаления.

Для этого применяется запрет на удаление объекта обычным способом. Перед удалением объекта через графический интерфейс или любой другой инструмент вне Ansible необходимо снять защиту.

Использование state=absent всё равно приведёт к удалению объекта AD, даже если он защищён от удаления.

Варианты:

  • false
  • true

sam_account_name

string

Значение sAMAccountName, задаваемое для учётной записи службы.

Максимальная длина — 256 символов; для совместимости со старыми операционными системами рекомендуется использовать не более 15 символов.

Если значение не указано, при создании учётной записи службы оно будет таким же, как name$.

Обратите внимание, что значения sAMAccountName учётных записей служб обычно заканчиваются на $.

По умолчанию, если суффикс $ не указан, он будет добавлен в конец. Если задано do_not_append_dollar_to_sam=True, указанное значение будет использовано без изменений, и $ в конец добавлено не будет.

spn

псевдонимы: spns

dictionary

Задаёт имена участников-служб для добавления, удаления или установки для учётной записи.

Это значение задаётся в атрибуте LDAP servicePrincipalName.

Чтобы очистить все имена участников-служб, используйте set с пустым списком.

Дополнительные сведения о добавлении, удалении и установке значений параметров-списков см. в разделе Задание значений параметров-списков.

add

list / elements=string

SPN для добавления в servicePrincipalName.

remove

list / elements=string

SPN для удаления из servicePrincipalName.

set

list / elements=string

SPN, которые будут единственными значениями в servicePrincipalName.

Все существующие SPN, отсутствующие в указанном списке, будут удалены.

Чтобы очистить все SPN объекта AD, задайте пустой список.

state

string

Задайте present, чтобы обеспечить наличие объекта AD.

Задайте absent, чтобы удалить объект AD, если он существует.

При state=present необходимо задать параметр name.

Использование absent приведёт к рекурсивному удалению объекта AD и всех его дочерних объектов, если он является контейнером. Объект AD также будет удалён, даже если он защищён от случайного удаления.

Варианты:

  • "absent"
  • "present" ← (по умолчанию)

trusted_for_delegation

boolean

Указывает, доверена ли учётная запись для делегирования Kerberos.

Это также называется неограниченным делегированием Kerberos.

Устанавливает флаг ADS_UF_TRUSTED_FOR_DELEGATION в атрибуте LDAP userAccountControl.

Варианты:

  • false
  • true

upn

string

Настраивает имя участника-пользователя (UPN) для учётной записи.

Формат: <username>@<domain>.

Это значение задаётся в атрибуте LDAP userPrincipalName.

Атрибуты

Атрибут

Поддержка

Описание

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

distinguishedName объекта AD, который был создан, удалён или изменён.

Возвращается: всегда

Пример: "CN=act,CN=Managed Service Accounts,DC=domain,DC=test"

object_guid

string

objectGUID объекта AD, который был создан, удалён или изменён.

Если в режиме проверки был создан новый объект, будет возвращён GUID, состоящий из нулей.

Возвращается: всегда

Пример: "d84a141f-2b99-4f08-9da0-ed2d26864ba1"

sid

string

Идентификатор безопасности (SID) управляемой учётной записи.

Если в режиме проверки была создана новая учётная запись службы, SID будет иметь значение S-1-5-0000.

Возвращается: всегда

Пример: "S-1-5-21-4151808797-3430561092-2843464588-1104"

Авторы

  • Jordan Borean (@jborean93)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Сообщить о проблеме
  • Связь

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API