Zugriff auf outlook.office365.com

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von slice.

    Zugriff auf outlook.office365.com

    Hallo zusammen,

    bisher habe ich auf unseren on-Premise Exchange Server per WebCredentials zugegriffen:

    Quellcode

    1. service.Credentials = New WebCredentials("domäne\benutzer", "Kennwort")
    2. service.TraceEnabled = True
    3. service.TraceFlags = TraceFlags.All
    4. service.AutodiscoverUrl(Mailadresse, AddressOf RedirectionUrlValidationCallback)


    Nun sind wir umgezogen in die Cloud.
    Ist das auch noch die empfohlene Vorgehensweise wenn ich auf outlook.office365.com zugreifen will?
    Was muss ich ändern?

    Danke und Gruß
    Volker
    Kann man machen, aber anstatt Username/Passwort würde ich OAuth benutzten (Azure AD -> App Registration).
    Microsoft versucht die Graph API zu pushen, was aber im Moment, in Kombination mit EWS, nur bedingt Funktioniert.

    Was genau hast du denn vor?
    Ich schaue in einem Mailordner ob dort neue Mails enthalten sind.
    Diese werden verarbeitet und anschließend verschoben.
    Läuft auf On-Premise tadellos aber mit dem Umzug nach Office 365 bekomme ich keinen Zugriff mehr.
    Das ganze Gedöhns mit den Zwei-Faktor-Authentifizierung über Token macht die Sache nicht gerade einfacher.
    Derzeit schaue ich hier: Authenticate an EWS application by using OAuth | Microsoft Docs blicke aber noch nicht richtig durch.
    Ein Beispiel für eine Anmeldung in vb.net wäre nett.
    Und ob und wie ich meine Windows-Forms Anwendung registrieren muss, weiß ich auch noch nicht.
    aber mit dem Umzug nach Office 365 bekomme ich keinen Zugriff mehr.

    Geht das etwas genauer? Was für eine Fehlermeldung bekommst du?
    Wenn du auf andere Mailboxen zugreifen willst, muss der User mit dem du dich einloggst auch die entsprechenden Berechtigungen haben, oder du benutzt ein "impersonation user", der muss aber auch im ECP konfiguriert werden.

    OAuth brauch etwas mehr Arbeit, ist aber am Ende relativ simple.
    Du erstellst in Azure AD die App registration
    Im Manifest trägst du die Berechtigung von Hand ein (MS hat die Option im UI entfernt ...)
    Unter "API permissions" auf "Grant admin consent..."
    Unter "Certificates & secrets" erstellst du ein neues "Client secret" (notiere es dir! Du kannst dir den Wert nachher nicht mehr anschauen und musst ansonsten ein neues erstellen)
    Unter "Overview" kopierst du dir die client und tenant id.

    Der Rest ist im Code Beispiel Get a token with app-only auth beschrieben.