OAuth2-stöd för e-posttjänsten oauth2-support-for-the-mail-service

AEM as a Cloud Service erbjuder OAuth2-stöd för den integrerade e-posttjänsten så att organisationer kan följa e-postkraven.

Du kan konfigurera OAuth för flera e-postleverantörer. Nedan finns stegvisa 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 Skicka e-post.

Microsoft® Outlook microsoft-outlook

  1. Gå till https://portal.azure.com/ och logga in.

  2. 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

  3. Klicka på Appregistrering > Ny registrering.

    Starta appregistreringsprocessen

  4. Fyll i informationen enligt dina krav och klicka sedan på Registrera.

  5. Gå till den skapade appen och välj API-behörigheter.

  6. Klicka på Lägg till behörighet > Diagrambehörighet > Delegerade behörigheter.

  7. Välj behörigheterna nedan för din app och klicka sedan på Lägg till behörighet:

    note note
    NOTE
    Behörighetskonfigurationen kan förändras över tid. Arbeta med Microsoft® om dessa inte fungerar som förväntat.
    • https://outlook.office.com/SMTP.Send
    • openid
    • offline_access
    • email
    • profile
  8. Gå till Autentisering > Lägg till en plattform > Webb och lägg till nedanstående URL:er i avsnittet Omdirigerings-URL - en med och en utan ett snedstreck:

    • http://localhost/
    • http://localhost
  9. Tryck på Konfigurera när du har lagt till varje URL och konfigurerat inställningarna enligt dina krav.

  10. Gå sedan 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.

  11. Tryck på Översikt i den vänstra rutan och kopiera värdena för Program-ID och katalog-ID för senare bruk.

Använd följande information för att konfigurera OAuth2 för e-posttjänsten på AEM sida:

  • Autentiserings-URL:en, som skapas med klient-ID:t. Den har följande format: https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/authorize
  • Token-URL, som skapas med klient-ID. Den har följande format: https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/token
  • Uppdaterings-URL:en som skapas med klient-ID:t. Den har följande format: https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/token
  • Klient-ID
  • Klienthemlighet

Genererar uppdateringstoken generating-the-refresh-token

Generera sedan uppdateringstoken, som är en del av OSGi-konfigurationen i ett efterföljande steg, genom att göra följande:

  1. Öppna följande URL i webbläsaren när du har ersatt clientID och tenantID med de värden som är specifika för ditt konto:

    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`
    
  2. Tillåt tillstånd när du blir tillfrågad.

  3. URL:en dirigeras om till en ny plats, som har följande format:

    code language-none
    http://localhost/?code=<code>&state=12345&session_state=4f984c6b-cc1f-47b9-81b2-66522ea83f81#`
    
  4. Kopiera värdet för <code> i exemplet ovan.

  5. Använd följande cURL-kommando för att hämta refreshToken. Ersätt tenantID, clientID och clientSecret med värdena för ditt konto och värdet 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>'
    
  6. Notera refreshToken och accessToken.

Validerar token validating-the-tokens

Innan du fortsätter att konfigurera OAuth på AEM-sidan måste du verifiera både accessToken och refreshToken med proceduren nedan:

  1. Generera accessToken med hjälp av den refreshToken som skapades i föregående procedur genom att använda följande uttryck och ersätta värdena för <client_id>,<client_secret> och <refreshToken>:

    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>'
    
  2. Skicka ett e-postmeddelande med accessToken så att du kan se om det fungerar som det ska.

NOTE
Du kan hämta Postman API-samlingen från den här platsen.
Mer information finns i MSFT OAuth-dokumentationen här.

Integrering med AEM as a Cloud Service integration-with-aem-as-a-cloud-service

  1. 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:

    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]"
    }
    
  2. Fyll i authUrl, tokenUrl och refreshURL genom att konstruera dem enligt beskrivningen i föregående avsnitt.

  3. Lägg till följande scope i konfigurationen:

    note note
    NOTE
    Omfattningar kan utvecklas över tid. Arbeta med Microsoft® om dessa inte fungerar som förväntat.
    • https://outlook.office.com/SMTP.Send
    • openid
    • offline_access
    • email
    • profile
  4. Skapa en OSGI-egenskapsfil called com.day.cq.mailer.DefaultMailService.cfg.json
    under /apps/<my-project>/osgiconfig/config med syntaxen nedan. Värdena smtp.host och smtp.port återspeglar den avancerade nätverkskonfigurationen, vilket beskrivs i självstudiekursen E-posttjänst.

    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
    }
    
  5. Konfigurationsvärdet smtp.host är smtp.office365.com för Outlook

  6. Vid körning skickar du hemligheterna refreshToken values och clientSecret med Cloud Manager-variablernas API enligt beskrivningen här eller genom att använda Cloud Manager för att lägga till variabler. Värdena för variablerna SECRET_SMTP_OAUTH_REFRESH_TOKEN och SECRET_SMTP_OAUTH_CLIENT_SECRET ska definieras.

Felsökning troubleshooting

Om e-posttjänsten inte fungerar som den ska måste du återskapa refreshToken enligt beskrivningen ovan och skicka det nya värdet via Cloud Manager API. Det tar några minuter innan det nya värdet distribueras.

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab