Bug 45726

Summary: freeipa: Не удается выполнить вход в пользователя через sddm с настроенным OTP
Product: Branch p10 Reporter: Evgeny Ivanitskiy <pikone>
Component: sddmAssignee: Sergey V Turchin <zerg>
Status: CLOSED WONTFIX QA Contact: qa-p10 <qa-p10>
Severity: normal    
Priority: P5 CC: amakeenk, sem, slev
Version: не указана   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
Видео с воспроизведением ошибки none

Description Evgeny Ivanitskiy 2023-03-31 17:19:06 MSK
При попытке входа в доменного пользователя FreeIPA, у которого настроена аутентификация в виде "Двухфакторная аутентификация (пароль + OTP)", происходит "зависание" окна входа в пользователя. В journalctl выводится следующая ошибка:

client100.freeipa.testdomain sddm-helper[4050]: pam_succeed_if(sddm:auth): requirement "user ingroup nopasswdlogin" not met by user "otpuser"

После возникновения этой ошибки sddm находится в "зависшем" состоянии без возможности остановить попытку входа или изменение пользователя. Для дальнейшей попытки входа необходимо перезагружать систему. 

Данная ошибка воспроизводится только на системах, где по умолчанию используется SDDM

Воспроизводится на платформах:
alt-kworkstation-10.1-x86_64

Шаги для воспроизведения:
1. Развернуть FreeIPA-сервер, ввести клиента ALT Linux p10-kworkstation в домен.
2. Зайти в web клиент freeipa используя пользователя имеющий права на редактирование других пользователей.
3. Перейти в "Идентификация" ⇢ "Пользователи" и выбрать любого пользователя
4. Нажать на выпадающий список "Действия" ⇢ "Добавить токен OTP" ⇢ "Добавить"
5. Отксканировать QR-Код с помощью OTP совместимых приложений на телефоне (Aegis, KeePassDX, FreeOTP, Google Authenticator)
6. В разделе настройки пользователя "Типы аутентификации пользователей" включить checkbox рядом со строкой "Двухфакторная аутентификация (пароль + OTP)"
7. Открыть клиента kworkstation, который был введен в домен, и попробовать войти в пользователя используя в поле "Пароль" связку "обычный_парольOTP_код" (пароль и код писать слитно)

Ожидаемый результат:
Происходит вход в аккаунт

Фактический результат:
Окно входа в пользователя "Зависает". Не возможно как-либо прервать вход в пользователя. В journalctl ошибка указанная выше

Дополнительно:
Поискав решения проблемы в интернете наткнулся на предложение убрать в файле /etc/pam.d/sddm фразу nopasswdlogin из строки:
auth    sufficient      pam_succeed_if.so user ingroup nopasswdlogin

Однако данное действие приводит к возникновению другой ошибки:
client100.freeipa.testdomain sddm-helper[3469]: pam_succeed_if(sddm:auth): incomplete condition detected

Стоит отметить, что в файле /etc/pam.d/lightdm находящийся в системах с lightdm присутствует фраза nopasswdlogin и не смотря на это происходит успешный вход в систему используя пользователя с настроенным OTP

Приложил видео с воспроизведением ошибки при входе в пользователя с настроенным OTP
Comment 1 Evgeny Ivanitskiy 2023-03-31 17:19:52 MSK
Created attachment 12873 [details]
Видео с воспроизведением ошибки
Comment 2 Sergey V Turchin 2023-07-10 16:58:40 MSK
От SDDM мы отказываемся.
apt-get install kde5-display-manager-lightdm