Чи можливі такі налаштування Kerberos / AD?


10

У нас є дещо складна установка IDAM:

введіть тут опис зображення

Тобто машина та веб-переглядач кінцевого користувача сидять в одній мережі з батьківською AD, а наша програма на основі Jetty та AD, з якими він може спілкуватися (місцевий AD), сидять в іншій.

Існує двостороння довіра між двома АД. Браузер у батьківській мережі має локальний домен на надійних сайтах.

Установка сервера Jetty така:

  • він використовує файл ключових вкладок, згенерований проти довірителя в локальній AD
  • він працює як служба Windows під користувачем, визначеним у місцевій AD
  • область, домен-область відображення та kdc визначаються щодо домену локальної AD
  • він використовує spnego - isInitiator встановлено на false; doNotPrompt вірно; storeKey - це правда

Проблема полягає в наступному:

  • як тест, доступ до сервера з браузера всередині локальної мережі (тобто пов'язаний з локальною AD) працює - інформація про налагодження Kerberos відображається в журналах, я бачу правильні переговори Kerberos у трафіку HTTP, і користувач автоматично входить у систему . Блискуча.
  • однак доступ до сервера через браузер всередині материнської мережі (саме так будуть робити наші користувачі) не працює! Веб-переглядач повертається назад 401, але запит на отримання облікових даних, які при введенні дають порожній екран. Потім клацання в адресному рядку та натискання клавіші Enter робить одне з двох речей, залежно від того, чи є дані для віддаленої чи локальної AD:

    • локальні облікові дані AD потім входять у систему, з Kerberos з нуля в журналах (GET-запит, 401 невідповідна відповідь, запит заголовків Kerberos тощо)
    • облікові дані віддалених AD не ввійти (запит GET, 401 несанкц відповідь, що виглядає як заголовок NTLM: Authorization: Negotiate <60 or so random chars>)

Так чи інакше, те, що це спонукає, є неправильним!

Чи є пояснення цим симптомам? Чи може установка у нас робити те, що ми хочемо?

З точки зору того, що щодо описаного вище може бути помилковим: будь-яка конфігурація, яку я згадував щодо сервера Jetty, повинна бути точною, як я це робив. Я рада надати більше деталей. Будь-який конфігурація щодо AD або батьківського мережевого браузера потенційно підозрюється, оскільки це не під моїм контролем, і я мав повідомлення про конфігурацію, а не про це бачив сам.


відкрито TCP / 88 між браузером для серверів, перелічених у результатах dns для _kerberos._tcp.OurITOrgDomain та _kerberos._tcp.partentdomain? чи можете ви родитися з браузера машини з обліковими записами, необхідними для автентифікації на сервері Jetty?
Джейкоб Еванс

roguelynn.com/words/explain-like-im-5-kerberos може пролити деяке світло на те, як ваш брандмауер може спричиняти ваші проблеми (знову ж таки, 88 для обох ПК від вашого клієнта)
Jacob Evans

Занадто багато змінних для детального покрокового пояснення без зйомки в мережі. Тоді ви швидко переконаєтесь, що SPN встановлені належним чином, чи потрібно налаштувати браузер, щоб тихо підтвердити автентифікацію.
користувач2320464

Відповіді:


3

Не бачачи захоплення пакету, я думаю, що HTTP / www.website.com SPN потрібно зареєструвати в обліковому записі, де працює програма. Команда служб служб каталогів Майкрософт має чудову публікацію, що складається з багатьох частин, що стосується цієї теми за наступною URL-адресою.

https://blogs.technet.microsoft.com/askds/2008/05/29/kerberos-authentication-problems-service-principal-name-spn-isissue-part-1/

Запустіть захоплення пакетів (netmon, wireshark) від клієнта у кожному середовищі, щоб визначити, на який SPN шукають. Після того, як це визначено, використовуйте setpn cmd, щоб зареєструвати його в обліковому записі, де працює програма.

FWIW, Kerberos працює лише в локальній мережі. Якщо комусь потрібен доступ там, де контролери домену недоступні, вам потрібно розглянути питання про SSO, наприклад Shibboleth або ADFS.

EDIT: як згадує @ alex-h , браузери повинні бути налаштовані на безшумну автентифікацію через Kerberos.

  • Internet Explorer - хоча стаття TechNet не призначена спеціально для вашої програми, кроки є однаковими.
  • Firefox - те саме, що і посилання IE, не точна відповідність, але кроки однакові.

Нарешті, це поширена проблема з розгортанням Microsoft Sharepoint. Вони хочуть, щоб SSO через Kerberos сталися безшумно, коли користувачі підтвердили автентифікацію домену. Отже, якщо наведені вище відповіді не вирішують вашу проблему, спробуйте перевірити їхні форуми, такі як:

Kerberos на Chrome, Safari або FireFox


Гарна відповідь, краща за мою!
Алекс Н

Дякую обом - мені знадобиться кілька днів, щоб прочитати пов’язані документи, але я не відмовився від питання чи нічого!
Роберт Грант

Так, насправді це було не так, але я думаю, що, мабуть, найкраще прийняти цю відповідь як справжню - це дуже незвичний випадок, який я додам як окрему відповідь. Дуже дякую!
Роберт Грант

0

Спробуйте спершу у веб-переглядачі, у якому не ввімкнено NTLM (Chrome / Firefox). Схоже, проблема полягає в тому, що у вас ввімкнено попередню автентифікацію, і можливо, що двостороння довіра може не існувати.

Для попередньої аутентифікації подивіться тут https://support.microsoft.com/en-us/kb/2749007 та тут https://hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.