AEM as a Cloud Service offre il supporto OAuth2 per il suo servizio di posta integrato per consentire alle organizzazioni di rispettare i requisiti e-mail sicuri.
Puoi configurare OAuth per più provider di posta elettronica. Di seguito sono riportate le istruzioni dettagliate per configurare il servizio di posta AEM per l'autenticazione tramite OAuth2 con Microsoft® Office 365 Outlook. Altri fornitori possono essere configurati in modo simile.
Per ulteriori informazioni sul servizio di posta AEM as a Cloud Service, consulta Invio di e-mail.
Vai a https://portal.azure.com/ e accedi.
Cerca Azure Active Directory nella barra di ricerca e fai clic sul risultato. In alternativa, è possibile navigare direttamente in https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Overview
Clic Registrazione app > Nuova registrazione.
Inserisci le informazioni in base alle tue esigenze, quindi fai clic su Registrati.
Vai alla nuova app creata e seleziona Autorizzazioni API.
Clic Aggiungi autorizzazione > Autorizzazione grafico > Autorizzazioni delegate.
Seleziona le seguenti autorizzazioni per la tua app, quindi fai clic su Aggiungi autorizzazione:
https://outlook.office.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
Vai a Autenticazione > Aggiungi una piattaforma > Web, e nella Url di reindirizzamento , aggiungi i seguenti URL - uno con e uno senza una barra:
http://localhost/
http://localhost
Premi Configura dopo aver aggiunto ogni URL e configurato le impostazioni in base alle tue esigenze.
Quindi, vai a Certificati e segreti, fai clic su Nuovo segreto client e segui i passaggi sullo schermo per creare un segreto. Assicurati di prendere nota di questo segreto per un uso successivo.
Premi Panoramica nel riquadro a sinistra e copiare i valori per ID applicazione (client) e ID directory (tenant) per un uso successivo.
Per ricapitolare, utilizza le seguenti informazioni per configurare OAuth2 per il servizio di posta sul lato AEM:
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
Quindi, genera il token di aggiornamento, che fa parte della configurazione OSGi in un passaggio successivo, effettuando le seguenti operazioni:
Apri il seguente URL nel browser dopo la sostituzione clientID
e tenantID
con i valori specifici del tuo account: 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
.
Quando richiesto, consenti l'autorizzazione.
L’URL viene reindirizzato a una nuova posizione, costruita in questo formato: http://localhost/?code=<code>&state=12345&session_state=4f984c6b-cc1f-47b9-81b2-66522ea83f81#
.
Copia il valore di <code>
nell’esempio precedente.
Usa il seguente comando cURL per ottenere il refreshToken. Sostituisci tenantID, clientID e clientSecret con i valori per il tuo account e il valore per <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://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>'
Prendi nota di refreshToken e accessToken.
Prima di procedere alla configurazione di OAuth sul lato AEM, assicurati di convalidare sia accessToken che refreshToken con la procedura seguente:
Genera l’accessToken utilizzando il refreshToken prodotto nella procedura precedente utilizzando il seguente curl, sostituendo i valori per <client_id>
,<client_secret>
, e <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://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>'
Invia una e-mail utilizzando accessToken, in modo da poter vedere se funziona correttamente.
Puoi ottenere la raccolta API Postman da questa posizione.
Consulta la documentazione di MSFT OAuth qui per ulteriori dettagli.
Crea un file di proprietà OSGI denominato com.day.cq.mailer.oauth.impl.OAuthConfigurationProviderImpl.cfg.json
sotto /apps/<my-project>/osgiconfig/config
con la seguente sintassi:
{
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]"
}
Compila il authUrl
, tokenUrl
, e refreshURL
costruendoli come descritto nella sezione precedente.
Aggiungi i seguenti ambiti alla configurazione:
https://outlook.office.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
Creare un file di proprietà OSGI called com.day.cq.mailer.DefaultMailService.cfg.json
sotto /apps/<my-project>/osgiconfig/config
con la sintassi seguente. Il smtp.host
e smtp.port
i valori riflettono la configurazione di rete avanzata, come descritto nella Tutorial su Email Service.
{
"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
}
Per outlook, il smtp.host
il valore di configurazione è smtp.office365.com
In fase di runtime, passa i segreti refreshToken values
e clientSecret
che utilizzano l’API delle variabili di Cloud Manager come descritto qui. I valori delle variabili SECRET_SMTP_OAUTH_REFRESH_TOKEN
e SECRET_SMTP_OAUTH_CLIENT_SECRET
devono essere definiti.
Se il servizio di posta non funziona correttamente, è necessario rigenerare il refreshToken
come descritto in precedenza, il passaggio del nuovo valore tramite l’API di Cloud Manager. L’implementazione del nuovo valore richiede alcuni minuti.