OAuth2-Unterstützung für den E-Mail-Service oauth2-support-for-the-mail-service
AEM as a Cloud Service bietet OAuth2-Unterstützung für seinen integrierten E-Mail-Service an, um Unternehmen die Einhaltung der E-Mail-Sicherheitsanforderungen zu ermöglichen.
Sie können OAuth für mehrere E-Mail-Anbieter konfigurieren. Im Folgenden finden Sie eine schrittweise Anleitung zum Konfigurieren des AEM-E-Mail-Service für die Authentifizierung über OAuth2 mit Microsoft® Office 365 Outlook. Andere Anbieter können auf ähnliche Weise konfiguriert werden.
Weitere Informationen zum AEM as a Cloud Service E-Mail-Service finden Sie unter Senden von E-Mails.
Microsoft® Outlook microsoft-outlook
-
Gehen Sie zu https://portal.azure.com/ und melden Sie sich an.
-
Suchen Sie in der Suchleiste nach Azure Active Directory und klicken Sie auf das Ergebnis. Alternativ können Sie direkt zu https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Overview navigieren
-
Klicken Sie auf App-Registrierung > Neue Registrierung.
-
Füllen Sie die Informationen entsprechend Ihren Anforderungen aus und klicken Sie dann auf Registrieren.
-
Wechseln Sie zur erstellten Anwendung und wählen Sie API-Berechtigungen aus.
-
Klicken Sie auf Berechtigung hinzufügen > Diagrammberechtigungen > Delegierte Berechtigungen.
-
Wählen Sie die folgenden Berechtigungen für Ihre Anwendung aus und klicken Sie dann auf Berechtigung hinzufügen:
note note NOTE Die Konfiguration von Berechtigungen kann sich im Laufe der Zeit weiterentwickeln. Arbeiten Sie mit Microsoft® zusammen, wenn diese nicht erwartungsgemäß funktionieren. https://outlook.office.com/SMTP.Send
openid
offline_access
email
profile
-
Gehen Sie zu Authentifizierung > Plattform hinzufügen > Web und fügen Sie im Abschnitt URLs umleiten die folgenden URLs hinzu – eine mit und eine ohne Schrägstrich:
http://localhost/
http://localhost
-
Klicken Sie auf Konfigurieren, nachdem Sie jede URL hinzugefügt und Ihre Einstellungen Ihren Anforderungen entsprechend konfiguriert haben.
-
Gehen Sie dann zu Zertifikate und geheime Schlüssel, klicken Sie auf Neuer geheimer Client-Schlüssel und folgen Sie den Anweisungen auf dem Bildschirm, um einen geheimen Schlüssel zu erstellen. Notieren Sie sich dieses Geheimnis für die spätere Verwendung.
-
Klicken Sie auf Überblick im linken Bereich und kopieren Sie die Werte für Anwendungs-ID (Client) und Verzeichnis-ID (Mandant) zur späteren Verwendung.
Zusammenfassend benötigen Sie die folgenden Informationen, um OAuth2 für den E-Mail-Service auf der AEM-Seite zu konfigurieren:
- Die Auth-URL, die mit der Mandanten-ID erstellt wird. Sie besitzt folgende Form:
https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/authorize
- Die Token-URL, die mit der Mandanten-ID erstellt wird. Sie besitzt folgende Form:
https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/token
- Die Aktualisierungs-URL, die mit der Mandanten-ID erstellt wird. Sie besitzt folgende Form:
https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/token
- Die Client-ID
- Das Client-Geheimnis
Erzeugen des Aktualisierungstokens generating-the-refresh-token
Generieren Sie anschließend in einem nachfolgenden Schritt das Aktualisierungs-Token, das Teil der OSGi-Konfiguration ist, indem Sie Folgendes ausführen:
-
Öffnen Sie die folgende URL im Browser, nachdem Sie
clientID
undtenantID
durch die für Ihr Konto spezifischen Werte ersetzt haben:code language-none https://login.microsoftonline.com/%3ctenantID%3e/oauth2/v2.0/authorize?client_id=%3cclientId%3e&response_type=code&redirect_uri=http://localhost&response_mode=query&scope=https://outlook.office.com/SMTP.Send%20email%20openid%20profile%20offline_access&state=12345`
-
Wenn Sie gefragt werden, erlauben Sie die Berechtigung.
-
Die URL wird an einen neuen Ort umgeleitet. Sie wird in folgendem Format erstellt:
code language-none http://localhost/?code=<code>&state=12345&session_state=4f984c6b-cc1f-47b9-81b2-66522ea83f81#`
-
Kopieren Sie den Wert von
<code>
aus dem obigen Beispiel. -
Verwenden Sie den folgenden cURL-Befehl, um das refreshToken abzurufen. Ersetzen Sie tenantID, clientID und clientSecret durch die Werte für Ihr Konto und den Wert für
<code>
:code language-none curl --location --request POST 'https://login.microsoftonline.com/<tenantId>/oauth2/v2.0/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Cookie: buid=0.ARgAep0nU49DzUGmoP2wnvyIkcQjsx26HEpOnvHS0akqXQgYAAA.AQABAAEAAAD--DLA3VO7QrddgJg7Wevry9XPJSKbGVlPt5NWYxLtTl3K1W0LwHXelrffApUo_K02kFrkvmGm94rfBT94t25Zq4bCd5IM3yFOjWb3V22yDM7-rl112sLzbBQBRCL3QAAgAA; esctx=AQABAAAAAAD--DLA3VO7QrddgJg7Wevr4a8wBjYcNbBXRievdTOd15caaeAsQdXeBAQA3tjVQaxmrOXFGkKaE7HBzsJrzA-ci4RRpor-opoo5gpGLh3pj_iMZuqegQPEb1V5sUVQV8_DUEbBv5YFV2eczS5EAhLBAwAd1mHx6jYOL8LwZNDFvd2-MhVXwPd6iKPigSuBxMogAA; x-ms-gateway-slice=estsfd; stsservicecookie=estsfd; fpc=Auv6lTuyAP1FuOOCfj9w0U_5vR5dAQAAALDXP9gOAAAAwIpkkQEAAACT2T_YDgAAAA' \ --data-urlencode 'client_id=<clientID>' \ --data-urlencode 'scope=https://outlook.office.com/SMTP.Send https://graph.microsoft.com/Mail.Read https://graph.microsoft.com/Mail.Send https://graph.microsoft.com/User.Read email openid profile offline_access' \ --data-urlencode 'redirect_uri=http://localhost' \ --data-urlencode 'grant_type=authorization_code' \ --data-urlencode 'client_secret=<clientSecret>' \ --data-urlencode 'code=<code>'
-
Notieren Sie sich die Werte für refreshToken und accessToken.
Validieren der Tokens validating-the-tokens
Bevor Sie mit der OAuth-Konfiguration auf der AEM-Seite fortfahren, überprüfen Sie mit dem folgenden Verfahren sowohl accessToken als auch refreshToken:
-
Generieren Sie das accessToken, indem Sie das im vorherigen Verfahren erzeugte refreshToken verwenden, wobei Sie die folgende cURL verwenden und die Werte für
<client_id>
,<client_secret>
und<refreshToken>
ersetzen:code language-none curl --location --request POST 'https://login.microsoftonline.com/<tenetId>/oauth2/v2.0/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Cookie: buid=0.ARgAep0nU49DzUGmoP2wnvyIkcQjsx26HEpOnvHS0akqXQgYAAA.AQABAAEAAAD--DLA3VO7QrddgJg7Wevry9XPJSKbGVlPt5NWYxLtTl3K1W0LwHXelrffApUo_K02kFrkvmGm94rfBT94t25Zq4bCd5IM3yFOjWb3V22yDM7-rl112sLzbBQBRCL3QAAgAA; esctx=AQABAAAAAAD--DLA3VO7QrddgJg7Wevr4a8wBjYcNbBXRievdTOd15caaeAsQdXeBAQA3tjVQaxmrOXFGkKaE7HBzsJrzA-ci4RRpor-opoo5gpGLh3pj_iMZuqegQPEb1V5sUVQV8_DUEbBv5YFV2eczS5EAhLBAwAd1mHx6jYOL8LwZNDFvd2-MhVXwPd6iKPigSuBxMogAA; x-ms-gateway-slice=estsfd; stsservicecookie=estsfd; fpc=Auv6lTuyAP1FuOOCfj9w0U_IezHLAQAAAPeNSdgOAAAA' \ --data-urlencode 'client_id=<client_id>' \ --data-urlencode 'scope=https://outlook.office.com/SMTP.Send https://graph.microsoft.com/Mail.Read https://graph.microsoft.com/Mail.Send https://graph.microsoft.com/User.Read email openid profile offline_access' \ --data-urlencode 'redirect_uri=http://localhost' \ --data-urlencode 'grant_type=refresh_token' \ --data-urlencode 'client_secret=<client_secret>' \ --data-urlencode 'refresh_token=<refreshToken>'
-
Senden Sie eine E-Mail mit dem accessToken, damit Sie sehen können, ob es funktioniert.
Integration mit AEM as a Cloud Service integration-with-aem-as-a-cloud-service
-
Erstellen Sie eine OSGi-Eigenschaftendatei mit dem Namen
com.day.cq.mailer.oauth.impl.OAuthConfigurationProviderImpl.cfg.json
unter/apps/<my-project>/osgiconfig/config
mit der folgenden Syntax:code language-none { authUrl: "<Authorization Url>", tokenUrl: "<Token Url>", clientId: "<clientID>", clientSecret: "$[secret:SECRET_SMTP_OAUTH_CLIENT_SECRET]", scopes: [ "scope1", "scope2" ], authCodeRedirectUrl: "http://localhost", refreshUrl: "<Refresh token Url>", refreshToken: "$[secret:SECRET_SMTP_OAUTH_REFRESH_TOKEN]" }
-
Füllen Sie die Felder
authUrl
,tokenUrl
, undrefreshURL
aus, indem Sie sie wie im vorherigen Abschnitt beschrieben erstellen. -
Fügen Sie der Konfiguration die folgenden Umfänge hinzu:
note note NOTE Der Umfang kann sich im Laufe der Zeit weiterentwickeln. Arbeiten Sie mit Microsoft® zusammen, wenn diese nicht erwartungsgemäß funktionieren. https://outlook.office.com/SMTP.Send
openid
offline_access
email
profile
-
Erstellen Sie eine OSGi-Eigenschaftendatei mit dem Namen
called com.day.cq.mailer.DefaultMailService.cfg.json
unter/apps/<my-project>/osgiconfig/config
mit der folgenden Syntax: Die Wertesmtp.host
undsmtp.port
spiegeln die erweiterte Netzwerkkonfiguration wider, wie im Abschnitt Tutorial zum E-Mail-Service beschrieben.code language-none { "smtp.host": "$[env:AEM_PROXY_HOST;default=proxy.tunnel]", "smtp.user": "<user account that logged into get the oauth tokens>", "smtp.password": "value not used", "smtp.port": 30465, "from.address": "<from address used for sending>", "smtp.ssl": false, "smtp.starttls": true, "smtp.requiretls": true, "debug.email": false, "oauth.flow": true }
-
Für Outlook ist der
smtp.host
-Konfigurationswertsmtp.office365.com
. -
Übergeben Sie zur Laufzeit die Geheimnisse
refreshToken values
undclientSecret
mithilfe der Cloud Manager-Variablen-API oder indem Sie Cloud Manager zum Hinzufügen von Variablen verwenden. Die Werte für die VariablenSECRET_SMTP_OAUTH_REFRESH_TOKEN
undSECRET_SMTP_OAUTH_CLIENT_SECRET
sollten definiert werden.
Fehlerbehebung troubleshooting
Wenn der E-Mail-Service nicht ordnungsgemäß funktioniert, müssen Sie refreshToken
wie oben beschrieben neu generieren und den neuen Wert über die Cloud Manager-API übergeben. Es dauert ein paar Minuten, bis der neue Wert bereitgestellt wird.