MSXFAQ MeetNow aktiv: Komm doch einfach dazu.

RBAC for Applications mit Exchange Online

Diese Seite beschreibt den korrekten Weg, wie sie einer Application einen eingeschränkten Zugriff auf wenige Exchange Online Postfächer mittels Microsoft Graph geben. Die früher möglichen Graph ApplicationAccessPolicy sind mittlerweile abgekündigt, so dass ich eine neue Seite für "RBAC for Applications" geschrieben habe. Wenn eine Application nur mit IMAP4/POP3/SMTP statt Microsoft Graph arbeitet, dann finden sie hier auch eine Beschreibung.

Delegate oder Application-Permission?

Jede Firma hat früher oder später den Bedarf, dass eine Applikation im Hintergrund ohne Mithilfe des Anwenders auf Daten im Exchange Postfach zugreift. Das kann eine Archivlösung, Backup etc. sein, die auf alle Postfächer zugreifen müssen. Solche umfangreichen Berechtigungen möchten Sie aber nicht einem CRM/ERP-System geben, welche nur im Posteingang nach Mails suchen oder Termine im Kalender disponieren soll. Exchange kann auch "Raume" und "Shared Mailboxen", welche mit inaktiven Benutzern verbunden sind und generell sind mittlerweile Zugriffe von Benutzern hoffentlich mittels MFA gut abgesichert. MFA verträgt sich aber nicht einer automatischen Verarbeitung durch Hintergrundprozesse.

Bei Exchange OnPremises haben Sie ein Dienstkonto angelegt, welches entweder "EWS-Impersonate" zum Zugriff auf alle Postfächer bekommen hat oder mittels individuellen Berechtigungen auf die Postfächer berechtigt wurde. In Exchange Online funktioniert dies über App-Registrations, Enterprise Apps, ServicePrincipal und Role Based Access Control for Applications.

Als Entwickler für eine Exchange Online Applikation zwischen Sie zuerst nach rechts zu "GRAPH" ab und wenn sie einen Zugriff als Applikation ohne Interaktion mit dem Anwender wünschen, dann müssen Sie nur noch entscheiden, ob Sie Zugriff auf alle Postfächer oder eine Teilmenge benötigen.

Ich habe schon Produkte gesehen, die mit "Delegate Access" gearbeitet haben und den Admin gebeten haben, einmal als User eine Anmeldung durchzuführen, um dann die ausgestellten IssuingTickets und Service Tickets eigenständig immer weiter zu verlängern. Damit ist natürlich kein stabiler Betrieb möglich.

Einrichtung als Applikation

Die folgenden Schritte sind notwendig, damit eine Application ohne Mitarbeit des Benutzers eine Mail in dessen Namen senden und eingehende Mails lesen kann. Der Fall ist häufig, weil z.B. ein Helpdesk-System die eingehenden Mails an ein Supportpostfach lesen und beantworten will. Aber auch Monitoringsysteme können so Benachrichtigungen "authentifiziert" senden. "Delegate Permission" eignet sich nicht dazu, da dann MFA umgangen werden müsste aber generelle AppPermission auf alle Postfächer ist zu umfangreich.

Schritt Erledigt

Application anlegen

Zuerst legen wir unter https://portal.azure.com eine neue Application Registration an. Hier brauche ich nur einen Namen.

Weitere Eingaben sind hier nicht erforderlich.

 

Entra ID API-Berechtigungen - NEIN!

Vergehen Sie hier keine weiteren Berechtigungen. Diese würden zusätzlich zu den später per RBAC zugewiesenen Rechten wirken.

Mit Graph ApplicationAccessPolicy haben wir früher einer App erst einmal die Berechtigungen für alle Postfächer gewährt um dann mit den ApplicationAccessPolicy diese Rechte wieder auf eine Teilmenge der Empfänger einzuschränken.

