AGB  ·  Datenschutz  ·  Impressum  







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

Email mit Oauth2

Ein Thema von Ulf346C · begonnen am 13. Dez 2021 · letzter Beitrag vom 16. Dez 2021
 
bepe

Registriert seit: 17. Okt 2006
119 Beiträge
 
#3

AW: Email mit Oauth2

  Alt 13. Dez 2021, 17:20
Die Anmeldung an einen Exchange mit Modern Auth ist an sich trivial. Derzeit gibts du ein Username und Kennwort an. Bei Modern Auth ersetzt du das Kennwort durch ein Token. (Also weiterhin mit POP3/SMTP/IMAP)

Etwas komplexer ist der Weg zum Token:
- Du musst dein Programm bei MS registrieren. Dort hinterlegst du auch Information zum Hersteller, wie z.B. eine Webseite. Bei der Registrierung bekommt dein Programm eine Client-ID.
- Wenn ein Anwender ein entsprechendes Mail-Konto einrichten möchte, dann musst du eine Login Seite von MS öffnen. Am einfachsten z.B. in einer Webbrowser Komponente. Der Login Seite wird u.a. die Client-ID deines Programms übergeben.
- Auf der Seite kann sich der Anwender mit seinen Office 365 Daten anmelden. Dann wird er gefragt, ob er deinem Programm Zugriff gestatten möchte.
- Gewährt der Anwender Zugriff, wird auf eine Webseite weitergeleitet, welche du hinterlegen kannst. An diese wird das Token übergeben (ich vermute deshalb meinte mjustin, dass ein lokaler Webserver nötig sei). Zumindest bei MS und Google kann man angeben, dass das Token an ein (nicht Web) Programm übergeben werden soll. Dann braucht man keinen Webserver. Das Token kann man aus dem Titel der Webseite oder aus einem Parameter der Redirect URL lesen. redirect_uri wären dann: "urn:ietf:wgauth:2.0ob" bzw. "https://login.microsoftonline.com/common/oauth2/nativeclient"


Das würde ich dir empfehlen:
- Sieh dir das REST bzw. OAUTH Beispielprojekt von Delphi an (ich meine da gibt es eines, in dem u.a. Delphi Praxis angesprochen wird). Und lerne OAUTH2 und dessen Ablauf zu verstehen.
- Wenn du OAUTH verstanden hast, siehe dir die Graph API von MS an. Über diese erhältst du das Token.

Ich würde nicht direkt mit der Graph API anfangen. Die ist doch recht komplex und mit den vielen, teilweise sehr ähnlichen Rechten, teils verwirrend.


Und wegen den Indys:
- Senden und Empfangen kein Problem
- Autorisierung und erstes Token abholen ist bestimmt, teilweise mit Indys machbar. Wäre mir aber viel zu umständlich (es muss eine Webseite angezeigt/gerendert werden). Hier würde ich eine Browserkomponente benutzen
- Mit dem Refreshtoken das Accesstoken aktualsieren funktioniert aber wieder einwandfrei mit Indy



Das müsste das Projekt sein, welches ich meinte:
RESTDemo auf Github

mfg,
bp
  Mit Zitat antworten Zitat
 


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 09:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz