У нас есть:
net join
и используя winbind для аутентификации (назовем этот ФАЙЛ).net join
, но есть соответствующая учетная запись компьютера со случайным паролем, из которой были экспортированы несколько файлов keytab (назовем это PROD). В этом PostgreSQL настроен для аутентификации GSSAPI.Допустим, основным доменом является example.net (это только внутренний домен). Область kerberos - это SAMBA.EXAMPLE.NET, а домен Windows старого стиля - это EXAMPLE.
Зона example.net находится на DNS-сервере, потому что я не хочу управлять всеми данными DNS через Samba. Он делегирует samba.example.net контроллеру домена. Есть запись TXT _kerberos.example.net, содержащая "SAMBA.EXAMPLE.NET".
На всех серверах Debian в sshd_config включена аутентификация GSSAPI.
Выполнение входа в учетную запись домена на компьютерах с Windows 10 Pro, просмотр общих ресурсов Samba, подключение с помощью PuTTY ко всем серверам Debian и подключение к PostgreSQL на PROD (как с помощью psql, так и PgAdmin4) работают как шарм без необходимости повторного ввода пароля, как и ожидалось.
Точно так же мой клиент Linux может получать билеты на все задействованные службы и подключаться без ввода пароля.
На моем ноутбуке с Windows Home, просматривая \ TEST и \ DC, я должен ввести свой пароль, но это, по крайней мере, успешно.
Аутентификация GSSAPI против TEST и PROD не работает.
Вы можете сказать, что неудивительно, что система единого входа из Windows 10 Home (или даже Windows 10 Pro, если машина не присоединена к домену) не работает. Таким образом, сюрприз в том, что он работает с ФАЙЛОМ (как при просмотре общих ресурсов, так и при подключении к PuTTY)!
Я могу бегать klist get host/file
и klist get host/file.example.net
и получить билеты, но когда я бегу klist get host/test
Я получаю ошибку 0x56 (ошибка предварительной проверки подлинности Kerberos), и когда я запускаю klist get host/prod
Я получаю 0x520; Windows просто жалуется, что у нее нет учетных данных, и даже не пытается связаться с DC.
В какой-то момент казалось, что разница между двумя последними результатами заключалась в том, существует ли запись A в зоне samba.example.net, но после удаления обеих записей и перезагрузки домашнего компьютера с Windows 10 разница сохраняется. Даже не похоже, что выполняются какие-либо DNS-запросы (я несколько раз очищал кеш, но, возможно, в службе рабочей станции или LSA есть отдельный кеш?)
На самом деле, похоже, мне удалось заставить \ TEST работать, добавив отсутствующую запись IPv6 rDNS. Однако подключение к общим ресурсам на \ DC (netlogon и sysvol) требует длительной задержки, в течение которой Windows пытается разрешить _ldap._tcp.dc._msdcs.dc во всех доменах в списке поиска, но это может быть связано с тем, что контроллер домена специальный, а затем необходимо ввести пароль (очевидно, что Windows использует другой механизм аутентификации), и klist get host/dc
приводит к ошибке 0x520, несмотря на наличие всех записей DNS.
Я также изменил запись IPv6 PTR для PROD, чтобы она указывала на prod.example.net (он указывал на имя общедоступного домена), но это не помогло. Кроме того, DNS-сервер присоединен к домену AD и имеет правильные DNS-записи, но klist get
приводит к ошибке 0x520 и для него, и для обеих машин с Windows 10 Pro. Я должен упомянуть, что PROD находится в другой локальной сети; Мне было интересно, возможно ли, что Windows Home хочет распознавать только компьютеры, которые она видит через NetBIOS и / или с общими ресурсами, но, конечно же, это не может быть так в наши дни?
Я пробовал включить ведение журнала Kerberos (https://support.microsoft.com/en-us/help/262177/how-to-enable-kerberos-event-logging), но я ничего не вижу в журнале событий.
Почему Windows 10 Home иногда использует существующие учетные данные для получения билета Kerberos, а иногда категорически отказывается?