
У нас есть серверы AIX и Linux, работающие с базовой аутентификацией по паролю через Windows AD с использованием Kerberos, то есть это локальные пользователи с именами, идентичными их sAMAccountName в AD, и все, что делается, это проверка пароля.
Обе ОС используют простой krb5.conf
[libdefaults]
default_realm = COMPANYA.COM
[realms]
COMPANYA.COM {
kdc = ad.companya.com:88
admin_server = ad.companya.com:749
}
[domain_realm]
.companya.com = COMPANYA.COM
companya.com = COMPANYA.COM
Это прекрасно работает на обеих ОС.
Теперь у нас ситуация, что будет компания B, а значит и 2-й AD. Пользователь никогда не будет доступен в обоих AD, только в одном из них.
Поэтому я сначала начал с AIX, поскольку решил, что его будет сложнее всего заставить работать.
Обновлен krb5.conf
[libdefaults]
default_realm = COMPANYA.COM
[realms]
COMPANYA.COM {
kdc = ad.companya.com:88
admin_server = ad.companya.com:749
}
COMPANYB.COM {
kdc = ad.companyb.com:88
admin_server = ad.companyb.com:749
}
[domain_realm]
.companya.com = COMPANYA.COM
companya.com = COMPANYA.COM
.companyb.com = COMPANYB.COM
companyb.com = COMPANYB.COM
После небольшого исследования мне показалось, что все, что мне нужно сделать, это
chuser auth_domain=COMPANYB.COM <user>
это обновит файл /etc/security/user и выполнит проверку пароля по AD компании B. Поэтому я был приятно удивлен, насколько это было просто.
Затем появился Linux (Ubuntu box). Сделал тот же krb5.conf, но, к сожалению, не могу найти эквивалентную команду для chuser под Ubuntu, чтобы указать этому конкретному пользователю другой AD.
Я могу найти страницы об использовании sssd и присоединении к области (Linux SSSD с двумя доменами ADи/илиhttps://ubuntu.com/server/docs/service-sssd-ad) но это все более чем необходимо (присоединение к сферам).
На данный момент с помощью tcpdump и kinit я выяснил следующее:
kinit [email protected]
<password>
kinit: KDC reply did not match expectations while getting initial credentials
kinit [email protected]
<password>
<no error>
login [email protected]
<password>
access denied
login [email protected]
<password>
access denied
Поскольку kinit с заглавными буквами работал, я подозревал, что вход в систему будет работать, но, к сожалению, этого не произошло.
обновление: войти[email protected]работает, если пользователь создан на Linux-компьютере как[email protected], все еще не очень доволен этим
(забывая о том, что нереально просить пользователей писать домены полностью заглавными буквами)
Короче говоря, как указать определенным пользователям другую AD, а не ту, что по умолчанию в файле krb5.conf.
С уважением,
решение1
ну, я продвинулся немного дальше на прошлой неделе, и это, кажется, работает. Хотя я все еще изучаю точные детали того, как работает PAM.
обновлен/изменен /etc/pam.d/common-auth
оригинальный
auth [success=2 default=ignore] pam_krb5.so minimum_uid=1000
auth [success=1 default=ignore] pam_unix.so nullok try_first_pass
новая версия
auth sufficient pam_krb5.so minimum_uid=1000 realm=COMPANYA.COM
auth sufficient pam_krb5.so minimum_uid=1000 realm=COMPANYB.COM
auth sufficient pam_unix.so nullok try_first_pass
при входе в систему как пользователь компании A он проверяет AD компании A, и поскольку пользователь там существует, пароль проверяется. при входе в систему как пользователь компании B он проверяет AD компании A, пользователя там не существует, а затем переходит к проверке компании B, и поскольку пользователь там существует, пароль проверяется.
это не так хорошо, как в AIX, но тем не менее работает.
С уважением,