По своей сути Kerberos не является слишком сложным протоколом. Я также уже успешно настроил сервер для приема аутентификации Kerberos через заголовки SPNEGO HTTP. Я новичок в этой области, так что, может быть, я что-то упустил ...
Запутанная часть Kerberos и их реализаций - это по желанию обратный поиск DNS имени хоста сервера, сделанный клиентами перед отправкой полученного SPN в KDC, чтобы получить билет для сервера / приложения, идентифицированного этим SPN. В результате клиенты могут использовать либо первоначально запрошенное имя хоста (может быть псевдонимом - CNAME), либо обратное имя сервера, владеющего IP-адресом, в результирующем SPN. Это значительно усложняет настройку Kerberos.
Спецификация Kerberos (RFC 4120), похоже, предпочитает избегать обратного поиска (также называемого «канонизацией»):
1.3. Выбор принципала для общения
...
Примечание по реализации: многие текущие реализации в некоторой степени
канонизация предоставленного имени службы, часто даже с использованием DNS
хотя это создает проблемы с безопасностью. Однако нет
согласованность между реализациями относительно того, является ли имя службы
строчные буквы или используется обратное разрешение. Чтобы
максимизировать взаимодействие и безопасность, приложения ДОЛЖНЫ предоставлять
механизмы безопасности с именами, которые являются результатом сворачивания пользователя
введенное имя в нижний регистр без каких-либо других изменений
или канонизация.
Например, широко распространенная реализация MIT Kerberos дает возможность отключить обратный поиск, и есть даже несколько сценариев, предполагающих, когда обратный поиск должен быть отключен, в их документация.
Кроме того, эта необязательность может вызвать действительно неожиданное и нестабильное поведение, например Fiddler делает аутентификацию Kerberos. работай. И, судя по моим тестам, текущий Firefox (в отличие от Chrome или IE) даже отказывается отправлять токен Keberos на сервер, если запрошенное имя хоста и искомое имя хоста не совпадают.
Итак, возникает вопрос: Зачем существует ли это наиболее проблемное поведение клиентов Kerberos по умолчанию? Есть ли настоящий выгода в наши дни от выполнения обратного поиска, кроме, возможно, получения полного доменного имени сервера, когда полное доменное имя не указано, или для обеспечения «обратной совместимости»? Разве идентичность вызываемого сервера в любом случае не подтверждается повсеместным использованием SSL?
Бонусный вопрос: нет нового стандарта, позволяющего справляться с причудами Kerberos?