AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Indy und OAuth / Microsoft365

Indy und OAuth / Microsoft365

Ein Thema von friedt99 · begonnen am 5. Sep 2023 · letzter Beitrag vom 1. Aug 2025
Antwort Antwort
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.458 Beiträge
 
Delphi 12 Athens
 
#1

AW: Indy und OAuth / Microsoft365

  Alt 1. Jul 2025, 11:21
Hallöle...

Aus Microsoft Entra (früher Azure) Admin Center. Anmelden, vorzugsweise Admin für Alle, App definieren und dann hast du die zugehörigen ID. Dann mußt du dich durchkämpfen. Besonders mit den Zugriffsrechten...

PS: Wenn du die Zugangsdaten dem Programm mitgeben mußt...sicher verschlüsseln! Nicht im Klartext in die INI...
Angehängte Grafiken
Dateityp: jpg Key.jpg (25,5 KB, 14x aufgerufen)
Dateityp: jpg Azure.jpg (76,5 KB, 28x aufgerufen)

Geändert von haentschman ( 1. Jul 2025 um 11:40 Uhr)
  Mit Zitat antworten Zitat
swestner

Registriert seit: 31. Aug 2012
Ort: Hallstadt
88 Beiträge
 
Delphi 12 Athens
 
#2

AW: Indy und OAuth / Microsoft365

  Alt 1. Jul 2025, 11:38
OK, danke.

Das beantwortet Teil 1 meiner Frage.

Die Daten für das OAUTH dienen also dazu, mich generell gegenüber dem Webservice zu authentifizieren.

Beim Senden über Indy gebe ich dann ja aber einen Username an und den OAUTH-Key. Dieser ist aber nicht userbezogen. Wie wird dann der Benutzer authentifiziert?
Stefan Westner
  Mit Zitat antworten Zitat
Thomasl

Registriert seit: 19. Jun 2006
Ort: Vreden
71 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Indy und OAuth / Microsoft365

  Alt 1. Jul 2025, 12:36
Hier ein Testprogramm von mir ohne ClientID (Stand 2022 mit 'code_challenge_method', 'S256')
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx mit dem eigenem ersetzen

Mit dem AccessToken wird die E-mail Versendet
Mit dem RefrehToken bekommt man den neuen AccessToken

Achtung, da werden die Token als Klartext ausgegeben
Angehängte Dateien
Dateityp: zip OAUTH2.zip (2,98 MB, 13x aufgerufen)
Thomas Levering
  Mit Zitat antworten Zitat
swestner

Registriert seit: 31. Aug 2012
Ort: Hallstadt
88 Beiträge
 
Delphi 12 Athens
 
#4

AW: Indy und OAuth / Microsoft365

  Alt 1. Jul 2025, 12:45
Sehe ich das richtig, daß der ClientSecret nicht benötigt wird?

Und weiterhin meine Frage zu dem Thema, das ich immer noch nicht verstanden habe:
Das Token ist meine Berechtigung, überhaupt Mails zu versenden.
Bei Der Authentifizierung mittels INdy übergebe ich dann die Mail des Benutezrs und das Token.

Das Toekn ist aber nicht userabhängig, also kann ich jeden beliebigen User (E-Mail-Postfach) angeben.

Das kann doch nicht sein, oder?
Stefan Westner
  Mit Zitat antworten Zitat
Thomasl

Registriert seit: 19. Jun 2006
Ort: Vreden
71 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Indy und OAuth / Microsoft365

  Alt 1. Jul 2025, 13:12
ClientSecret wird bei Google verwendet, bei Microsoft nicht
Thomas Levering
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
749 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Indy und OAuth / Microsoft365

  Alt 1. Jul 2025, 14:09
Setup der Einstellungen und Rechte hat uns zwei Monate gekostet.
Wenn passend eingerichtet könnte jeder Nutzer von jedem Account senden. Per default geht das aber nicht.
Du musst ein Sender Account angeben für das eine Autorisierung von einem Admin gegeben wurde.
Das passiert beim ersten Versuch ein OAuth durchzuführen. M$ merkt sich das. Dafür öffnet sich im Browser eine Website in der sich der Admin identifizieren muss.

