AEM as a Cloud Service erbjuder OAuth2-stöd för sin integrerade e-posttjänst, så att organisationer kan följa e-postkraven.
Du kan konfigurera OAuth för flera e-postleverantörer. Nedan visas steg-för-steg-instruktioner för hur du konfigurerar AEM Mail Service för att autentisera via OAuth2 med Microsoft Office 365 Outlook. Andra leverantörer kan konfigureras på liknande sätt.
Mer information om AEM as a Cloud Service Mail Service finns i Skickar e-post.
Gå till https://portal.azure.com/ och logga in.
Sök efter Azure Active Directory i sökfältet och klicka på resultatet. Du kan även bläddra direkt till https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Overview
Klicka på Appregistrering - Ny registrering
Fyll i informationen enligt dina krav och klicka sedan på Registrera
Gå till den nya appen och välj API-behörigheter
Gå till Lägg till behörighet - Diagrambehörighet - Delegerade behörigheter
Välj behörigheter nedan för din app och klicka sedan på Lägg till behörighet:
https://graph.microsoft.com/SMTP.Send
https://graph.microsoft.com/Mail.Read
https://graph.microsoft.com/Mail.Send
https://graph.microsoft.com/User.Read
openid
offline_access
email
profile
https://outlook.office365.com/SMTP.Send
Gå till Autentisering - Lägg till en plattform - Webb och i Omdirigerings-URL lägger du till nedanstående URL:er - en med och en utan snedstreck:
http://localhost/
http://localhost
Tryck Konfigurera efter att du lagt till varje URL-adress och konfigurerat inställningarna enligt dina önskemål
Nästa, gå till Certifikat och hemligheter, klicka på Ny klienthemlighet och följ stegen på skärmen för att skapa en hemlighet. Observera denna hemlighet för senare bruk
Tryck Översikt i den vänstra rutan och kopiera värdena för Program-ID (klient) och Katalog-ID (klientorganisation) för senare användning
För att komma tillbaka behöver du följande information för att konfigurera OAuth2 för e-posttjänsten på AEM sida:
https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/authorize
https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/token
https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/token
Därefter måste du generera uppdateringstoken, som kommer att ingå i OSGi-konfigurationen i ett senare steg.
Så här gör du:
Öppna följande URL i webbläsaren när du har ersatt den clientID
och tenantID
med de värden som är specifika för ditt konto: https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/authorize?client_id=<clientId>&response_type=code&redirect_uri=http://localhost&response_mode=query&scope=https://graph.microsoft.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&state=12345
Tillåt behörighet när du tillfrågas
URL:en kommer att omdirigeras till en ny plats som har följande format: http://localhost/?code=<code>&state=12345&session_state=4f984c6b-cc1f-47b9-81b2-66522ea83f81#
Kopiera värdet för <code>
i exemplet ovan
Använd följande cURL-kommando för att hämta refreshToken. Du måste ersätta tenantID, clientID och clientSecret med värdena för ditt konto, samt värdet för <code>
:
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://graph.microsoft.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 https://outlook.office365.com/SMTP.Send' \
--data-urlencode 'redirect_uri=http://localhost' \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode 'client_secret=<clientSecret>' \
--data-urlencode 'code=<code>'
Notera refreshToken och accessToken.
Innan du fortsätter att konfigurera OAuth på AEM-sidan måste du verifiera både accessToken och refreshToken med proceduren nedan:
Generera accessToken med hjälp av den refreshToken som skapades i föregående procedur. Du kan uppnå detta med följande kurva och ersätta värdena för <client_id>
,<client_secret>
och <refreshToken>
:
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://graph.microsoft.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 https://outlook.office365.com/SMTP.Send' \
--data-urlencode 'redirect_uri=http://localhost' \
--data-urlencode 'grant_type=refresh_token' \
--data-urlencode 'client_secret=<client_secret>' \
--data-urlencode 'refresh_token=<refreshToken>'
Skicka ett e-postmeddelande med accessToken för att se om fungerar som det ska.
Du kan hämta Postman API-samlingen från den här platsen.
Kontrollera MSFT OAuth-dokumentationen här för mer information.
Skapa en OSGI-egenskapsfil med namnet com.day.cq.mailer.oauth.impl.OAuthConfigurationProviderImpl.cfg.json
under /apps/<my-project>/osgiconfig/config
med följande syntax:
{
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]"
}
Fyll i authUrl
, tokenUrl
och refreshURL
genom att konstruera dem enligt beskrivningen i föregående avsnitt.
Lägg till följande scope i konfigurationen:
https://graph.microsoft.com/SMTP.Send
https://graph.microsoft.com/Mail.Read
https://graph.microsoft.com/Mail.Send
https://graph.microsoft.com/User.Read
openid
offline_access
email
profile
https://outlook.office365.com/SMTP.Send
Skapa en OSGI-egenskapsfil called com.day.cq.mailer.DefaultMailService.cfg.json
under
/apps/<my-project>/osgiconfig/config
med följande syntax:
{
"smtp.host": "<smtp hostname>"
"smtp.user": "<user account that logged into get the oauth tokens>",
"smtp.password": "value not used",
"smtp.port": 587,
"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 gäller följande smtp.host
konfigurationsvärdet är smtp.office365.com
Vid körning skickar du refreshToken values
och clientSecret
hemligheter med Cloud Manager-variablernas API enligt beskrivningen här. Värdena för variablerna SECRET_SMTP_OAUTH_REFRESH_TOKEN
och SECRET_SMTP_OAUTH_CLIENT_SECRET
ska definieras.
Om e-posttjänsten inte fungerar som den ska måste du i de flesta fall generera om refreshToken
så som beskrivs ovan, skicka det nya värdet via Cloud Manager API. Det kommer att ta några minuter innan det nya värdet distribueras.