2015-05-01 1 views
1

Мне нужны некоторые руководства или ключевые слова, которые я могу использовать для своих дополнительных исследований.Аутентификация клиентского приложения linux для приложения сервера Windows с помощью кебероса или любого защищенного протокола

Предположим, есть клиентские и серверные приложения, написанные на C++. Существует возможность передавать капли от клиента к серверу и наоборот. В Windows мы можем использовать использование Kerberos, генерировать, обрабатывать такие капли, принимать его, выдавать себя за потоки и т. Д. Есть несколько примеров в msdn. Это не так просто, но мне удалось заставить его работать.

Но что, если мой клиент работает на Linux-машине? Простейшим и незащищенным способом аутентификации является передача имени пользователя/домена/пароля пользователя в необработанном формате с помощью blob. Но если я хочу использовать Kerberos? Таким образом, возникают следующие вопросы:

  • Какие предварительные условия необходимы для клиентской Linux-машины? Мои первые мысли были о том, что там установлено. Я слышал, что самба аутентифицируется в окнах AD через Kerberos.

  • Есть ли хорошие примеры выполнения рукопожатия Kerberos на Linux? Я знаю, что есть несколько примеров на веб-сайте MIT. Должен ли я использовать их? Я думаю, это не так просто, чтобы заставить его работать правильно и протестировать его (на самом деле я ЗНАЮ его из моего окна).

ответ

1

API, который вы должны исследовать, - это GSSAPI. Если приложение сервера Windows использует SSPI (версия Windows GSSAPI), вы должны иметь возможность писать совместимый клиент, используя GSSAPI. Это действительно зависит от того, как сервер Windows использует SSPI. См. MSDN SSPI для некоторых деталей.

Библиотеки MER kerberos доступны с большинством дистрибутивов Linux и имеют все библиотеки, необходимые для использования GSSAPI с кеберосами.

GSSAPI - это библиотека для обертывания данных, вам по-прежнему необходимо реализовать полученный обмен протоколами. В зависимости от того, как написан сервер Windows, это может быть довольно сложным.

В качестве вашего KDC можно использовать Active Directory для написания приложений клиент/сервер kerberos. Если посмотреть на код Linux Samba, то поможет вам понять некоторые проблемы, связанные с написанием linux-клиента для служб на базе Windows.

+0

Спасибо за советы. Исследование кажется огромным ... О сервере C++, который находится на окнах: он использует функции likeAcceptSecurityContext, InitializeSecurityContext и т. Д. Https://msdn.microsoft.com/en-us/library/windows/desktop/aa374704(v=vs. 85) .aspx – str14821

+1

У меня нет опыта программирования в Windows, но я уверен, что эти вызовы поддерживают эквивалентные версии GSSAPI. Http://en.wikipedia.org/wiki/Generic_Security_Services_Application_Program_Interface –

Смежные вопросы