Wenn du "ClientCredentials" als Grand Type verwendest ist später nur das AccessToken relevant. Die Authorisierung via WebPage kommt damit nicht erneut und Du musst kein AuthRefreshToken speichern.

Wir verwenden NSoftware für den Zugriff. Wie immer ein Genuss.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Thomasl

Registriert seit: 19. Jun 2006
Ort: Vreden
71 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Indy und OAuth / Microsoft365

  Alt 2. Jul 2025, 06:58
Die WebPage kommt immer nur 1x bei der ersten Anmeldung, danach benötigt man das nicht mehr.

Bevor man sowas wie NSoftware verwendet, dann kann man auch das Beispielprojekt von Microsoft über eine Comserver DLL einbinden.
Thomas Levering
  Mit Zitat antworten Zitat
Thomasl

Registriert seit: 19. Jun 2006
Ort: Vreden
71 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Indy und OAuth / Microsoft365

  Alt 1. Jul 2025, 13:57
Das Toekn ist aber nicht userabhängig, also kann ich jeden beliebigen User (E-Mail-Postfach) angeben.

Das kann doch nicht sein, oder?
Damit man den Token bekommt, gibt man doch im Browser die E-Mail,Passwort und 2Faktor etc. ein, und bekommt für diesen Benutzer einen RefreshToken

Der AccessToken kann auch mal 1000 Zeichen lang sein, da steht dann wohl alles mit drin was der Benutzer darf?
Thomas Levering
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
672 Beiträge
 
Delphi 12 Athens
 
#9

AW: Indy und OAuth / Microsoft365

  Alt 2. Jul 2025, 07:48
Und weiterhin meine Frage zu dem Thema, das ich immer noch nicht verstanden habe:
Das Token ist meine Berechtigung, überhaupt Mails zu versenden.
Bei Der Authentifizierung mittels INdy übergebe ich dann die Mail des Benutezrs und das Token.

Das Toekn ist aber nicht userabhängig, also kann ich jeden beliebigen User (E-Mail-Postfach) angeben.

Das kann doch nicht sein, oder?
In Microsoft Entra erstellst für eine Anwendung - einen Client, identifiziert durch seine Client-ID - den Zugriff auf einen bestimmten Dienst, in dem Fall auf die Mails. Was genau dieser Client dann darf, ergibt sich entweder aus dem gewählten OAuth-Authentifizierungsverfahren und/oder aus weiteren Details, die du innerhalb des Dienstes konfigurieren kannst. Bei Micorosft sind die Begriffe normalerweise "Delegierte Berechtigungen", dann muss sich ein konkreter Benutzer interaktiv anmelden, um ein Token zu bekommen und die Berechtigungen, die er im eigentlichen Dienst hat, ergeben sich dann unmittelbar aus seinen Berechtigungen, die er auch sonst dort hat, also wenn er selbst sich direkt in seine Mails einloggen würde. Alternativ dazu gibt es noch die "Anwendungsberechtigung", welche ohne Bnutzerinteraktion auskommt und für Dienste gedacht ist, die im Hintergrund zusammenarbeiten sollen. In dem Fall muss du innerhalb des Dienstes konfigurieren, welche Berechtigung die Client-ID haben soll - also beispielsweise: die Client-ID 4711 hat Zugriff auf den Mail-Account beispiel@example.com.

Wenn du das Token einmal hast, dann sind damit dann ja diese konkreten Berechtigungen verbunden. Je nachdem, wie das Token konkret umgesetzt ist, stehen dann z.B. Client-ID oder auch ein Benutzername im Token selbst (schau mal nach "JSON Web Token"), sodass der Dienst weiß, was er mit deinem Token anfangen soll und worauf er dir Zugriff geben darf oder eben nicht.

Hier könntest du dich z.B. in die Details reinsteigern: https://learn.microsoft.com/en-us/en.../access-tokens

Vielleicht klärt das ja noch ein paar Fragezeichen.
  Mit Zitat antworten Zitat
Antwort Antwort

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:41 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