Delphi'de RemObjects DataAbstract/SDK kullanan bir sunucumuz var. Sunucularımıza erişmelerine izin vermek için kullanıcıların kimliklerini doğrulamak için Windows kimlik doğrulamasını kullanmak istiyoruz.Windows kimlik doğrulaması kullanarak orta katmandaki bir kullanıcının nasıl kimlik doğrulaması yapılır
1) İstemci uygulaması sunucuya açık metin olarak, Windows kullanıcı adı ve parola gönderir:
Şu anda aşağıdakileri yapın. Tabii ki
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;
bu yöntem, kullanıcının kimlik bilgileri düz metin olarak ağ üzerinden geçirilen bir dezavantajı vardır: 2) sunucusu aşağıdaki işlevi kullanarak kimlik bilgilerini denetler. Bunları şifreleyebilirdik, ancak şifreleme/şifre çözme anahtarlarının uygulama içinde gönderilmesi gerekecekti.
Amacımıza ulaşmanın daha iyi bir yolu olması gerektiğine eminim. Jetonlar hakkında biraz okudum, ama bu durumda nasıl çalışacaklarını gerçekten anlamıyorum.
Çözümün hem Delphi Windows istemcisi hem de Delphi Prism ASP.NET istemcisi için çalışması gerektiğini unutmayın.
Verebileceğiniz herhangi bir yardım için teşekkür ederiz.
Kerberos tabanlı bir çözüm kullanmayı düşündünüz mü? Ağda çalışan bir Kerberos örneğini gerektirir, ancak güvenli olmayan bir ağ üzerinden fiili standart kimlik doğrulama protokollerinden biridir. http://en.wikipedia.org/wiki/Kerberos_%28protocol%29 – mjn
Bir AD etki alanına sahipse, Kerberos'a sahip olsa da, Windows'un farklı kimlik doğrulama yöntemleriyle aynı arabirim ile çalışmasına izin veren bir mekanizma olmasına rağmen –
Bu bir Intranet midir? (veya VPN) veya İnternet tabanlı uygulama? Intranet ve Kerberos için belki bu yardımcı olabilir: http://stackoverflow.com/questions/1052369/how-can-i-get-a-kerberos-ticket-with-delphi – mjn