🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #346716

Re: Delphi + Kerberos + SSO

#346716
From: ExM
Date: Tue, 28 Aug 2018 08:35
67 lines
3708 bytes
W dniu czwartek, 16 sierpnia 2018 16:02:57 UTC+2 użytkownik Sivy napisał:
> Witam
> 
> Mam aplikację, która muszę uwierzytelnić przy pomocy Kerberosa i SSO 
> (single sign on).
> 
> Ktoś wie czy są do tego jakieś komponenty czy kod dzięki któremu bym 
> mógł to osiągnąć ?
> 
> Za każdą wskazówkę będę wdzięczny.
> 
> Delphi 2007 a po stronie serwera Windows serwer 2012R2.
> 

Przyglądnij się tej funkcji (działa na każdym Delphi). W ten sposób możesz zweryfikować czy użytkownik został autoryzowany przez system. Reszta to tylko kwestia ustalenia w twojej aplikacji czy danego użytkownika akceptujesz. (Domena jest opcjonalna - bez niej nie ustalisz czy logowanie było lokalnym kontem czy domenowym)


 //--------------------------------------------------------------------------------------------------------------------+
//Funckja za pomocą API realizuje proces logowania sprawdzając czy podane dane zostały poprawnie zweryfikowane
//Parametry wywołania:
//  [_login]    - login użytkownika
//  [_password] - hasło użytkownika
//  [_domain]   - domea użytkownika
//  [token]     - wygenerowany przez system token autoryzacji
//  [msg]       - zwrócony przez funkcję komunikat
//
//v1.0 z 24.11.2017 by ExM
//--------------------------------------------------------------------------------------------------------------------+
function CheckUserPassword(_login, _password, _domain: string; var token:THandle; var msg:string): Boolean;
var
 _error:integer;
begin
 result:=false;
 msg:='';

 if (_login='') then Begin
   msg:='NOLOGIN';
   exit;
 end;

 if (_password='') then begin
   msg:='NOPASSWORD';
   exit;
 end;

 result := LogonUser(PChar(_login),
   PChar(_domain),
   PChar(_password),
   LOGON32_LOGON_INTERACTIVE, // first check interactive
   LOGON32_PROVIDER_DEFAULT,
   token);

 if not result then begin
   result := LogonUser(PChar(_login),
   PChar(_domain),
   PChar(_password),
   LOGON32_LOGON_NETWORK, // then check against network
   LOGON32_PROVIDER_DEFAULT,
   token);
 end;

 if not result then begin
   _error:=GetLastError;
   msg:=SysErrorMessage(_error);
 end;

end;
Technical Details
Message-ID: <319f6b69-4b9b-40ca-9033-3cfc2c227274@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net!2.eu.feeder.erje.net!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!85.12.16.68.MISMATCH!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!g24-v6no391136iti.0!news-out.google.com!c63-v6ni422ith.0!nntp.google.com!g24-v6no391135iti.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <pl406g$dk5$1@node1.news.atman.pl>

Show Full Headers
Complete Article Headers
X-Received: by 2002:a24:ccc1:: with SMTP id x184-v6mr343839itf.43.1535445336380;        Tue, 28 Aug 2018 01:35:36 -0700 (PDT)
X-Received: by 2002:aca:de07:: with SMTP id v7-v6mr10777oig.5.1535445336079; Tue, 28 Aug 2018 01:35:36 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net!2.eu.feeder.erje.net!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!85.12.16.68.MISMATCH!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!g24-v6no391136iti.0!news-out.google.com!c63-v6ni422ith.0!nntp.google.com!g24-v6no391135iti.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.delphi
Date: Tue, 28 Aug 2018 01:35:35 -0700 (PDT)
In-Reply-To: <pl406g$dk5$1@node1.news.atman.pl>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=37.47.116.102; posting-account=doVJ9goAAADBJ8SWJkb9r0xXWw28WhQg
NNTP-Posting-Host: 37.47.116.102
References: <pl406g$dk5$1@node1.news.atman.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <319f6b69-4b9b-40ca-9033-3cfc2c227274@googlegroups.com>
Subject: Re: Delphi + Kerberos + SSO
From: ExM <grupywyt-nijto@mv.net.pl>
Injection-Date: Tue, 28 Aug 2018 08:35:36 +0000
X-Received-Bytes: 3699
X-Received-Body-CRC: 4259486426
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit