Настройка технологии единого входа в гостевой ОС ВМ

Общие сведения

Настройка технологии единого входа (SSO) позволяет автоматически авторизовываться в гостевую ОС ВМ при подключении пользователя по протоколу SPICE.

Данный функционал является экспериментальным, однако его активация через экспериментальные параметры Terrmidesk не требуется.

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

1) активация модуля PAM (pam_tdsk) агента ВРМ;

2) включение механизма автоматической авторизации в гостевую ОС.

Активация модуля PAM

Модуль PAM может быть активирован двумя способами:

1) через указание записи в цепочке авторизации PAM для графической подсистемы. Например, для гостевой ОС Astra Linux нужно отредактировать файл /etc/pam.d/fly-dm, добавив следующую строку перед секцией @include common-auth:

auth   sufficient       pam_exec.so expose_authtok quiet /usr/bin/pam_tdsk
BASH

Пример итогового файла:

#%PAM-1.0
auth required pam_parsec_mac.so

auth    requisite       pam_nologin.so

auth    required        pam_env.so readenv=1
auth    required        pam_env.so readenv=1 envfile=/etc/default/locale
auth   sufficient       pam_exec.so expose_authtok quiet /usr/bin/pam_tdsk

@include common-auth
-auth   optional        pam_gnome_keyring.so
-auth   optional        pam_kwallet5.so

session required pam_parsec_mac.so unshare_root_only
session required        pam_limits.so
session  required       pam_loginuid.so

@include common-account
account required pam_parsec_mac.so labelselect=appset
@include common-session
session required pam_parsec_cap.so
session required pam_parsec_aud.so
session required pam_parsec_mac.so
-session optional       pam_gnome_keyring.so auto_start
-session optional       pam_kwallet5.so auto_start
@include common-password
BASH

2) через создание файла /usr/share/pam-configs/termidesk-sso со следующим содержимым:

Name: Termidesk SSO
Default: yes
Priority: 301
Auth-Type: Primary
Auth:
sufficient pam_exec.so expose_authtok quiet /usr/bin/pam_tdsk
BASH

Приоритет Priority: 301 необходим для того, чтобы цепочка авторизации начиналась с модуля /usr/bin/pam_tdsk.

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

:$ sudo pam-auth-update
BASH

После выполнения команды в гостевой ОС AstraLinux обновится файл /etc/pam.d/common-auth.

Включение механизма автоматической авторизации

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

1) через задание переменной DM_LOGIN_AUTOMATION со значением «1» в файле /lib/systemd/system/fly-dm.service. Пример файла:

[Unit]
Description=The FLY login manager
 
#replaces getty
#Conflicts=getty@tty1.service
#After=getty@tty1.service
 
#replaces plymouth-quit  since it quits plymouth on its own
#Conflicts=plymouth-quit.service
#After=plymouth-quit.service
 
After=rc-local.service plymouth-start.service dbus.service systemd-user-sessions.service libflygetexe-bin.service
 
#resposible for plymouth stopping, so if fails then make sure plymouth still stop
OnFailure=plymouth-quit.service
 
[Service]
ExecStartPre=/bin/bash -c /usr/bin/fly-dm-prepare.sh
ExecStart=/usr/bin/fly-dm vt7
 
IgnoreSIGPIPE=no
 
EnvironmentFile=-/etc/default/locale
Environment="DM_LOGIN_AUTOMATION=1"
 
[Install]
Alias=display-manager.service
BASH

2) дополнительно к первому способу задать переменную DM_LOGIN_AUTOMATION со значением «1» в файле /etc/default/locale. Пример файла:

# File generated by update-locale
LANG="ru_RU.UTF-8"
DM_LOGIN_AUTOMATION=1
BASH

Данный способ (второй) является предпочтительным.

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

:$ sudo systemctl daemon-reload
BASH

Затем выполнить перезапуск службы:

:$ sudo systemctl restart fly-dm
BASH

Активация технологии единого входа на сервере терминалов MS RDS

Для включения SSO на MS RDS необходимо выполнить следующую последовательность шагов:

  • на контроллере домена MS AD создать групповую политику с названием SSO;
  • в созданную групповую политику внести следующие изменения:
    • в редакторе групповой политики перейти «Конфигурация компьютера - Административные шаблоны - Система - Передача учетных данных», выбрать параметр «Разрешить передачу учетных данных, установленных по умолчанию» и присвоить ему значение «Включено». Затем нажать экранную кнопку [Добавить серверы в список] и задать значение «TERMSRV/disp.termidesk.local», где disp.termidesk.local - имя сервера Termidesk. Далее нажать экранные кнопки [ОК] и [Применить];

Редактирование параметра «Разрешить передачу учетных данных, установленных по умолчанию» групповых политик
    • в этом же списке выбрать параметр «Разрешить передачу новых учетных данных с проверкой подлинности сервера «только NTLM» и присвоить ему значение «Включено». Затем нажать экранную кнопку [Добавить серверы в список] и задать значение «TERMSRV/disp.termidesk.local», где disp.termidesk.local - имя сервера Termidesk. Далее нажать экранные кнопки [ОК] и [Применить];
    • в редакторе групповой политики перейти «Конфигурация компьютера - Административные шаблоны - Компоненты Windows - Службы удаленных рабочих столов - Клиент подключения к удаленному рабочему столу», выбрать параметр «Запрашивать учетные данные на клиентском компьютере» и присвоить ему значение «Отключено».

По умолчанию время гарантированного автоматического применения изменений соответствует интервалу 90 – 120 минут после обновления файлов групповых политик на контроллере домена. Если необходимо форсировать применение политики, то на контроллере домена, MS RDS и рабочих станциях пользователей необходимо выполнить команду gpupdate /force.