Da wir keine Berechtigungen vergeben, benötigen wir hier auch keinen Admin Consent.

 

App Secret anlegen

Damit sich die Application authentifizieren kann, müssen Sie entweder ein Kennwort von Entra ID generieren lassen. Ich bevorzuge die Anmeldung mittels Zertifikat. Dazu muss die Applikation einfach ein Zertifikat generieren (SelfSigned reicht) und die CER-Datei mit dem Public-Key in Entra ID hochgeladen werden.

Tipp: Zum Testen können sie ein eigenes "SelfSigned-Zertifikat auf ihrem PC anlegen und hochladen.

# Selbst signiertes Zertifikat erstellen
$appcert = New-SelfSignedCertificate `
              -Subject "CN=MSXFAQ_MGGraph" `
              -CertStoreLocation "Cert:\CurrentUser\My"  `
              -KeyExportPolicy Exportable  `
              -KeySpec Signature  `
              -KeyLength 2048  `
              -KeyAlgorithm RSA  `
              -HashAlgorithm SHA256 `
              -notafter (get-date).addyears(5)

#Thumbprint merken
$appcert.Thumbprint

# Als Datei exportieren
Export-Certificate `
   -Cert $appcert `
   -FilePath "MSXFAQ_MGGraph.cer" 

Merken sie sich den Thumbprint für später

App ID einsammeln

Nun müssen wir drei Werte einsammeln. Zuerst brauchen wir die AppID der gerade angelegten Application. Dies ist der Benutzername zum gerade angelegten App Secret, welches die Anwendung zur Anmeldung benötigt.

 

Achtung:
Die ObjectID der App Registration ist nicht für die nächsten Schritte geeignet. Der Versuch damit ein ServicePrincipal anzulegen, wird mit einem Fehler quittiert:

Die App registration ist ein ggfls. global in allen Tenants sichtbares Objekt aber die Enterprise Registration ist das dazugehörige Tenant-lokale Objekt.

Für die weitere Einrichtung in Exchange zur Beschränkung des Zugriffs auf ausgewählte Postfächer benötigen wir die ObjectID aus der gleichnamigen "Enterprise Application", die ebenfalls angelegt wurde.

Jetzt könnte die App mit der AppID und dem Secret alle Postfächer lesen und Mails im Namen aller Personen senden.

Exchange Online PowerShell

Wir nutzen die Exchange Online PowerShell, um zur AppID und ObjectID einen ServicePrincipal anzulegen und dann über einen ManagementScope eine Rolle zuzuweisen.

Für diese Schritte gibt es keine GUI oder Weboberfläche.

In meinem Beispiel ist dies:

#Exchange Online PowerShell

# Anlegen eines Service Principal. AppID und ObjectID aus der EnterpriseApp übernehmen. 
# Der Name ist frei wählbar
$ServicePrincipal = New-ServicePrincipal `
                       -AppId 39dfb23e-a4cf-4867-bc5c-806edd54b5c7 `
                       -ObjectId 548565fb-49c6-4098-86ee-d70faf51a1d1 `
                       -DisplayName "MSXFAQ RBACApptest"

# Anlegen eines Management Scope, z.B. auf die Abteilung oder anderes Feld oder die ExchangeGUID der Mailbox
# Testen Sie den Scope vorher mit
Get-Mailbox -Filter "ExchangeGUID -eq 'a2b0a507-8180-4bca-a49a-f4b2a8a63dd4'"
New-ManagementScope `
   -Name "Scope MSXFAQ RBACApptest" `
   -RecipientRestrictionFilter "ExchangeGUID -eq 'a2b0a507-8180-4bca-a49a-f4b2a8a63dd4'"

# Beispiel mit der GUID
# Get-Mailbox -Filter "guid -eq '29a6e3a6-dc12-4de3-ad26-7a20a66af084'"
# New-ManagementScope `
#   -Name "Scope MSXFAQ RBACApptest" `
#   -RecipientRestrictionFilter "guid -eq '29a6e3a6-dc12-4de3-ad26-7a20a66af084'"

# Beispiel mit Memberof in einer Exchange Online Distributiongroup
# $groupdn= (Get-Distributiongroup Gruppenname).distinguishedname
# Get-Recipient -Recipient "MemberofGroup -eq '$($groupdn)'"
# New-ManagementScope `
#   -Name "Scope MSXFAQ RBACApptest" `
#   -RecipientRestrictionFilter "MemberofGroup -eq '$($groupdn)'"


# Verknüpfen des Scope mit der Application
New-ManagementRoleAssignment `
   -Role "Application Mail.ReadWrite" `
   -App $ServicePrincipal.ObjectID `
   -CustomResourceScope "Scope MSXFAQ RBACApptest"


# Verknüpfen des Scope mit der Application
New-ManagementRoleAssignment `
   -App $ServicePrincipal.ObjectID `
   -Role "Application Mail.Send" `
   -CustomResourceScope "Scope MSXFAQ RBACApptest"

Achtung:
Mehrfaches Ausführen von New-ManagementRoleAssignment addiert weitere Einträge. Es gibt keinen Fehler, weil es schon einen bestehenden identischen Eintrag gibt.

Eine Liste der Zuweisungen an eine App erhalten Sie über die ID des ServicePrincipal

Get-ManagementRoleAssignment `
   -RoleAssignee $ServicePrincipal.ID

Erst jetzt ist der Zugriff der App auf eine Mailbox beschränkt.

Hinweis:
Wie so oft werden die Beschränkungen nicht sofort aktiv. Insbesondere, wenn Sie vorher schon ohne Beschränkungen gearbeitet haben, nutzt Exchange einen Cache, um nicht bei jedem Zugriff alle Rechte zu ermitteln.

https://learn.microsoft.com/en-us/exchange/permissions-exo/application-rbac#limitations

Verifikation

Microsoft hat extra ein CMDLet bereitgestellt, um die Beschränkungen der Zugriffe zu verifizieren. Ich muss nur die Application und das Zielpostfach kennen:

Test-ServicePrincipalAuthorization `
   -Identity <AppID> `
   -Resource <Zielobjekt üer DN, Mail Alias etc>

 

Der eine Benutzer ist Teil des Scope, während der andere Benutzer nicht im Scope enthalten ist. 

 

Damit ist die Konfiguration der Application mit dem Secret und die Beschränkung auf ausgewählte Postfächer erfolgt

Nutzung mit Graph

Natürlich möchte ich die Funktion verifizieren. Mit dem Zertifikat oder dem Client Secret und der MGGraph-PowerShell geht dies sehr einfach:

 Connect-MgGraph `
   -AppId 39dfb23e-a4cf-4867-bc5c-806edd54b5c7 `
   -CertificateThumbprint 8620EFA6F2180E1CA79ED3F81167C93A87412A0A `
   -TenantId msxfaqdev.onmicrosoft.com

Mit einem App-Kennwort sind es ein paar Zeilen mehr:

$ApplicationId = "<value>"
$SecuredPassword = "<value>"
$tenantID = "<value>"
$SecuredPasswordPassword = ConvertTo-SecureString -String $SecuredPassword -AsPlainText 
-Force
$ClientSecretCredential = New-Object -TypeName 
System.Management.Automation.PSCredential -ArgumentList $ApplicationId, $SecuredPasswordPassword
Connect-MgGraph -TenantId $tenantID -ClientSecretCredential $ClientSecretCredential

 

Die Daten sind nicht sonderlich geheim, denn sie haben als Leser nicht den privaten Schlüssel zum Zertifikat. Mit Get-MGContext kann ich prüfen, welches Ticket ich nun habe.

Mit dem Token kann ich nun einfach auf ein Postfach zugreifen.

