AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mirosoft Graph Api Auth Code

Ein Thema von oakley · begonnen am 29. Jun 2020 · letzter Beitrag vom 3. Jul 2020
Antwort Antwort
Seite 1 von 2  1 2      
oakley

Registriert seit: 15. Aug 2005
287 Beiträge
 
#1

Mirosoft Graph Api Auth Code

  Alt 29. Jun 2020, 23:29
Hallo zusammen,

ich habe folgenden Code der bei der MS Graph Api eine Anfrage bezüglich eines AuthCodes ausführen soll.
OA ist ein TOAuth2Authenticator den ich auf die Form gezogen habe.

Code:
 
  LClient := TRestClient.Create(OA.AuthorizationEndpoint);
  try
    LClient.BaseURL := 'https://login.microsoftonline.com/07a9e2f0-5a0e-406c-a7ff-7b3ab1976b0e/oauth2/v2.0/authorize';
    LRequest := TRESTRequest.Create(LClient);
    LResponse := TRESTResponse.Create(LClient);
    LRequest.Response := LResponse;
    LRequest.Method := TRESTRequestMethod.rmPOST;

    LRequest.AddAuthParameter('client_id', OA.ClientID, TRESTRequestParameterKind.pkGETorPOST);
    LRequest.AddAuthParameter('redirect_uri', OA.RedirectionEndpoint, TRESTRequestParameterKind.pkGETorPOST);
    LRequest.AddAuthParameter('response_type', 'code', TRESTRequestParameterKind.pkGETorPOST);
    LRequest.AddAuthParameter('response_mode', 'query', TRESTRequestParameterKind.pkGETorPOST);
    LRequest.AddAuthParameter('scope', OA.Scope, TRESTRequestParameterKind.pkGETorPOST);

    LRequest.Execute;

    memo1.Lines.Text := LRequest.Response.Content;
   
  finally
    LClient.DisposeOf;
  end;
Um zu sehen was ich zurück bekomme, habe ich das Ergebnis der Anfrage mal in in Memo Feld schreiben lassen.
Ich erhalte also den HTML Code der Login Seite von Microsoft. Eigentlich müsste ich die aber im Browser öffnen (bevorzugt in edge).
Edge öffne ich derzeit so:
Code:
ShellExecute(Application.Handle, 'open', PChar('cmd.exe'), PChar('/c "start microsoft-edge:http://www.google.de"'), nil, SW_SHOWNORMAL);
Weiß jemand, wie ich das anstellen kann?

LG

Mirko
  Mit Zitat antworten Zitat
Incocnito

Registriert seit: 28. Nov 2016
210 Beiträge
 
#2

AW: Mirosoft Graph Api Auth Code

  Alt 30. Jun 2020, 07:29
Wenn du die Authorization-Daten brauchst, musst du das dann nicht innerhalb deines Programms
(z.B. im TWebBrowser) öffnen?
Ich meine TMS hat da in deren Cloud-Pack auch ein extra Login-Fenster worüber die die
Credentials austauschen.

MfG Incocnito
  Mit Zitat antworten Zitat
Blackpit

Registriert seit: 27. Feb 2019
77 Beiträge
 
#3

AW: Mirosoft Graph Api Auth Code

  Alt 30. Jun 2020, 08:11
Das könnte eventuell helfen.

Gruß
BP
  Mit Zitat antworten Zitat
oakley

Registriert seit: 15. Aug 2005
287 Beiträge
 
#4

AW: Mirosoft Graph Api Auth Code

  Alt 30. Jun 2020, 12:50
Danke für den Input.

Wenn ich das über dieses Interface (siehe Anhang) mache öffnet er den Browser selbstständig.

Aber das kann ich zur Laufzeit nicht verwenden oder?

LG

Mirko
Miniaturansicht angehängter Grafiken
ezvsk.jpg  
  Mit Zitat antworten Zitat
oakley

Registriert seit: 15. Aug 2005
287 Beiträge
 
