Delphi-PRAXiS

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:

MaBuSE 19. Jul 2016 15:07

AW: TRESTClient und Negotiate (Kerberos) Authentifizierung
 
Zitat:

Zitat von himitsu (Beitrag 1342984)
Hättest doch nicht einen TNegotiateAuthenticator schreiben und jetzt schon benutzen können?

Ich hab mich noch nie mit dem Thema Kerberos & Co im Detail beschäftigt.
Und dazu habe ich eigentlich auch keine Lust. :oops:

Ich erwarte, dass ein Tool die Delphi das kann. :stupid:

Zitat:

Zitat von himitsu (Beitrag 1342984)
Dann gründest du eine Firma und Emba kauft dich. :stupid:

Ich stehe aber nicht zum Verkauf. :shock:
Mich kann man noch nicht mal mieten !!!
(Die Zeiten sind vorbei.)

fatality 6. Okt 2018 23:13

AW: TRESTClient und Negotiate (Kerberos) Authentifizierung
 
Hi Mabuse,

Gab es hierzu neue Infos?
Ich bin auch dabei eine Kerberos Authentifizierung per REST mit integrated Security auf die DB zu implementieren. Ich benutze jedoch nicht Datasnap sondern das MVCFramework

Danke für deine Antwort

MaBuSE 22. Aug 2019 15:35

AW: TRESTClient und Negotiate (Kerberos) Authentifizierung
 
Zitat:

Zitat von fatality (Beitrag 1415121)
Gab es hierzu neue Infos?

Leider Nein. :cry:

MaBuSE 3. Sep 2020 08:45

AW: TRESTClient und Negotiate (Kerberos) Authentifizierung
 
Zitat:

Zitat von MaBuSE (Beitrag 1342983)
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:

Ich hatte das hier schon ganz vergessen. ;)

Heute bekam ich eine E-Mail von Embarcadero :shock:
Zitat:

Änderung durch: Jira-Quality Sync Service
Status: Offen -> Erledigt
Im Ticket steht folgendes:
Zitat:

RAD StudioRSP-15455
TRESTClient and Negotiate (Kerberos) Authentication

Typ:New Feature
Status:Erledigt
Priorität:Schwer
Lösung:Behoben
betrifft Version(en):10.1 Berlin, 10 Seattle Update 1, 10 Seattle
Lösungsversion(en):10.4 Sydney Release 1
Komponente(n):Database, Delphi RTL
Stichwörter:Keine
Language Version:All L10N
InternalID:RS-79322
InternalStatus:Closed
Dann muss ich mir das wohl demnächst mal ansehen :-D

Sum1Nosy 27. Okt 2020 13:22

AW: TRESTClient und Negotiate (Kerberos) Authentifizierung
 
Hallo MaBuSe,
hat Embarcadero weitere Infos zur Verwendung geliefert?
Ich habe auf Delphi 10.4.1 upgedatet. Die von mir erwartete neue TCustomAuthenticator-Aberbung suche ich aber vergeblich.

MaBuSE 27. Okt 2020 13:29

AW: TRESTClient und Negotiate (Kerberos) Authentifizierung
 
Zitat:

Zitat von Sum1Nosy (Beitrag 1476194)
Hallo MaBuSe, hat Embarcadero weitere Infos zur Verwendung geliefert?

Leider Nein.
Ich hatte auch noch keine Zeit mir das anzusehen.

Wenn jemand was weiß -> bitte hier schreiben ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:46 Uhr.

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