Ein Zugriff auf eine andere Mailbox gelingt mir aber nicht:

Get-MgUserMessage_List: Access is denied. Check credentials and try again 

Das ist genau das erwartete Verhalten:

Ablösung ApplicationAccessPolicies

Microsoft hat im Herbst 2025 angekündigt, dass der alte Weg der Graph ApplicationAccessPolicy zur Vergabe von Berechtigungen nicht mehr für neue Einrichtungen genutzt werden soll.


Quelle: https://learn.microsoft.com/en-us/exchange/permissions-exo/application-access-policies

Zu gegebener Zeit wird Microsoft dann auch die Abschaltung ankündigen. Sie sollten daher möglichst bald ihre bisherigen Zugriffe über ApplicationAccessPolicies auf die neue RBAC for Applications umstellen. Folgende Schritte sind dazu erforderlich:

Aktion  Erledigt

ServicePrincipal suchen

Auch für die bisherigen Graph ApplicationAccessPolicy benötigten wir ein Service-Principal in der Exchange PowerShell. So können Sie sehr einfach ermittel, welche App-Permissions vielleicht vergeben wurden.

 

ApplicationAccessPolicy suchen

Mit Get-ApplicationAccessPolicy finden Sie dann genau die Einschränkungen, die wie migrieren müssen

 

 

RecipientScope anlegen

Nun kommt die kniffligere Aufgabe. Sie müssen einen RecipientScope anlegen, der ihre aktuellen Filterung der ApplicationAccessPolicy entspricht. Meist haben Sie bei den ApplicationAccessPolicy eine Verteilergruppe als Skript genutzt. Das geht mit RBAC for Exchange Applications auch. Sie können aber auch andere Kriterien nutzen und so vielleicht auf die Gruppe verzichten. Wenn Sie weiter die vorhandene Gruppe nutzen, müssen Sie sich den DistinguishedName der Gruppe besorgen.

# DN einer gruppe holen
# $groupdn= (Get-Distributiongroup <Gruppenname>).distinguishedname
# Get-Recipient -Recipient "MemberofGroup -eq '$($groupdn)'"
# New-ManagementScope `
#   -Name "Scope MSXFAQ RBACApptest" `
#   -RecipientRestrictionFilter "MemberofGroup -eq '$($groupdn)'" 
 

Management Role Assignment

Dann weisen Sie die gewünschten Rechte mit dem Scope an den bestehenden Service Principal zu. Damit bekommt der ServicePrincipal die Rechte zusätzlich zu den noch vorhandenen globalen Rechten, die mit ApplicationAccessPolicy eingeschränkt sind

 

EntraID Rechte auf der App entfernen

