Настройка доступа по технологии единого входа (SSO)

Технология единого входа (Single sign-on SSO) — метод аутентификации, который позволяет пользователям безопасно аутентифицироваться сразу в нескольких приложениях и сайтах, используя один набор учетных данных.

Настройку можно разделить на 2 части:

Настройка сервера

Для настройки сервера выполните следующие шаги:

  1. Создайте техническую учетную запись в службе каталогов «ЭЛЛЕС» через:

    • пользовательский интерфейс (UI);

    • терминал сервера (CLI).

      При создании учитывайте, что:

      1. Логин UPN вводится с указанием протокола, по которому будет выполняться подключение, и названием домена, например HTTP/dsm.srv.innotech.lan.

      2. В контексте SSO Логин UPN является доменным именем, и при создании следует учитывать ограничения (см. RFC 952 и RFC 1123).

      3. Обязательно задайте пароль для технической учетной записи.

      4. Для данной учетной записи должны быть добавлены следующие параметры:

        • установлена Защита от случайного удаления;

        • Действия учетной записиБессрочно;

        • Параметры паролянеограниченный срок действия пароля;

        • Параметры шифрованияШифрование AES с поддержкой 256-разрядного шифрования.

  2. Привяжите SPN к технической учетной записи.

    SPN (Service Principal Name) — уникальный идентификатор экземпляра сервиса. SPN используется аутентификацией Kerberos для сопоставления экземпляра сервиса с учетной записью сервиса (service logon account). Это позволяет клиентским приложением аутентифицироваться в роли сервиса, даже не зная имени пользователя.

    Для привязки SPN используйте утилиту samba-tool на сервере, где установлена служба каталогов «ЭЛЛЕС».

    Например, командой:

    samba-tool spn add HTTP/dsm.srv.innotech.lan dsm.srv

    Где: dsm.srv — это значение поля Логин SAM, указанное в технической учетной записи.

  3. Создайте файл keytab.

    Keytab-файл — это файл, содержащий пары Kerberos принципалов и их ключей (полученных с использованием Kerberos пароля). Эти файлы используются для аутентификации в системах, использующих Kerberos, без ввода пароля. Если пароль принципала изменится, то keytab-файл необходимо будет сгенерировать заново.

    Для создания keytab-файла используйте утилиту samba-tool на сервере, где установлена служба каталогов «ЭЛЛЕС».

    Например командой:

    samba-tool domain exportkeytab /tmp/http.keytab --principal=HTTP/dsm.srv.innotech.lan
  4. Переместите keytab-файл на сервер, где запущен пользовательский интерфейс службы каталогов «ЭЛЛЕС».

  5. В конфигурационный файл application.yml добавьте следующие строки:

    • для Kerberos:

      authentication:
          kerberos:
              service-principal: HTTP/dsm.srv.innotech.lan
              keytab-location: <.keytab path>

      Где:

      • service-principal — логин UPN с доменом, созданные ранее;

      • keytab-location — путь до keytab-файла.

    • добавить техническую учетную запись (подсекция sso) в секцию ldap, из-под которой будут выполняться запросы после выполнения аутентификации, например:

      ldap:
        connection:
          host: 172.28.15.48
          port: 389
          user: CN=Administrator,CN=Users,DC=SAMBADEMO,DC=LAN
          password: Vk5jZ2dmNGJ5SE44cA==
          pool-size: 5
          sso:
            user: CN=et1,CN=Users,DC=SAMBADEMO,DC=LAN
            password: cXdlMTlzUVdFIUAj
        base-dn: DC=SAMBADEMO,DC=LAN
  6. После редактирования application.yml выполните перезапуск командой:

    sudo systemctl restart dsm.service
  7. Убедитесь, что на серверной части выполнена настройка Kerberos (см. Настройка аутентификации Kerberos).

Настройка клиента

Доступна настройка для Windows и Linux систем.

  • Windows

  • Linux

  1. Добавьте запись с SPN в файл C:\Windows\System32\drivers\etc\hosts

    Пример формата записи:

    127.0.0.1 dsm.srv.innotech.lan
  2. В панели управления нажмите на свойства браузера.

  3. Выберите вкладку Безопасность.

    dsm sites
    Рис. 1. Пример вкладки Безопасность
  4. Нажмите на иконку Надежные сайты а затем на кнопку Сайты.

  5. В открывшемся окне введите адрес (Указанный ранее Логин UPN: http://dsm.srv.innotech.lan) в соответсвующее поле и нажмите на кнопку Добавить.

  6. Также для автоматического входа, находясь на вкладке Безопасность, нажмите на кнопку Другой…​ и в секции «Проверка подлинности пользователя» выберите пункт «Автоматический вход в сеть с текущим именем пользователя и паролем».

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

Например: http://dsm.srv.innotech.lan:8080.

  1. Добавьте запись с SPN в файл etx/hosts.

    Пример формата записи:

    127.0.0.1 dsm.srv.innotech.lan
  2. Добавьте записи в файл etc/krb5.conf.

    Пример записей:

    [libdefaults]
        dns_lookup_realm = false
        dns_lookup_kdc = true
        default_realm = INNOTECH.LAN
        udp_preference_limit = 0
        default_ccache_name = FILE:/home/%{username}/krb5cc
        default_tgs_enctypes = AES256-SHA1
        default_tkt_enctypes = AES256-SHA1
        permitted_enctypes = AES256-SHA1
    [domain_realm]
        testad.vnfhome.com = INNOTECH.LAN
        .testad.vnfhome.com = INNOTECH.LAN
  3. Добавьте SPN в список с доверяемыми сайтами браузером.

    Например, для браузера Chrome добавьте записи в файл /etc/opt/chrome/policies/managed/kerb.json.

    Пример записей:

    {
     "AuthServerAllowlist": "*.innotech.lan",
     "AuthSchemes": "negotiate"
    }

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