Authentifizieren einer IMAP-, POP- oder SMTP-Verbindung mithilfe von OAuth
Artikel
Erfahren Sie, wie Sie die OAuth-Authentifizierung verwenden, um eine Verbindung mit IMAP-, POP- oder SMTP-Protokollen herzustellen und auf E-Mail-Daten für Office 365-Benutzende zuzugreifen.
OAuth2-Unterstützung für IMAP-, POP- und SMTP-Protokolle wie unten beschrieben ist sowohl für Microsoft 365 (einschließlich Office im Web) als auch für Benutzende von Outlook.com verfügbar.
Wenn Sie mit dem OAuth 2.0-Protokoll nicht vertraut sind, finden Sie weitere Informationen unter OAuth 2.0-Protokoll unter Microsoft Identity Platform-Übersicht. Weitere Informationen zu den Microsoft-Authentifizierungsbibliotheken (MSAL), die das OAuth 2.0-Protokoll implementieren, um Benutzer zu authentifizieren und auf sichere APIs zuzugreifen, finden Sie unter MSAL-Übersicht.
Sie können den von Microsoft Entra bereitgestellten OAuth-Authentifizierungsdienst verwenden, um Ihrer Anwendung die Verbindung mit IMAP-, POP- oder SMTP-Protokollen für den Zugriff auf Exchange Online in Office 365 zu ermöglichen. Um OAuth mit Ihrer Anwendung zu verwenden, müssen Sie Folgendes ausführen:
Sie können eine unserer MSAL-Clientbibliotheken verwenden, um ein Zugriffstoken aus Ihrer Clientanwendung abzurufen.
Alternativ können Sie aus der folgenden Liste einen geeigneten Flow auswählen und die entsprechenden Schritte befolgen, um die zugrunde liegenden REST-APIs der Identitätsplattform aufzurufen und ein Zugriffstoken abzurufen.
Stellen Sie sicher, dass Sie beim Autorisieren Ihrer Anwendung und Anfordern eines Zugriffstokens alle Bereiche angeben, einschließlich der Outlook-Ressourcen-URLs.
Protokoll
Zeichenfolge des Berechtigungsbereichs
IMAP
https://outlook.office.com/IMAP.AccessAsUser.All
POP
https://outlook.office.com/POP.AccessAsUser.All
SMTP-AUTHENTIFIZIERUNG
https://outlook.office.com/SMTP.Send
Darüber hinaus können Sie den Bereich offline_access anfordern. Wenn Benutzende den offline_access-Bereich genehmigen, kann Ihre App Aktualisierungstoken vom Tokenendpunkt der Microsoft Identity Platform empfangen. Aktualisierungstoken haben eine lange Lebensdauer. Ihre App kann neue Zugriffstoken abrufen, wenn ältere ablaufen.
Alternativ können Sie den OAuth2-Genehmigungsflow für Clientanmeldeinformationen anstelle des OAuth2-Autorisierungscode-Flows oder des OAuth2-Geräteautorisierungsgenehmigungsflows verwenden, um ein Zugriffstoken abzurufen.
Für die OAuth-Integration muss Ihre Anwendung das SASL XOAUTH2-Format zum Kodieren und Übertragen des Zugriffstokens verwenden. SASL XOAUTH2 codiert den Benutzername und das Zugriffstoken im folgenden Format:
Beispielsweise lautet das SASL XOAUTH2-Format für den Zugriff auf test@contoso.onmicrosoft.com mit Zugriffstoken EwBAAl3BAAUFFpUAo7J3Ve0bjLBWZWCclRC3EoAA wie folgt:
SASL XOAUTH2-Authentifizierung für freigegebene Postfächer in Office 365
Im Fall des Zugriffs auf freigegebene Postfächer mithilfe von OAuth muss eine Anwendung das Zugriffstoken im Namen eines Benutzenden abrufen, aber das Feld userName in der SASL XOAUTH2-codierten Zeichenfolge durch die E-Mail-Adresse des freigegebenen Postfachs ersetzen.
IMAP-Protokollaustausch
Um eine IMAP-Serververbindung zu authentifizieren, muss der Client mit einem AUTHENTICATE-Befehl im folgenden Format antworten:
text
AUTHENTICATE XOAUTH2 <base64 string in XOAUTH2 format>
Beispiel für einen Client-Server-Nachrichtenaustausch, der zu einem erfolgreichen Authentifizierungserfolg führt:
Um eine POP-Serververbindung zu authentifizieren, muss der Client mit einem AUTH-Befehl antworten, der in zwei Zeilen im folgenden Format unterteilt ist:
text
AUTH XOAUTH2
<base64 string in XOAUTH2 format>
Beispiel für einen Client-Server-Nachrichtenaustausch, der zu einem erfolgreichen Authentifizierungserfolg führt:
Flow zur Gewährung von Clientanmeldeinformationen zum Authentifizieren von SMTP-, IMAP- und POP-Verbindungen verwenden
Dienstprinzipale in Exchange werden verwendet, um Anwendungen den Zugriff auf Exchange-Postfächer über den Clientanmeldeinformationsfluss mit den SMTP-, POP- und IMAP-Protokollen zu ermöglichen.
Hinzufügen der POP-, IMAP- oder SMTP-Berechtigungen zu Ihrer Entra AD-Anwendung
Wählen Sie im Azure-Portal das Blatt API-Berechtigungen in der Verwaltungsansicht Ihrer Microsoft Entra-Anwendung aus.
Wählen Sie Berechtigung hinzufügen aus.
Wählen Sie die Registerkarte APIs, die meine Organisation verwendet aus und suchen Sie nach „Office 365 Exchange Online“.
Klicken Sie auf Anwendungsberechtigungen.
Wählen Sie für den POP-Zugriff die Berechtigung POP.AccessAsApp aus. Wählen Sie für den IMAP-Zugriff die Berechtigung IMAP.AccessAsApp aus. Wählen Sie für den SMTP-Zugriff die Berechtigung SMTP.SendAsApp aus.
Der folgende Screenshot zeigt die ausgewählten Berechtigungen:
Nachdem Sie den Berechtigungstyp ausgewählt haben, wählen Sie Berechtigungen hinzufügen aus.
Sie sollten nun über die Berechtigungen der SMTP-, POP- oder IMAP-Anwendung verfügen, die den Berechtigungen Ihrer Entra AD-Anwendung hinzugefügt wurden.
Zustimmung des Mandantenadmins abrufen
Um über POP oder IMAP auf Exchange-Postfächer zuzugreifen, muss Ihre Entra AD-Anwendung die Zustimmung des Mandantenadmins für jeden Mandanten einholen. Weitere Informationen finden Sie unter Mandantenadmin-Zustimmungsprozess.
So erteilen Sie die Zustimmung, wenn die Anwendung für die Verwendung durch mehrere Mandanten registriert/konfiguriert ist, z. B. für eine von Partnern/ISVs entwickelte zentral registrierte Anwendung.
Wenn Ihr ISV/Partner die Microsoft Entra-Anwendung mit der Option „Konten in jedem Organisationsverzeichnis“ registriert hat, müssen Sie diese Anwendung hinzufügen und ihr mithilfe der folgenden Schritte zustimmen, indem Sie die URL der Autorisierungsanforderung verwenden.
POP- und IMAP-Leitfaden
In Ihrer OAuth 2.0-Mandantenautorisierungsanforderung sollte der scope-Abfrageparameter „https://ps.outlook.com/.default“ sowohl für den POP- als auch den IMAP-Anwendungsbereich gelten.
Die OAuth 2.0-Autorisierungsanforderungs-URL wird im folgenden Beispiel gezeigt:
In Ihrer OAuth 2.0-Mandantenautorisierungsanforderung sollte der scope-Abfrageparameter „https://outlook.office365.com/.default“ nur für SMTP gelten. Die OAuth 2.0-Autorisierungsanforderungs-URL wird im folgenden Beispiel gezeigt:
So erteilen Sie Ihre Zustimmung, wenn Sie die Anwendung für Ihren eigenen Mandanten registriert haben.
Wenn Sie Ihre Anwendung in Ihrem eigenen Mandanten mit „Nur Konten in diesem Organisationsverzeichnis“ registriert haben, können Sie fortfahren und die Anwendungskonfigurationsseite im Microsoft Entra Admin Center verwenden, um die Adminzustimmung zu erteilen, und Sie müssen nicht den Ansatz mit der Autorisierungsanforderungs-URL verwenden.
Der folgende Screenshot zeigt, wie Sie über die Anwendungskonfigurationsseite im Microsoft Entra Admin Center die Adminzustimmung erteilen.
Dienstprinzipale in Exchange registrieren
Sobald ein Mandantenadmin Ihrer Microsoft Entra-Anwendung zustimmt, muss er den Dienstprinzipal Ihrer Entra AD-Anwendung in Exchange über Exchange Online PowerShell registrieren. Diese Registrierung wird durch das New-ServicePrincipal Cmdlet aktiviert.
Um das Cmdlet New-ServicePrincipal zu verwenden, installieren Sie ExchangeOnlineManagement und stellen Sie eine Verbindung mit Ihrem Mandanten her, wie im folgenden Codeausschnitt gezeigt:
Wenn beim Ausführen des Cmdlets New-ServicePrincipal nach dem Ausführen dieser Schritte immer noch ein Fehler auftritt, liegt dies wahrscheinlich daran, dass die benutzende Person nicht über ausreichende Berechtigungen in Exchange Online verfügt, um den Vorgang auszuführen.
Die Registrierung des Dienstprinzipals einer Microsoft Entra-Anwendung in Exchange wird im folgenden Beispiel gezeigt:
Der Mandantenadmin kann die oben genannten Dienstprinzipalbezeichner in der Unternehmensanwendungsinstanz Ihrer Entra AD-Anwendung auf dem Mandanten finden. Die Liste der Unternehmensanwendungsinstanzen auf dem Mandanten finden Sie auf dem Blatt Unternehmensanwendungen in der Microsoft Entra-Ansicht im Azure-Portal.
Sie können den Bezeichner Ihres registrierten Dienstprinzipals mithilfe des Get-ServicePrincipal Cmdletsabrufen.
text
Get-ServicePrincipal | fl
Die OBJECT_ID ist die Objekt-ID von der Übersichtsseite des Unternehmensanwendungsknotens (Azure-Portal) für die Anwendungsregistrierung. Es handelt sich nicht um die Objekt-ID von der Übersichtsseite des Knotens „App-Registrierungen“. Die Verwendung der falschen Objekt-ID führt zu einem Authentifizierungsfehler.
Der folgende Screenshot zeigt ein Beispiel, in dem die richtige Objekt-ID gefunden wird, die mit „6d“ beginnt:
Der Mandantenadmin kann nun die spezifischen Postfächer im Mandanten hinzufügen, auf die Ihre Anwendung zugreifen darf. Diese Konfiguration erfolgt mit dem Add-MailboxPermission Cmdlet.
Das folgende Beispiel zeigt, wie Sie dem Dienstprinzipal Ihrer Anwendung Zugriff auf ein Postfach gewähren:
Unterschiedliche IDs werden bei der Erstellung des Exchange-Dienstprinzipals sowie später auch bei der Erteilung von Postfachberechtigungen verwendet.
Optionales Beispiel:
Das folgende Beispiel kann Ihnen dabei helfen, die richtige ID für die verschiedenen Phasen zu verwenden. In diesem Beispiel werden Microsoft Entra-Cmdlets verwendet. Daher müssen Sie das Microsoft Entra PowerShell-Modul installieren, sofern noch nicht geschehen. Weitere Informationen finden Sie unter Microsoft Entra PowerShell für Graph installieren.
Ihre Microsoft Entra-Anwendung kann jetzt über das SMTP-, POP- oder IMAP-Protokoll über den OAuth 2.0-Clientanmeldeinformations-Gewährungsflow auf die zulässigen Postfächer zugreifen. Weitere Informationen finden Sie in den Anweisungen unter Berechtigungen und Zustimmung in der Microsoft Identity Platform.
Sie müssen https://outlook.office365.com/.default in der Eigenschaft „scope“ in der Textnutzlast für die Zugriffstokenanforderung verwenden.
Die generierten Zugriffstoken können wie zuvor beschrieben als Token zum Authentifizieren von SMTP-, POP- und IMAP-Verbindungen über das SASL XOAUTH2-Format verwendet werden.
Hinweis
Wenn Sie versuchen, den Flow zur Gewährung von Clientanmeldeinformationen mit SendAs zu verwenden, müssen Sie der absendenden Person SendAs-Berechtigungen erteilen: Add-RecipientPermission (ExchangePowerShell).
Veranschaulichen der Features von Microsoft Entra ID, um Identitätslösungen zu modernisieren sowie Hybridlösungen und Identitätsgovernance zu implementieren