Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TRESTClient und Negotiate (Kerberos) Authentifizierung (https://www.delphipraxis.net/189632-trestclient-und-negotiate-kerberos-authentifizierung.html)

MaBuSE 1. Jul 2016 18:16

TRESTClient und Negotiate (Kerberos) Authentifizierung
 
Hallo,
ich habe schon im Internet gesucht, aber nichts gefunden.

Ich möchte auf eine REST API eines ITS (Gemini von Countersoft) zugreifen.
Bei uns in der Firma wird die Anmeldung am System transparent im Hintergrund via Kerberos durchgeführt.

Wenn ich mit den Delphi 10 REST Komponenten darauf zugreifen will bekomme ich nur Fehlermeldungen, das die Anmeldung fehlgeschlagen ist.

Es stehen leider nur folgende Autorisierungstypen zur Verfügung:
NONE, SIMPLE, BASIC, OAUTH und OAUTH2

Ich bräuchte aber Negotiate mit Kerberos (notfalls auch NTLM).
Wobei NTLM bei uns im Netz bald abgeschaltet werden soll :stupid:

Hat jemand von Euch eine Idee?

Ich habe gesehen, das die TRESTClient Ableitungen der TCustomAuthenticator verwendet.
Gibt es evtl eine TKerberosAuthenticator, TNegotiateAuthenticator oder TNTLMAuthenticator Klasse, die ich nur nicht finde?

Vielen Dank für Eure Antworten :thumb:

Euer
MaBuSE

mjustin 2. Jul 2016 07:18

AW: TRESTClient und Negotiate (Kerberos) Authentifizierung
 
Das geht 1-2-3 :)

1. mittels Nezwerksniffer oder HTTP Proxy die Anmeldung bei einem funktionierenden Client aufzeichnen (Wireshark, Fiddler2)

2. Delphi REST Komponente anpassen (z.B. eine neue Klasse ableiten)

3. ein Kerberos Ticket über Windows API abrufen

Links:

http://stackoverflow.com/questions/1...et-with-delphi
http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx
http://www.delphipraxis.net/184110-k...dl-import.html

Im letzten Link findet man auch etwas Sourcecode. Der letzte Schritt ist allerdings der herausfordernste. Zitat: "Ich halte Kerberos mittlerweile für eine Art weissen Wal, den jeder angeblich mal gesehen hat"

Sherlock 4. Jul 2016 08:50

AW: TRESTClient und Negotiate (Kerberos) Authentifizierung
 
Wenn Du die Möglichkeit dazu hast, dann lass die Kerberos-Transaktion von einer .net dll oder ähnlichem machen. Mit .net ist Kerberos innerhalb von wenigen Codezeilen erledigt - es ist im Framework eingebaut. Mit Delphi-Bordmitteln habe ich seinerzeit keine Chance gehabt und einen riesen Frust geschoben.

Sherlock

MaBuSE 4. Jul 2016 09:34

AW: TRESTClient und Negotiate (Kerberos) Authentifizierung
 
Zitat:

Zitat von mjustin (Beitrag 1341794)
Das geht 1-2-3 :)

Danke für Deine Antwort.

Ich sehe es nicht als meine Aufgage via Reverse Engineering herauszufinden wie ein Standard Verfahren funktioniert um es dann in Delphi nachzuprogrammieren.

Aus diesem Grund verwende ich ja Delphi, damit ich nicht alles zu Fuß selbst programmieren muss.

Wir setzen die große (teure) Version vom RAD Studio ein und ich war nur iritiert, das so eine gebräuchliche Standardfunktion aus dem Enterprise Umfeld nicht in Delphi (Enterprise oder Architect Version) enthalten ist.

Laut Feature Matrix ist das tatsächlich nicht der Fall.
Feature Matrix Seite 20/27:
Quelle: https://www.embarcadero.com/docs/rad...ure-matrix.pdf

REST CLIENT LIBRARY AND BAAS
  • REST Client Library for simplified invocation of REST services
  • Authorization support including Basic Authentication, Plan Authentication, OAuth1, OAuth2


Schade, denn so sind die REST Funktionen in Delphi für mich unbrauchbar.

MaBuSE 4. Jul 2016 09:38

AW: TRESTClient und Negotiate (Kerberos) Authentifizierung
 
Zitat:

Zitat von Sherlock (Beitrag 1341850)
Wenn Du die Möglichkeit dazu hast, dann lass die Kerberos-Transaktion von einer .net dll oder ähnlichem machen. Mit .net ist Kerberos innerhalb von wenigen Codezeilen erledigt - es ist im Framework eingebaut.

Hab ich leider nicht :-(

Zitat:

Zitat von Sherlock (Beitrag 1341850)
Mit Delphi-Bordmitteln habe ich seinerzeit keine Chance gehabt und einen riesen Frust geschoben.

Ja, das kann ich verstehen.
Ich werde mal eine Supportanfrage bei Embarcadero eintüten. Mal sehen was passiert.

Sherlock 4. Jul 2016 13:02

AW: TRESTClient und Negotiate (Kerberos) Authentifizierung
 
Ich drück Dir die Daumen!

Sherlock

MaBuSE 12. Jul 2016 10:29

AW: TRESTClient und Negotiate (Kerberos) Authentifizierung
 
Zitat:

Zitat von MaBuSE (Beitrag 1341857)
Ich werde mal eine Supportanfrage bei Embarcadero eintüten. Mal sehen was passiert.

Zitat:

Zitat von Sherlock (Beitrag 1341884)
Ich drück Dir die Daumen!

Der Support schreibt, es ist nicht Bestandteil der REST Komponenten. (Das wussten wir schon)
Es wurde noch kein Feature Request zu dem Thema gemacht. Sprich die denken es braucht niemand.
Sein Rat ist einen anzulegen.

Das habe ich getan.

ABER, damit die merken, dass man das auch braucht, sollten möglichst viele dem zustimmen (Bewertung).

https://quality.embarcadero.com/browse/RSP-15455

Bitte gebt mit Eure Stimme. :dp:

Anmeldung mit EDN Usernamen (nicht E-Mail Adresse) und EDN Passwort.

Danke für Eure Unterstützung.

Sherlock 12. Jul 2016 10:39

AW: TRESTClient und Negotiate (Kerberos) Authentifizierung
 
done ;)

Sherlock

MaBuSE 19. Jul 2016 13:03

AW: TRESTClient und Negotiate (Kerberos) Authentifizierung
 
Der Feature Request wurde nun von "Reported" auf "Offen" gesetzt :-D

Der Bearbeiter ist nun nicht mehr "Internal QA" sondern "Internal Dev"

Es wurde also in die Entwicklung weitergegeben.

Mal sehen was passiert :thumb:

himitsu 19. Jul 2016 13:07

AW: TRESTClient und Negotiate (Kerberos) Authentifizierung
 
Hättest doch nicht einen TNegotiateAuthenticator schreiben und jetzt schon benutzen können?
Dann gründest du eine Firma und Emba kauft dich. :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:24 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz