Мне нужны руководства или ключевые слова, которые я могу использовать для своего дополнительного исследования.
Предположим, что есть клиентские и серверные приложения, написанные на C ++. Существует возможность передачи больших двоичных объектов с клиента на сервер и наоборот. В Windows мы можем ввести использование Kerberos, генерирование, обработку таких больших двоичных объектов, принятие их, олицетворение потоков и т. Д. Есть несколько примеров для msdn. Это не так просто, но мне удалось заставить его работать.
Но что, если мой клиент работает на Linux-машине? Самый простой и незащищенный способ аутентификации — передать имя пользователя / домен / пароль пользователя в необработанном формате с помощью BLOB-объектов. Но если я хочу использовать Kerberos? Итак, вопросы:
Какие предварительные условия мне нужно иметь на клиентской машине Linux? Мои первые мысли были о каких-то вещах с самбой / winbind, установленных там. Я слышал, что samba аутентифицируется в Windows AD через Kerberos.
Есть ли хорошие примеры выполнения рукопожатия Kerberos на Linux? Я знаю, что на сайте MIT есть несколько примеров. Должен ли я использовать эти? Я думаю, это не так просто, чтобы заставить его работать правильно и проверить его (на самом деле я ЗНАЮ это из своего опыта работы с Windows).
API, который вы должны исследовать — это GSSAPI. Если приложение Windows Server использует SSPI (версия GSSAPI для Windows), вы сможете написать совместимого клиента, используя GSSAPI. Это действительно зависит от того, как именно сервер Windows использует SSPI. Увидеть MSDN SSPI для некоторых деталей.
Библиотеки MIT kerberos доступны в большинстве дистрибутивов linux и имеют все библиотеки, которые необходимы для работы с GSSAPI с kerberos.
GSSAPI — это библиотека для переноса данных, вам все еще нужно реализовать полученный протокол обмена. В зависимости от того, как именно написан сервер Windows, это может быть довольно сложно.
Можно использовать Active Directory в качестве вашего KDC для написания приложений linux клиент / сервер Kerberos. Глядя на код Linux Samba следует
помочь вам понять некоторые вопросы, связанные с написанием Linux-клиента
для служб на базе Windows.