Diese globalen und zu umfangreichen API-Permissions der Application entfernen wir z.B.: mit dem Entra ID Portal (https://entra.microsoft.com)

 

ApplicationAccessPolicy entfernen

Zuletzt entfernen wir noch die ApplicationAccessPolicy, die noch auf den Service Principal gebunden ist. Sie hat keine Funktion mehr, nachdem wir die ansonsten globalen Rechte im vorherigen Schritt entfernt haben.

 

Zugriff testen

Zuletzt sollten Sie die Application einmal Durchstarten, damit diese mit einem neuen Ticket und weniger Rechten unterwegs ist 

 

Auswertung

In einen Tenant sammeln sich natürlich schon mehr und mehr Apps an. Solange Microsoft aber keine UI in einem Admin-Portal einbaut, bleiben viele delegierte Berechtigungen nun unsichtbar. Im EntraID sehen Sie keine API-Permissions. Ich bin sicher, dass Microsoft oder 3rd-Party-Skripte sehr bald auch diese Funktion integrieren. Bis dahin können Sie aber auch per Exchange PowerShell einfach einen Liste der ServicePrincipals und diesen zugeordneten Rollen erstellen

Get-ServicePrincial `
| foreach {Get-ManagementRoleAssignment `
     -RoleAssignee $_.objectid} `
| fl RoleAssignee,Role,CustomResourceScope

Eine Ausgabe in eine Datei oder Konvertrierung in HTML überlasse ich ihnen.

Rückbau

Wer neue Dienste und Applikationen aufsetzt, sollte auch den späteren geordneten Rückbau beschreiben. Dazu gehört zuerst natürlich einmal, dass Sie bei der Einrichtung schon dokumentiert haben, was sie alles addiert haben.

Schritt Erledigt

EntraID: AppRegistration mit Enterprise App löschen

Das geht einfach per Browser auf https://portal.azure.com. Wenn ich die App Registration zuerst lösche, dann ist auch die Enterprise Application gelöscht worden. Wenn ich die Enterprise App lösche, wurde die App Registration nicht gelöscht. Da muss ich dann manuell nachholen.

Mit dem Löschen der App Registration kann auch eine bereits angemeldete Application nicht mehr auf das Postfach zugreifen. 

Exchange Service Principal

Durch das Löschen in EntraID wird auch der Service Principal gelöscht.

 

ManagementRoleAssignment

Auch die Rollenzuweisung wird direkt mit beseitigt. Zumindest habe ich die Einträge nicht mehr finden können

 

ManagementScope

Der Scope wurde nicht gelöscht. Hier musste ich noch manuell tätig werden.

Remove-ManagementScope `
   -Name "Scope MSXFAQ RBACApptest"
  

Hinweis:
Sie können in Entra ID eine gelöschte AppRegistration bis zu 30 Tage mittels "Undelete" samt den AppSecrets und API-Berechtigungen wieder zurückholen. EntraID stellt dann auch die Enterprise App wieder her. Der ServicePrincipal in Exchange und das Role Assignment werden aber nicht mehr hergestellt.

Das sehen Sie auch in den Sign-In Logs

Nach Löschen und Wiederherstellung der App Registration kann sich Graph zwar anmelden, aber der ServicePrincipal in Exchange fehlt, wird hier nur "00000000-0000-0000-0000-000000000000" angezeigt.

Ein Undelete, um einen Rückbau ungeschehen zu machen, ist keine Lösung. Zudem hatte ich auch nach der Wiederherstellung immer wieder "TokenIssuedBeforeRevocationTimestamp"-Fehler, weil anscheinend mein Graph-Client selbst in einer neuen Session mit den früheren Tokens.

Fehler und ihre Bedeutung

 Fehler Bedeutung

Connect-MgGraph: ClientCertificateCredential authentication failed: 

Ich versuchte mich mit einer AppID anzumelden, die nicht vorhanden war. Bei der Menge an GUIDs kann man ja schon mal durcheinander kommen.

Get-MgUserMessage_List: Current authenticated context is not valid for this request. This occurs when a request is made to an endpoint that requires user sign-in. For example, /me requires a signed-in user. Acquire a token on behalf of a user to make requests to these endpoints. Use the OAuth 2.0 authorization code flow for mobile and native apps and the OAuth 2.0 implicit flow for single-page web apps.  

Meine Anmeldung als Application war erfolgreich aber ich hatte keine Berechtigungen auf das Postfach, weil das Role Assignment nicht vorhanden war

Get-MgUserMessage_List: ClientCertificateCredential authentication failed:

Meine App war angemeldet und danach habe ich die App Registration gelöscht. Der

Get-MgUserMessage_List: Continuous access evaluation resulted in challenge with result: InteractionRequired and code: TokenIssuedBeforeRevocationTimestamp

Den Fehler sollten Sie normal nicht haben. Ich habe die App Registration in EntraID gelöscht und aus dem Papierkorb zurückgeholt. Dort sah dann alles gut aus, aber die Graph-Session hatte ein SAML-Token, welches vor dem Datum der Wiederherstellung gelegen hat. Meine App muss sich daher erst neu anmelden.

