Für den Zugriff ist ein Oauth-Token erforderlich
Authentifizieren einer IMAP-, POP- oder SMTP-Verbindung mithilfe von OAuth
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-Benutzer zuzugreifen.
Die 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 Outlook.com Benutzer verfügbar.
Wenn Sie mit dem OAuth 2.0-Protokoll nicht vertraut sind, finden Sie weitere Informationen unter Übersicht über das OAuth 2.0-Protokoll in Microsoft Identity Platform. Weitere Informationen zu den Microsoft-Authentifizierungsbibliotheken (Microsoft Authentication Libraries, MSAL), die das OAuth 2.0-Protokoll zum Authentifizieren von Benutzern und zum Zugriff auf sichere APIs implementieren, finden Sie unter MSAL-Übersicht.
Sie können den von Microsoft Entra (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 zu ermöglichen. Office 365. Um OAuth mit Ihrer Anwendung zu verwenden, müssen Sie folgende Schritte ausführen:
- Registrieren Sie Ihre Anwendung bei Microsoft Entra.
- Rufen Sie ein Zugriffstoken von einem Tokenserver ab.
- Authentifizieren Sie Verbindungsanforderungen mit einem Zugriffstoken.
Registrieren der Anwendung
Um OAuth verwenden zu können, muss eine Anwendung bei Microsoft Entra registriert sein.
Befolgen Sie die Anweisungen unter Registrieren einer Anwendung bei der Microsoft Identity Platform, um eine neue Anwendung zu erstellen.
Abrufen eines Zugriffstokens
Sie können eine unserer MSAL-Clientbibliotheken verwenden, um ein Zugriffstoken von Ihrer Clientanwendung abzurufen.
Alternativ können Sie einen geeigneten Ablauf aus der folgenden Liste auswählen und die entsprechenden Schritte ausführen, um die zugrunde liegenden Identity Platform-REST-APIs aufzurufen und ein Zugriffstoken abzurufen.
- Ablauf des OAuth2-Autorisierungscodes
- OAuth2-Geräteautorisierungsablauf
Sie sicher, dass Sie die vollständigen Bereiche, einschließlich Outlook-Ressourcen-URLs, angeben, wenn Sie Ihre Anwendung autorisieren und ein Zugriffstoken anfordern.
Protokoll | Berechtigungsbereich string |
---|---|
IMAP | |
POP | |
SMTP AUTH |
Darüber hinaus können Sie offline_access Bereich anfordern. Wenn ein Benutzer den offline_access-Bereich genehmigt, kann Ihre App Aktualisierungstoken vom Microsoft Identity Platform-Tokenendpunkt empfangen. Aktualisierungstoken sind langlebig. Ihre App kann neue Zugriffstoken abrufen, wenn ältere Token ablaufen.
Alternativ können Sie den OAuth2-Flow für die Gewährung von Clientanmeldeinformationen verwenden, um ein Zugriffstoken abzurufen, anstelle des OAuth2-Autorisierungscodeflows oder des OAuth2-Geräts Ablauf der Autorisierungserteilung.
Authentifizieren von Verbindungsanforderungen
Sie können eine Verbindung mit Office 365-E-Mail-Servern mithilfe der IMAP- und POP-E-Mail-Einstellungen für Office 365 initiieren.
Für die SASL- XOAUTH2
OAuth-Integration muss Ihre Anwendung das SASL-Format XOAUTH2 verwenden, um das Zugriffstoken zu codieren und zu übertragen. SASL-XOAUTH2 codiert den Benutzernamen und das Zugriffstoken zusammen im folgenden Format:
stellt ein Steuerelement + A () dar.
Das SASL-XOAUTH2 Format für den Zugriff mit Zugriffstoken lautet z. B
.: Nach der Base64-Codierung wird dieses Format in die folgende Zeichenfolge übersetzt. Die Zeilenumbrüche werden zur besseren Lesbarkeit eingefügt.
SASL-XOAUTH2 Authentifizierung für freigegebene Postfächer in Office 365
Beim Zugriff auf freigegebene Postfächer mithilfe von OAuth muss eine Anwendung das Zugriffstoken auf Im Namen eines Benutzers, aber ersetzen Sie das Feld userName in der SASL-XOAUTH2 codierten Zeichenfolge durch die E-Mail-Adresse des freigegebenen Postfachs.
IMAP-Protokollaustausch
Um eine IMAP-Serververbindung zu authentifizieren, muss der Client mit einem Befehl im folgenden Format antworten:
Beispiel für einen Client-Server-Nachrichtenaustausch, der zu einem erfolgreichen Authentifizierungsergebnis führt:
Beispiel für einen Client-Server-Nachrichtenaustausch, der zu einem Authentifizierungsfehler führt:
POP-Protokollaustausch
Um eine POP-Serververbindung zu authentifizieren, muss der Client mit einem Befehl antworten, der in zwei Zeilen im folgenden Format aufgeteilt ist:
Beispiel für einen Client-Server-Nachrichtenaustausch, der zu einem erfolgreichen Authentifizierungserfolg führt:
Beispiel für einen Client-Server-Nachrichtenaustausch, der zu einem Authentifizierungsfehler führt:
SMTP-Protokollaustausch
an Authentifizieren einer SMTP-Serververbindung muss der Client mit einem Befehl im folgenden Format antworten:
Beispiel für einen Client-Server-Nachrichtenaustausch, der zu einem erfolgreichen Authentifizierungserfolg führt:
Beispiel für einen Client-Server-Nachrichtenaustausch, der zu einem Authentifizierungsfehler führt:
Verwenden des Ablaufs für die Gewährung von Clientanmeldeinformationen zum Authentifizieren von SMTP-, IMAP- und POP-Verbindungen
Dienstprinzipale in Exchange werden verwendet, um Anwendungen den Zugriff auf Exchange-Postfächer über den Fluss von Clientanmeldeinformationen mit den Protokollen SMTP, POP und IMAP zu ermöglichen.
Hinzufügen der POP-, IMAP- oder SMTP-Berechtigungen zu Ihrer Entra AD-Anwendung
-
Wählen Sie im Azure-Portal in der Verwaltungsansicht Ihrer Microsoft Entra Anwendung das Blatt API-Berechtigungen aus.
-
Wählen Sie Berechtigung hinzufügen aus.
-
Wählen Sie die Schaltfläche APIs, die meine Organisation verwendet, Registerkarte, und suchen Sie nach " Office 365 Exchange Online ".
-
Klicken Sie auf Anwendungsberechtigungen .
-
Wählen Sie für POP-Zugriff die POP aus. AccessAsApp-Berechtigung. Wählen Sie für den IMAP-Zugriff die IMAP-Option aus. AccessAsApp-Berechtigung. Wählen Sie für den SMTP-Zugriff SMTP aus . SendAsApp-Berechtigung.
-
Nachdem Sie den Berechtigungstyp ausgewählt haben, wählen Sie Berechtigungen hinzufügen aus.
Sie sollten jetzt die SMTP-, POP- oder IMAP-Anwendungsberechtigungen zu den Berechtigungen Ihrer Entra AD-Anwendung hinzugefügt haben.
Einholung der Zustimmung des Mandantenadministrators
Um über POP oder IMAP auf Exchange-Postfächer zugreifen zu können, muss Ihre Entra AD-Anwendung für jeden Mandanten die Zustimmung des Mandantenadministrators einholen. Weitere Informationen finden Sie unter Genehmigungsprozess für Mandantenadministratoren.
Erteilen der Einwilligung, wenn die Anwendung für die Verwendung mit mehreren Mandanten registriert/konfiguriert ist, z. B. für eine vom Partner/ISV entwickelte zentral registrierte Anwendung
. Wenn Ihr ISV/Partner die Microsoft Entra-Anwendung mit der Option "Konten in einem beliebigen Organisationsverzeichnis" registriert hat, müssen Sie diese Anwendung hinzufügen und ihr mithilfe der folgenden Schritte zustimmen, indem Sie die Autorisierungsanforderungs-URL nutzen.
POP- und IMAP-Leitfaden
In Ihrer OAuth 2.0-Mandantenautorisierungsanforderung sollte der Abfrageparameter sowohl für den POP- als auch für den IMAP-Anwendungsbereich gelten. Die URL der OAuth 2.0-Autorisierungsanforderung wird im folgenden Beispiel gezeigt:
SMTP-Leitfaden
In Ihrer OAuth 2.0-Mandantenautorisierungsanforderung sollte der Abfrageparameter nur für SMTP gelten. Die URL der OAuth 2.0-Autorisierungsanforderung wird in der Datei folgendes Beispiel:
Erteilen der Einwilligung, wenn Sie die Anwendung für Ihren eigenen Mandanten registriert
habenWenn 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 Administratoreinwilligung zu erteilen, und Sie müssen den URL-Ansatz für die Autorisierungsanforderung nicht verwenden.
Registrieren von Dienstprinzipalen in Exchange
Sobald ein Mandantenadministrator 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 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 eines Fehlers weiterhin ein Fehler auftritt das Cmdlet New-ServicePrincipal verwenden, nachdem Sie diese Schritte ausgeführt haben, liegt dies wahrscheinlich daran, dass der Benutzer 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 Mandantenadministrator 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.
Mit dem Cmdlet können Sie den Bezeichner Ihres registrierten Dienstprinzipals abrufen.
Die OBJECT_ID ist die Objekt-ID auf der Seite Übersicht des Knotens Unternehmensanwendung (Azure-Portal) für die Anwendungsregistrierung. Das ist es nicht die Objekt-ID auf der Seite Übersicht des Knotens App-Registrierungen. Die Verwendung der falschen Objekt-ID führt zu einem Authentifizierungsfehler.
Der Mandantenadministrator kann jetzt die spezifischen Postfächer im Mandanten hinzufügen, auf die Ihre Anwendung zugreifen darf. Diese Konfiguration erfolgt mit dem Cmdlet.
Das folgende Beispiel zeigt, wie Sie dem Dienstprinzipal Ihrer Anwendung Zugriff auf ein Postfach gewähren:
Bei der Erstellung des Exchange-Dienstprinzipals und später beim Erteilen von Postfachberechtigungen werden unterschiedliche IDs verwendet. Das folgende Beispiel kann Ihnen helfen, die richtige ID für die verschiedenen Phasen zu verwenden. In diesem Beispiel werden Microsoft Entra Cmdlets verwendet. Sie müssen also das Microsoft Entra PowerShell-Modul installieren, falls Sie dies noch nicht getan haben. Weitere Informationen finden Sie unter Installieren von Microsoft Entra PowerShell für Graph.
Ihre Microsoft Entra Anwendung kann nun über die SMTP-, POP- oder IMAP-Protokolle, die den OAuth 2.0-Client Credential Grant-Flow verwenden. Weitere Informationen finden Sie in den Anweisungen unter Berechtigungen und Zustimmung in der Microsoft Identity Platform.
Sie müssen in der Eigenschaft in der Nutzlast body für die Zugriffstokenanforderung verwenden.
Die generierten Zugriffstoken können als Token verwendet werden, um SMTP-, POP- und IMAP-Verbindungen über das SASL-XOAUTH2-Format zu authentifizieren, wie zuvor beschrieben.