GSSAPI для аутентификации NTLM - PullRequest
3 голосов
/ 20 июня 2011

Можно ли использовать GSSAPI для аутентификации NTLM v1 / v2?Я пытаюсь создать веб-сервер, совсем как squid / apache, но я бы хотел аутентифицировать клиентов, которые могли бы использовать IE / FireFox, используя протоколы NTLM / Negotiate.Я пытался использовать библиотеки Heimdal, но просто не могу заставить gss_accept_sec_context работать.Он просто завершается с ошибкой «Запрошен неподдерживаемый механизм».Я могу подтвердить, что имя участника службы, OID для spnego и т. Д. Действительно происходило правильно, когда gss_acquire_cred был вызван до попытки gss_accept_sec_context.Да, конечно, я извлек токен, полученный от клиента с помощью base64, расшифровав заголовки авторизации.Я использую C ++ и экспериментирую с Debian.Я уверен, что один из фантастических хаков здесь знает больше, и надеюсь поделится некоторыми важными подсказками.

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 05 декабря 2013

Я не уверен насчет библиотеки Heimdal и того, работает ли она с GSS, но gss ntlm ssp определенно претендует на звание библиотеки gss. Я ожидаю, что вам нужно скачать и собрать его, а затем вам нужно будет настроить / etc / gss / mech (или / usr / etc / gss / mech в Debian и Ubuntu), чтобы он указывал на библиотеку. Система сборки создаст пример того, что вам нужно, в файле мех в своем каталоге примеров.

Вы можете столкнуться с проблемой запуска этого под spnego. Когда Windows использует NTLM в качестве наиболее предпочтительного механизма с пакетом согласования, она отправляет необработанный токен NTLM, а не токен SPNEGO, как определено в RFC 4178. Хотя этот код определенно продвинет вас дальше; он определенно пройдет gss_accept_sec_context, что указывает на неподдерживаемый механизм.

1 голос
/ 25 апреля 2018

Библиотека Heimdal GSSAPI поддерживает SPNEGO, NTLMv1 / v2 и KRB5.У них также есть необработанная библиотека NTLM, которую вы можете использовать для самостоятельной реализации протокола.

https://www.h5l.org/manual/HEAD/gssapi/

1 голос
/ 26 ноября 2013

Библиотека NTLM Heimdal также поддерживает клиентскую сторону. Вы можете, используя библиотечные примитивы, генерировать сообщения типа 1, 2 и 3, и это будет работать. Однако я не знаю, можете ли вы использовать GSS-API на вершине Heimdal для этих целей. Я предполагаю, что тест, вы можете сделать это тоже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...