Назад | Перейти на главную страницу

Передача билетов Kerberos бесполезна в Chrome на macOS X

Я внедряю Okta в качестве поставщика единой регистрации в корпоративной среде, насчитывающей около 90 пользователей. Одна из особенностей Okta - Единый вход для ПК - возможность аутентификации пользователей с помощью Okta просто на основании авторизации на своей машине и, таким образом, аутентификации в домене. Пользователь просто открывает браузер, переходит на URL-адрес клиента Okta компании и входит в систему.

Без этой функции пользователю будет предложено ввести свои учетные данные при загрузке URL-адреса клиента Okta.

DSSO выполняется браузером, получающим от ОС билет Kerberos, который сам генерируется, когда пользователь аутентифицируется в домене Active Directory. Затем браузер возвращает этот билет серверу, и сервер связывается с облаком Okta для аутентификации пользователя.

Процесс аутентификации в нашей среде выглядит следующим образом:

  1. Пользователь входит в свою машину. Билет Kerberos генерируется при входе в систему и аутентификации в домене.
  2. Пользователь открывает свой браузер и либо пытается получить доступ к защищенному / интегрированному приложению Okta, либо переходит непосредственно на свой портал Okta.
  3. Okta перенаправляет пользователя на наш балансировщик нагрузки, который завершает запрос в веб-приложении IWA на веб-сервере.
  4. Веб-приложение IWA запрашивает у браузера аутентификацию
  5. Браузер берет билет Kerberos из ОС и передает его подсистеме балансировки нагрузки, которая передает его веб-приложению IWA.
  6. Приложение IWA проверяет билет и извлекает профиль пользователя из AD.
  7. Приложение IWA генерирует и подписывает цифровой подписью токен SSO и отправляет его в браузер.
  8. Браузер возвращает токен в Okta через HTML-форму POST
  9. Okta завершает запрос на вход и возвращает пользователя в приложение с токеном SSO

На шаге 5 процесс не работает, и я знаю, что это так, потому что:

  1. Chrome запрашивает у пользователя учетные данные NTLM при запросе URL-адреса клиента Okta
  2. Это приглашение появляется до того, как веб-приложение IWA и браузер настроен правильно для DSSO (согласно документации, которую я указал в начале)
  3. Запрос не появляется в Chrome, Firefox и Internet Explorer в Windows (DSSO работает в Windows с Chrome, Firefox и IE)
  4. Это приглашение не появляется в Safari в macOS X, но происходит в Chrome и Firefox в OS X

Я не могу понять, почему Chrome и Firefox не получают билет Kerberos из ОС в macOS X, но те же браузеры в Windows принимают билет без заминки.

Шаги, которые я пробовал:

  1. Установка настроек белого списка Chrome с помощью следующих команд терминала (рекомендуется документацией Okta):

    $ defaults напишите com.google.Chrome AuthServerWhitelist "* .example.com"

    $ defaults написать com.google.Chrome AuthNegotiateDelegateWhitelist "* .example.com"

  2. Установка настроек белого списка Chrome с помощью push-конфигурации SimpleMDM (этот метод фактически успешно перенес настройки в Chrome - что доказано переходом к политике chrome: // и просмотром настроек)
  3. Удаление антивируса
  4. Добавление всех возможных полных доменных имен в список серверов, внесенных в белый список на шаге 2 - сначала только серверы, которые мы добавили в белый список в Windows (потому что Windows действительно работает), а затем список серверов Okta, рекомендованных службой поддержки Okta.

Я по-прежнему не могу заставить эту функцию работать, и теперь я пытаюсь выяснить, есть ли способ устранить неполадки в процессе, который Chrome использует для получения билета Kerberos из ОС. Какой-то отладчик для механизма получения билетов Kerberos в Chrome был бы отличным, но я полагаю, что такой вещи нет.

Он должен работать с:

$ defaults write com.google.Chrome AuthServerWhitelist '*.example.com'
$ defaults write com.google.Chrome AuthNegotiateDelegateWhitelist '*.example.com'

Обратите внимание, что я заменил "на"