Nutzung mit IMAP/POP/SMTP

Der Zugriff auf ein Postfach per IMAP4 ist aus meiner Sicht natürlich nur der zweibeste Weg, da über IMAP viele Informationen in Exchange nur eingeschränkt abrufbar sind. Sie können zwar sehr einfach noch Mails lesen, senden, verschieben und löschen. Zugriffe auf Termine, Aufgaben und Kontakte sind so aber nicht mögliche. Für IMAP gibt es es aber auch keine "RBAC for Applications" sondern eine andere Berechtigungsvergabe. Die Schritte zum Anlegen einer Application mit Secret sind identisch zur ersten Beschreibung. Der Unterschied ist die Vergabe der Berechtigungen.

API Berechtigungen vergeben

Anstelle der Graph-Berechtigungen müssen Sie nun die IMAP-Berechtigungen für die Schnittstelle "Office 365 Exchange Online" suchen:

Dann wechseln Sie wieder auf "Application permissions" und suchen nach IMAP.

Auch dieses Rechte müssen Sie danach mit Admin Consent noch gesondert freischalten. Anders als bei Graph hat die App damit aber noch keine Rechte auf Postfächer sondern es ist nur die Anmeldung per IMAP4 erlaubt.

Sie müssen dann wieder mit der Exchange Online PowerShell einen Service Principal anlegen aber dieses Objekt bekommt dann die Rechte mit "Add-MailboxPermission´" auf die gewünschten Postfächer:

