Bug 41499 - Ошибка авторизации пользователя с изменённым UPN суффиксом при необходимости смены пароля
Summary: Ошибка авторизации пользователя с изменённым UPN суффиксом при необходимости ...
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: sssd (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Evgeny Sinelnikov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-12-03 16:33 MSK by Alexander Makeenkov
Modified: 2023-12-22 11:57 MSK (History)
7 users (show)

See Also:


Attachments
sssd-logs (581.93 KB, application/gzip)
2021-12-03 16:33 MSK, Alexander Makeenkov
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Makeenkov 2021-12-03 16:33:46 MSK
Created attachment 10024 [details]
sssd-logs

Стенд (samba домен):
Сервер на ALT Server 10
Клиент на ALT Workstation 10
Сервер и клиент настроены по инструкции https://www.altlinux.org/ActiveDirectory/DC
Имя домена: samba.testdomain

С помощью приложения admc добавил UPN суффикс samba.xyz.
Создал нового пользователя (test3), у которого в имени для входа выбрал samba.xyz. Указал пароль и включил чекбокс "Пользователь должен сменить пароль при следующем входе в систему".

Пытаюсь авторизоваться этим пользователем на клиенте: логин ввожу в виде test3@samba.xyz, далее по запросу ввожу пароль (который указал при создании пользователя) и получаю ошибку "Неверный пароль".

В логах journalctl при этом такие ошибки:
дек 03 15:59:47 cli3.samba.testdomain krb5_child[3656]: Password has expired
дек 03 15:59:47 cli3.samba.testdomain krb5_child[3656]: Password has expired
дек 03 15:59:48 cli3.samba.testdomain krb5_child[3656]: Cannot find KDC for realm "SAMBA.XYZ"
дек 03 15:59:48 cli3.samba.testdomain krb5_child[3656]: Cannot find KDC for realm "SAMBA.XYZ"
дек 03 15:59:48 cli3.samba.testdomain lightdm[3637]: pam_sss(lightdm:auth): authentication failure; logname= uid=0 euid=0 tty=:0 ruser= rhost= user=test3@samba.xyz
дек 03 15:59:48 cli3.samba.testdomain lightdm[3637]: pam_sss(lightdm:auth): received for user test3@samba.xyz: 9 (Службе проверки подлинности не удается загрузить сведения аутентификации)

Но, если при создании пользователя не включать "Пользователь должен сменить пароль ...", то авторизация выполняется успешно.

Отмечу, что на Windows клиенте (введёном в этот же домен) авторизация со сменой пароля по изменному UPN суффиксу выполняется успешно, т.е. получается, что проблема именно на стороне клиента linux.

Версии пакетов:
# rpm -qa | egrep "samba|sssd"
samba-common-client-4.14.10-alt2.noarch
sssd-dbus-2.6.1-alt2.x86_64
samba-common-libs-4.14.10-alt2.x86_64
sssd-ldap-2.6.1-alt2.x86_64
task-auth-ldap-sssd-0.43.9-alt5.x86_64
samba-common-4.14.10-alt2.noarch
sssd-winbind-idmap-2.6.1-alt2.x86_64
sssd-2.6.1-alt2.x86_64
samba-winbind-common-4.14.10-alt2.x86_64
samba-4.14.10-alt2.x86_64
task-auth-ad-sssd-0.43.9-alt5.x86_64
sssd-client-2.6.1-alt2.x86_64
sssd-krb5-common-2.6.1-alt2.x86_64
samba-winbind-clients-4.14.10-alt2.x86_64
samba-client-4.14.10-alt2.x86_64
samba-common-tools-4.14.10-alt2.x86_64
samba-winbind-4.14.10-alt2.x86_64
sssd-ad-2.6.1-alt2.x86_64
samba-libs-4.14.10-alt2.x86_64
sssd-pac-2.6.1-alt2.x86_64
sssd-krb5-2.6.1-alt2.x86_64

Во вложении логи sssd c 'debug_level = 9'.
Comment 1 Evgeny Sinelnikov 2021-12-03 23:51:06 MSK
Использовалась ли опция sssd?

krb5_use_subdomain_realm (логическое значение)

 Указывает использовать области поддоменов для проверки подлинности ользователей из доверенных доменов. Этот параметр можно установить в значение «true», если участники-предприятия используются с upnSuffixes, неизвестными KDC родительского домена. Если этот параметр установлен в значение «true», SSSD будет пытаться отправить запрос напрямую KDC того доверенного домена, из которого пришёл пользователь.

 По умолчанию: false

Без этой опции раньше даже логин с upn-суффиксом не отрабатывал.
Comment 2 Alexander Makeenkov 2021-12-06 10:39:22 MSK
(Ответ для Evgeny Sinelnikov на комментарий #1)
> Использовалась ли опция sssd?
> 
> krb5_use_subdomain_realm (логическое значение)
> 
>  Указывает использовать области поддоменов для проверки подлинности
> ользователей из доверенных доменов. Этот параметр можно установить в
> значение «true», если участники-предприятия используются с upnSuffixes,
> неизвестными KDC родительского домена. Если этот параметр установлен в
> значение «true», SSSD будет пытаться отправить запрос напрямую KDC того
> доверенного домена, из которого пришёл пользователь.
> 
>  По умолчанию: false
> 
> Без этой опции раньше даже логин с upn-суффиксом не отрабатывал.

Включение опции krb5_use_subdomain_realm не помогло, ошибка осталась.

Конфиг sssd такой:
[sssd]
config_file_version = 2
services = nss, pam
user = _sssd
domains = SAMBA.TESTDOMAIN
[nss]
[pam]
[domain/SAMBA.TESTDOMAIN]
id_provider = ad
auth_provider = ad
chpass_provider = ad
access_provider = ad
default_shell = /bin/bash
fallback_homedir = /home/%d/%u
debug_level = 9
; cache_credentials = false
ad_gpo_ignore_unreadable = true
ad_gpo_access_control = permissive
krb5_use_subdomain_realm = true
Comment 3 Alexander Makeenkov 2023-12-14 15:43:44 MSK
sssd-2.9.3-alt1.x86_64 - ошибка актуальна.
Comment 4 Evgeny Sinelnikov 2023-12-14 15:56:11 MSK
(Ответ для Alexander Makeenkov на комментарий #0)
...
> Но, если при создании пользователя не включать "Пользователь должен сменить
> пароль ...", то авторизация выполняется успешно.
...

Этого я не понял. Так оно, вообще, не работает или не работает при некоторых условиях?

Что значит "если при создании пользователя не включать "Пользователь должен сменить пароль ...""? Это же главное основное предусловие.

А смена пароля для такого пользователя, в принципе, работает?

Иначе, данную задачу, получается, стоило бы тогда назвать не "Ошибка авторизации пользователя с изменённым UPN суффиксом при необходимости смены пароля", а "Ошибка смены пароля при авторизации пользователя с изменённым UPN через sssd".

Кстати, а через winbind кто-нибудь проверял?
А через kpasswd?

А как ведёт себя kinit для пользователя с изменённым UPN, если он "должен сменить пароль при следующем входе в систему"?
Comment 5 Alexander Makeenkov 2023-12-14 17:21:17 MSK
(Ответ для Evgeny Sinelnikov на комментарий #4)
> (Ответ для Alexander Makeenkov на комментарий #0)
> ...
> > Но, если при создании пользователя не включать "Пользователь должен сменить
> > пароль ...", то авторизация выполняется успешно.
> ...
> 
> Этого я не понял. Так оно, вообще, не работает или не работает при некоторых
> условиях?

Не работает при условии, что пользователю требуется сменить пароль при входе.

> Кстати, а через winbind кто-нибудь проверял?

Попробовал - вообще пишет "Неправильный пароль" даже без галочки "Сменить пароль". Т.е. с изменённым суффиксом UPN не удаётся авторизоваться через winbind вообще (возможно, нужно завести отдельную ошибку?). 

> А через kpasswd?

> А как ведёт себя kinit для пользователя с изменённым UPN, если он "должен сменить пароль при следующем входе в систему"?

# kpasswd test1@samba.xyz
kpasswd: Cannot find KDC for requested realm getting initial ticket

# kinit test1@samba.xyz
kinit: Cannot find KDC for realm "samba.xyz" while getting initial credentials
Comment 6 Evgeny Sinelnikov 2023-12-21 16:20:57 MSK
Таким образом, поскольку на работает даже kinit, sssd в текущей проблеме не причем. Дело в настройках сервера. Это или сам сервер, или клиентская часть его админки, то есть admc.

Необходимо проверить на то же сервере добавление другого upn-суыыиксп через rsat. Если kinit после этого заработает, то значит дело в admc. Ну, так оно, скорее всего и есть.

Предположу, что при установке галочки сменить пароль при первом входе, upn-суффикс на самом деле не устанавливается. Это можно проверить в атрибутах. А также командой kinit test1.
Comment 7 Tatyana Gagina 2023-12-22 10:35:59 MSK
(Ответ для Evgeny Sinelnikov на комментарий #6)
> Таким образом, поскольку на работает даже kinit, sssd в текущей проблеме не
> причем. Дело в настройках сервера. Это или сам сервер, или клиентская часть
> его админки, то есть admc.
> 
> Необходимо проверить на то же сервере добавление другого upn-суыыиксп через
> rsat. Если kinit после этого заработает, то значит дело в admc. Ну, так оно,
> скорее всего и есть.
> 
> Предположу, что при установке галочки сменить пароль при первом входе,
> upn-суффикс на самом деле не устанавливается. Это можно проверить в
> атрибутах. А также командой kinit test1.


Проверено на том же сервере:
1. В rsat создать пользователя test3 с параметром  "Пользователь должен сменить пароль при следующем входе в систему";
2. ПКМ по пользователю - свойства - Редактор атрибутов - выбрать userPrincipalName -  изменить - поменять с test3@samba.testdomain на test3@samba.test - ок - ок;
3. на клиенте ALT проверить вход под test3@samba.test.

Результат: успешный вход.

Проверить ещё можно так, создать по тем же шагам test4, изменить суффикс и проверить работает ли kinit.
kinit работает:
$ kinit test4
Password for test4@SAMBA.TESTDOMAIN:
Password expired.  You must change it now.
Enter new password:
Enter it again:
Warning: Your password will expire in 42 days on Пт 02 фев 2024 09:41:59

Вывод: после изменения upn-суффикса конкретно в rsat - вход на клиенте ALT под test3@samba.test выполняется корректно.
Однако при обратной ситуации (при изменении суффикса в admc) и входе под пользователем с новым суффиксом завершается ошибкой, как было указано ранее. 
Условие остаётся единым: выставлена галочка "Пользователь должен сменить пароль при следующем входе в систему".
Comment 8 Ivan A. Melnikov 2023-12-22 11:39:01 MSK
> Однако при обратной ситуации (при изменении суффикса в admc) и входе под пользователем с новым суффиксом завершается ошибкой, как было указано ранее. 

А в admc тоже менялся samba.test, или на samba.xyz, как указано в первом комментарии?

Здесь это может оказаться важным, например, поэтому:

$ host samba.xyz
samba.xyz has address 3.64.163.50
$ host samba.test
Host samba.test not found: 3(NXDOMAIN)
Comment 9 Tatyana Gagina 2023-12-22 11:57:00 MSK
(Ответ для Ivan A. Melnikov на комментарий #8)
> > Однако при обратной ситуации (при изменении суффикса в admc) и входе под пользователем с новым суффиксом завершается ошибкой, как было указано ранее. 
> 
> А в admc тоже менялся samba.test, или на samba.xyz, как указано в первом
> комментарии?
> 
> Здесь это может оказаться важным, например, поэтому:
> 
> $ host samba.xyz
> samba.xyz has address 3.64.163.50
> $ host samba.test
> Host samba.test not found: 3(NXDOMAIN)

В admc менялся на samba.test
Причём $  host samba.test - пустой вывод

Видит только изначально настроенный:
$ host samba.testdomain
samba.testdomain has address 10.88.14.84