AEM as a Cloud Service offre la prise en charge d’OAuth2 pour son service de messagerie intégré, afin de permettre aux entreprises de se conformer aux exigences en matière de messagerie sécurisée.
Vous pouvez configurer OAuth pour plusieurs fournisseurs de messagerie. Vous trouverez ci-dessous des instructions détaillées pour configurer le service de messagerie d’AEM afin de l’authentifier via OAuth2 avec Microsoft Office 365 Outlook. D’autres fournisseurs peuvent être configurés de la même manière.
Pour plus d’informations sur le service de messagerie d’AEM as a Cloud Service, voir Envoi d’e-mail.
Accédez à https://portal.azure.com/ et connectez-vous.
Recherchez le répertoire Azure principal dans la barre de recherche et cliquez sur le résultat. Vous pouvez également accéder directement à https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Overview
Cliquez sur Enregistrement de l’application - Nouvel enregistrement
Renseignez les informations selon vos besoins, puis cliquez sur Enregistrer
Accédez à l’application nouvellement créée, puis sélectionnez Autorisations API
Accédez à Ajouter une autorisation - Autorisation graphique - Autorisations déléguées
Sélectionnez les autorisations ci-dessous pour votre application, puis cliquez sur Ajouter une autorisation :
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
Accédez à Authentification - Ajouter une plateforme - Web, et dans la section URL de redirection, ajoutez les URL ci-dessous, une avec et une sans barre oblique :
http://localhost/
http://localhost
Appuyez sur Configurer après avoir ajouté chaque URL et configuré vos paramètres en fonction de vos besoins.
Ensuite, accédez à Certificats et secrets, cliquez sur Nouveau secret client et suivez les étapes à l’écran pour créer un secret. Veillez à prendre note de ce secret pour une utilisation ultérieure.
Appuyez sur Aperçu dans le volet de gauche et copiez les valeurs pour ID d’application (client) et ID de répertoire (locataire) pour une utilisation ultérieure.
Pour effectuer une récapitulation, vous aurez besoin des informations suivantes pour configurer OAuth2 pour le service de messagerie du côté 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
Ensuite, vous devez générer le jeton d’actualisation, qui fera partie de la configuration OSGi lors d’une étape ultérieure.
Pour ce faire, procédez comme suit :
Ouvrez l’URL suivante dans le navigateur après avoir remplacé clientID
et tenantID
par les valeurs propres à votre compte : 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
Octroyer l’autorisation si demandé
L’URL redirige vers un nouvel emplacement, construit au format suivant : http://localhost/?code=<code>&state=12345&session_state=4f984c6b-cc1f-47b9-81b2-66522ea83f81#
Copiez la valeur de <code>
dans l’exemple ci-dessus.
Utilisez la commande cURL suivante pour obtenir le refreshToken. Vous devez remplacer tenantID, clientID et clientSecret par les valeurs de votre compte, ainsi que par la valeur de <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>'
Prenez note des éléments refreshToken et accessToken.
Avant de poursuivre la configuration d’OAuth côté AEM, veillez à valider les éléments accessToken et refreshToken avec la procédure suivante :
Générez l’accessToken à l’aide du refreshToken produit lors de la procédure précédente. Pour ce faire, utilisez l’URL suivante, en remplaçant les valeurs de <client_id>
,<client_secret>
et <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>'
Envoyez un courrier électronique à l’aide d’accessToken pour vérifier s’il fonctionne correctement.
Vous pouvez obtenir la collection d’API Postman à partir de cet emplacement.
Veuillez consulter la documentation de MSFT OAuth . here pour plus d’informations.
Créez un fichier de propriétés OSGI appelé com.day.cq.mailer.oauth.impl.OAuthConfigurationProviderImpl.cfg.json
sous /apps/<my-project>/osgiconfig/config
avec la syntaxe suivante :
{
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]"
}
Renseignez les champs authUrl
, tokenUrl
et refreshURL
en les construisant comme décrit dans la section précédente.
Ajoutez les portées suivantes à la configuration :
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
Créez un fichier de propriétés OSGI called com.day.cq.mailer.DefaultMailService.cfg.json
sous
/apps/<my-project>/osgiconfig/config
avec la syntaxe suivante :
{
"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
}
Pour Outlook, la valeur de configuration smtp.host
est smtp.office365.com
Au moment de l’exécution, transmettez les secrets refreshToken values
et clientSecret
à l’aide de l’API des variables Cloud Manager, comme décrit ici. Les valeurs des variables SECRET_SMTP_OAUTH_REFRESH_TOKEN
et SECRET_SMTP_OAUTH_CLIENT_SECRET
doivent être définies.
Si le service de messagerie ne fonctionne pas correctement, vous devrez, dans la plupart des cas, régénérer le refreshToken
comme décrit ci-dessus, en transmettant la nouvelle valeur via l’API Cloud Manager. Le déploiement de la nouvelle valeur prend quelques minutes.