У нас есть сервер, написанный на Delphi, который использует RemObjects DataAbstract / SDK. Мы хотели бы использовать аутентификацию Windows для аутентификации пользователей, чтобы разрешить им доступ к нашему серверу.
В настоящее время мы делаем следующее:
1) Клиентское приложение отправляет имя пользователя Windows и пароль в виде открытого текста на сервер. Мы хотели бы использовать аутентификацию Windows для аутентификации пользователей, чтобы разрешить им доступ к нашему серверу. В настоящее время мы выполняем ...
У нас есть сервер, написанный на Delphi, который использует RemObjects DataAbstract / SDK. Мы хотели бы использовать аутентификацию Windows для аутентификации пользователей, чтобы разрешить им доступ к нашему серверу.
В настоящее время мы делаем следующее:
1) Клиентское приложение отправляет имя пользователя Windows и пароль в виде открытого текста на сервер. Мы хотели бы использовать аутентификацию Windows для аутентификации пользователей, чтобы разрешить им доступ к нашему серверу. В настоящее время мы выполняем ...
У нас есть сервер, написанный на Delphi, который использует RemObjects DataAbstract / SDK. Мы хотели бы использовать аутентификацию Windows для аутентификации пользователей, чтобы разрешить им доступ к нашему серверу.
В настоящее время мы делаем следующее:
1) Клиентское приложение отправляет имя пользователя Windows и пароль в виде открытого текста на сервер. 2) Сервер проверяет учетные данные с помощью следующей функции:
function ValidateUserLogonAPI(const UserName: string; const Domain: string;
const PassWord: string) : boolean;
var
Retvar: boolean;
LHandle: THandle;
begin
Retvar := LogonUser(PWideChar(UserName),
PWideChar(Domain),
PWideChar(PassWord),
LOGON32_LOGON_NETWORK,
LOGON32_PROVIDER_DEFAULT,
LHandle);
if Retvar then
CloseHandle(LHandle);
Result := Retvar;
end;
Конечно, этот метод имеет недостаток, заключающийся в том, что учетные данные пользователя передаются по сети в виде открытого текста. Мы могли бы зашифровать их, но ключи шифрования / дешифрования должны быть отправлены в приложении.
Я уверен, что должен быть лучший способ достижения нашей цели. Я немного читал о токенах, но не совсем понимаю, как они будут работать в этой ситуации.
Обратите внимание, что это решение должно работать как для клиента Delphi Windows, так и для клиента Delphi Prism ASP.NET.
Спасибо за любую помощь, которую вы можете оказать.