#5

AW: Mirosoft Graph Api Auth Code

  Alt 2. Jul 2020, 16:39
Okay ich weiß wie ich an den AuthCode komme. Die RedirectURI von MS gibt den direkt zurück, ich kann ihn auslesen und damit einen dementsprechenden Token bekommen.
Über den TWebbrowser geht das ganze auch.

Ich baue mir also folgenden URL String zusammen:

Code:
    UrlStr := 'https://login.microsoftonline.com/{meine tenant id}/oauth2/v2.0/authorize' +
    '?client_id={meine client id}' +
    '&response_type=code' +
    '&redirect_uri={meine redirect uri}' +
    '&response_mode=query' +
    '&scope=User.Read offline_access' +
    '&state=2020';
Wie gesagt im TWebbrowser geht das, wenn ich allerdings den Edge öffnen lassen will:

Code:
ShellExecute(Application.Handle, 'open', PChar('cmd.exe'), PChar('/c "start microsoft-edge:' + URLStr + '"'), nil, SW_SHOWNORMAL); //Open link in browser
Schneidet er den URL String beim ersten & Zeichen ab.

Weiß jemand woran das liegt?

Den korrekten String in ein Memo geschrieben und dann per Copy/Paste in die Adresszeile des Edge und es läuft einwandfrei.
Ich möchte gerne den Edge verwenden, weil der mich fragt, ob ich angemeldet bleiben möchte, was der TWebbrowser nicht macht.

LG

Mirko

Geändert von oakley ( 2. Jul 2020 um 16:42 Uhr)
  Mit Zitat antworten Zitat
Blackpit

Registriert seit: 27. Feb 2019
77 Beiträge
 
#6

AW: Mirosoft Graph Api Auth Code

  Alt 3. Jul 2020, 08:10
...
Schneidet er den URL String beim ersten & Zeichen ab.
...
QuotedStr schon versucht?
  Mit Zitat antworten Zitat
oakley

Registriert seit: 15. Aug 2005
287 Beiträge
 
#7

AW: Mirosoft Graph Api Auth Code

  Alt 3. Jul 2020, 09:24
Okay ist erledigt.
Das Problem ist das das "&" Zeichen in der cmd.exe Konsole escaped werden muss.

Korrekt ist damit:

UrlStr := 'https://login.microsoftonline.com/{meine tenant id}/oauth2/v2.0/authorize' +
'?client_id={meine client id}' +
'^&response_type=code' +
'^&redirect_uri={meine redirect uri}' +
'^&response_mode=query' +
'^&scope=User.Read offline_access' +
'^&state=2020';

Geändert von oakley ( 3. Jul 2020 um 09:58 Uhr)
  Mit Zitat antworten Zitat
Rollo62
Online

Registriert seit: 15. Mär 2007
3.908 Beiträge
 
Delphi 12 Athens
 
#8

AW: Mirosoft Graph Api Auth Code

  Alt 3. Jul 2020, 09:55
Hilft es wenn Du aus & ein && machst ?
  Mit Zitat antworten Zitat
oakley

Registriert seit: 15. Aug 2005
287 Beiträge
 
#9

AW: Mirosoft Graph Api Auth Code

  Alt 3. Jul 2020, 10:50
Nein das Problem ist, das ich Edge ja als Parameter der cmd.exe starte und die Windows Konsole das & Zeichen und alles was danach folgt ignoriert.
her muss das & mit ^ escaped werden. Dann geht's.

LG

Mirko
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
629 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Mirosoft Graph Api Auth Code

  Alt 3. Jul 2020, 16:42
Wieso schreibst du deine Antwort nicht einfach in eine Textdatei mit der Endung .htm (oder .html) un öffnest dann diese per Shellexecute?

ShellExecute(Application.Handle, 'open', PChar('ResponseHtmlDatei.htm'), nil, nil, SW_SHOWNORMAL);

Das öffnet dir den Default Browser mit der HTML-Datei.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:56 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