Знакомство с adutil — служебной программой Active Directory

Область применения: SQL Server — Linux

Средство adutil — это программа интерфейса командной строки (CLI) для настройки доменов Windows Active Directory для SQL Server на Linux и контейнеров без переключения между компьютерами Windows и Linux для управления Active Directory.

Поддержка adutil будет ограничена только вариантами использования SQL Server.

Не нужно использовать adutil, чтобы включить проверку подлинности Active Directory для SQL Server на Linux или контейнеров. Вы также использовать такие служебные программы, как ktpass. Дополнительные сведения см. в статье Руководство. Использование проверки подлинности Active Directory с SQL Server на Linux.

Средство adutil разработано в виде ряда команд и вложенных команд с дополнительными флагами, которые указываются в качестве дополнительных входных данных. Каждая команда верхнего уровня представляет категорию административных функций. В этой категории каждая подкоманда является операцией. В этой статье показано, как скачать и приступить к работе с adutil.

Настройка adutil для LDAP по протоколу SSL

Вместо протокола LDAP следует использовать защищенный протокол LDAP (LDAPS). Дополнительные сведения о протоколе LDAP см. в разделе протокол LDAP.

Можно задать для параметра useLdaps значение true в файле конфигурации adutil.json, который находится в папке /var/opt/mssql/.adutil/adutil.json при запуске от имени пользователя mssql. В этом образце кода JSON показано, как настроить параметр:

{
    "useLdaps": "true"
}

По умолчанию для параметра useLDAPS установлено значение false. При настройке этого параметра и использовании mssql-conf для создания keytab (ключевой таблицы) убедитесь, что вы запускаете mssql-conf в качестве пользователяmssql, который можно сделать, выполнив следующую команду:

sudo su mssql

Сведения о настройке keytab с помощью mssql-conf см. в статье "Создание файла ключей службы SQL Server с помощью mssql-conf".

Установка adutil

Если вы не принимаете EULA во время установки, при первом запуске команды adutil его необходимо запустить с --accept-eula флагом (для всех дистрибутивов).

  1. Скачайте файл конфигурации репозитория Microsoft Red Hat.

    RHEL 9

    sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/9/prod.repo
    

    RHEL 8

    sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/8/prod.repo
    
  2. Если у вас установлена предыдущая предварительная версия adutil, удалите все старые пакеты adutil с помощью приведенной ниже команды.

    sudo yum remove adutil-preview
    
  3. Выполните приведенные ниже команды для установки adutil. Примите условия лицензионного соглашения для adutil, используя параметр ACCEPT_EULA=Y. Лицензионное соглашение находится по пути /usr/share/adutil/.

    sudo ACCEPT_EULA=Y yum install -y adutil
    

Использование adutil для управления Windows Active Directory

Убедитесь, что вы скачайте adutil на узел, который уже присоединен к домену Active Directory. Также необходимо получить или обновить TGT Kerberos (билет предоставления билета), используя команду kinit и учетную запись привилегированного домена. Используемая учетная запись должна иметь разрешение на создание учетных записей и имен субъектов-служб в домене.

Ниже приведено несколько примеров действий, которые можно выполнить с помощью adutil. Чтобы просмотреть список команд верхнего уровня, введите adutil --help. Эта команда показывает команды верхнего уровня, которые можно использовать для управления и взаимодействия с Active Directory.

$ adutil --help
adutil - A general AD utility
  Usage:
    adutil [account|delegation|group|keytab|machine|ou|spn|user|config]
  Subcommands:
    account      Functions for generic account operations
    delegation   Functions for configuring delegation permissions
    group        Functions for group management
    keytab       Functions for keytab management
    machine      Functions for managing machine accounts
    ou           Functions for managing organizational units
    spn          Functions for service principal name (SPN) management
    user         Functions for user account management
    config       Functions for modifying adutil configuration
  Flags:
       --version       Displays the program version string.
    -h --help          Displays help with available flag, subcommand, and positional value parameters.
    -d --debug         Display additional debugging information when making LDAP/Kerberos calls.
       --accept-eula   Accepts the current EULA for adutil. This has no effect if the EULA has already been accepted.

Чтобы получить справку по следующему уровню команд, можно выполнить следующий вариант справки:

$ adutil spn --help
spn - Functions for service principal name (SPN) management
  Usage:
    spn [add|addauto|delete|search|show]
  Subcommands:
    add       Adds the provided SPNs to an account
    addauto   Automatically generate SPNs based on SPN component inputs and add them to an account
    delete    Deletes the provided SPNs from an account
    search    Search for an SPN by name or list all SPNs in the directory
    show      Get the list of SPNs assigned to an account
  Flags:
    --version       Displays the program version string.
    -h --help          Displays help with available flag, subcommand, and positional value parameters.
    -d --debug         Display additional debugging information when making LDAP/Kerberos calls.
       --accept-eula   Accepts the current EULA for adutil. This has no effect if the EULA has already been accepted.
$ adutil spn search --help
search - Search for an SPN by name or list all SPNs in the directory
  Usage:
     search [name]
  Positional Variables:
    name   OPTIONAL: Name of the SPN to search for in the directory. * can be used as a wildcard
  Flags:
    --version       Displays the program version string.
    -h --help          Displays help with available flag, subcommand, and positional value parameters.
    -n --name          OPTIONAL: Name of the SPN to search for in the directory. * can be used as a wildcard
    -f --filter        OPTIONAL: Filter for the search (User,Machine,Group)
    -o --ouname        OPTIONAL: Distinguished name of OU in which SPNs should be searched. If omitted, the entire directory will be searched.
    -d --debug         Display additional debugging information when making LDAP/Kerberos calls.
       --accept-eula   Accepts the current EULA for adutil. This has no effect if the EULA has already been accepted.

Примеры

Каждая команда задокументирована, поэтому вы можете сразу приступить к работе. Ниже приведены некоторые типичные действия, используемые adutil для настройки или администрирования проверки подлинности Active Directory для SQL Server на Linux и контейнеров:

  • Создайте учетную запись в Active Directory:

    adutil user create --name sqluser --distname CN=sqluser,CN=Users,DC=CONTOSO,DC=COM
    
  • Создание имен субъектов-служб, связанных с учетной записью или службой:

    adutil spn addauto -n sqluser -s MSSQLSvc -H mymachine.contoso.com -p 1433
    
  • Создание файлов keytab с помощью adutil:

    adutil keytab createauto -k /var/opt/mssql/secrets/mssql.keytab -p 1433 -H mymachine.contoso.com --password 'P@ssw0rd' -s MSSQLSvc
    

Вы можете ознакомиться со справочной страницей руководства по adutil, используя команду man adutil.