Вопрос по web-services, delphi, active-directory, kerberos – Как я могу получить билет Kerberos с Delphi?

8

Существуют ли примеры, показывающие, как Delphi вызывает сервер Active Directory Kerberos для запроса билета на получение билета / обычного билета?

Предыстория: билет необходим для аутентификации на веб-сервисе, который обменивается конфиденциальной информацией.

Изменить: пример с коротким исходным кодом был бы очень полезен. Я нашелJEDI Библиотека кодов безопасности Windows что очень впечатляет. Я не уверен, содержит ли он поддержку Kerberos.

увидетьquality.embarcadero.com/browse/RSP-15455 mjn

Ваш Ответ

2   ответа
6

этот Вы должны быть в состоянии получить один сInitializeSecurityContext вызов API Windows.

Большинство заголовков Win32 API были преобразованы в рамках проекта JEDI (jedi-apilib.sourceforge.net), и если его там нет, я обычно использую поиск кода Google (google.com/codesearch?q=initializesecuritycontext+lang:pascal) чтобы найти шляпу мне нужно.
Спасибо за ссылку - однако, чтобы использовать ее в Delphi, похоже, что многие структуры записей API должны быть созданы и заполнены в первую очередь. Я запустил награду, может кто-нибудь поделится кодом. mjn
Здесь есть какой-то старый кодcc.embarcadero.com/Item/16213 это демонстрирует, как вызвать InitializeSecurityContext с учетными данными NTLM. Это может быть достойным началом для любого, кто пытается получить билет Kerberos.
1

Kerberizing приложений с использованием интерфейса поставщика поддержки безопасности чтобы получить общее представление.InitializeSecurityContext описывается следующим образом:

Initiates a security context by generating a security token that must be passed to the server. The application that uses this function is called an SSPI client.

На MSDN список функций SSPI можно найти вФункции аутентификации.

Действительный пример кода см. В примерах Win32.Страница SSPI, Вы, вероятно, найдетеclient.cpp быть полезным. Еще один похожий примерGssClient.c, Оба кода запускают его в цикле, потому что разговор продолжается, еслиSEC_I_CONTINUE_NEEDED возвращается

Похожие вопросы