Add-MailboxPermission `
   -Identity "user1@msxfaqdev.de" `
   -User $ServicePrincipal.Id `
   -AccessRights FullAccess

Die Herausforderung ist nun natürlich sich mit einem IMAP4-Client per OAUTH anzumelden. Das ist dann eine Aufgabe ihrer Applikation, die statt Graph auf IMAP4 aufsetzt und mit Exchange Online kompatibel sein will. Sie muss zumindest OAUTH unterstützen, damit eine Anmeldung mit "AppID" und "AppSecret" möglich ist.

Hintergrund: Zugriffswege

Sowohl Exchange OnPremises als auch Exchange Online bieten unterschiedlichste Schnittstellen für den Zugriff durch Anwender oder Prozesse an. Nicht jede Plattform bietet jeden Weg an. Hier eine Gegenüberstellung:

Protokoll Exchange OnPremises Exchange Online

MAPI/RPC

Damit haben die ersten Outlook Versionen gearbeitet. Automatisierung war über eine lokale COM-API möglich.

40-2010

Nie supported

RPC/HTTP - Outlook Anywhere

Zur Erreichbarkeit per HTTPS hat Microsoft "MAPI/RPC in HTTPS als Zwischenlösung eingepackt. Automatisierung war über eine lokale COM-API möglich.

2003-2013

Bis 31.Okt. 2017

MAPI/HTTP

Das ist das heute von "Classic Outlook" genutzte Protokoll. DAs "New Outlook" nutzt ein anderes Protokoll. Automatisierung war über eine lokale COM-API möglich.

2013SP1-SE

Über Client COMAPI

ActiveSync/HTTP

Protokoll für mobiler Clients. Nicht als API für Entwicklungen nutzbar

Exchange 2000 - SE

Über Client COMAPI

EWS/HTTP

Die WebServices über HTTP ist für Exchange OnPremises das beste Protokoll aber wird in Exchange Online abgeschaltet. OnPremises können Sie Rechte pro Postfach geben oder mit EWS Impersonation arbeiten

Exchange 2000-SE

Bis Okt 2026

Microsoft Graph API/HTTP

Mit Exchange Online ist die Rest-API das bevorzugte Protokoll

Nur Inoffiziell.
Abgekündigt

Supported

IMAP4/POP3/SMTPAuth

Exchange unterstützt natürlich auch die Internet-Standards, aber hier sind einige Funktionen nicht möglich. Sie sind daher Protokolle "zweiter Klasse"

Alle

Alle

SMTP Anonym

Sie können natürlich Mails per SMTP an ihrem Tenant einwerfen. Über entsprechende Inbound-Connectoren (Online) oder Einstellungen im Receive Connector (OnPremises) können Sie sogar anonym einige Berechtigungen zulassen. In der Regel geht es hier aber nur um die Zustellung um Mails an ihre eigenen Benutzer, die Sie aufgrund der SourceIP-Adressen beim Spamfilter besser behandeln.

Alle 

Alle

Wenn Sie sich die Tabelle anschauen, dann sollten Sie ihre bestehenden Produkte oder auch Neuentwicklungen mit Exchange Online auf "Graph" aufsetzen. IMAP/POP/SMTP ist eigentlich auf Mails beschränkt und alle anderen Protokolle lassen sich nicht sinnvoll automatisieren. OnPremises-Lösungen müssen hingegen auf EWS aufsetzen, da es für Exchange SE wohl keine REST-API wie bei Graph mehr geben wird. Die Wege IPAM4/POP3/SMTP habe ich aufgrund der Einschränkungen auch Gelb gesetzt.

Hintergrund: Authentifizierung

Als Entwickler stellt sich nicht nur die Frage nach dem richtigen Protokolle zum passenden Backend samt Autorisierung sondern auch wie die Authentifizierung, d.h. die eigentliche Anmeldung erfolgt. Anmeldungen mit Benutzername + Kennwort wurden in Microsoft 365 und Exchange Online bis auf ganz wenige Ausnahmen abgeschaltet und auch eine "Integrierte Anmeldung" mit NTLM oder Kerberos gibt es nur bei Exchange OnPremises aber nicht in Exchange Online. Hier ist OAUTH und SAML gesetzt und sie sollte gar nicht erst versuchen, eine andere Authentifizierung temporär zu versuchen.

Aus Vereinfachungsgründen lasse ich die "Delegate Anmeldung" als Benutzer weg und orientiere mich nur an der Anmeldung als App. Wenn ihre Application, wie weiter oben beschrieben. bereits eingerichtet wurde, dann haben Sie eine AppID, was quasi ihr Benutzername ist. Dann brauchen Sie nur noch das AppSecret als Kennwort oder besser ein Zertifikat um mit einem HTTP-Request ein SAML-Ticket zu erhalten, mit dem Sie dann die API so lange weiter nutzen können, bis das Ticket nicht mehr gültig ist. Folgende Ammeldeverfahren werden je API unterstützt:

Protokoll Exchange OnPremises Exchange Online

MAPI/RPC

Basic, NTLM, Kerberos

Nie supported

RPC/HTTP - Outlook Anywhere

Basic, NTLM, Kerberos

Nicht mehr möglich

MAPI/HTTP

Basic, NTLM, Kerberos, OAUTH

OAUTH

ActiveSync/HTTP

Basic, NTLM, Kerberos, OAUTH

OAUTH

EWS/HTTP

Basic, NTLM, Kerberos, OAUTH

OAUTH. Bis Okt 2026

Microsoft Graph API/HTTP

Nicht verfübgar

Supported

IMAP4/POP3/SMTPAuth

Basic, NTLM, Kerberos, OAUTH

OAUTH

SMTP Anonym

SourceIP

SourceIP/Zertifikat

Auch hier wird schnell klar: OnPremises können Sie sich einfach mit NTLM, Kerberos und, wenn der Administrator es zulässt, auch mit Username und Kennwort anmelden. Sie sollten dann natürlich auf eine TLS-Verschlüsselung bestehen. Wer Hybrid Modern Authentication (HMA) aktiviert hat, kann auch mit Exchange OnPremises und SAML/OAUTH arbeiten. Mit Exchange Online ist OAUTH hingegen Pflicht.

Weitere Links