OAuth2 Steun voor de Dienst van de Post oauth2-support-for-the-mail-service

AEM as a Cloud Service biedt OAuth2-ondersteuning voor de geïntegreerde e-mailservice, zodat organisaties zich kunnen houden aan de vereisten voor e-mail.

U kunt OAuth voor veelvoudige e-mailleveranciers vormen. Hieronder vindt u stapsgewijze instructies voor het configureren van de AEM Mail Service voor verificatie via OAuth2 met Microsoft® Office 365 Outlook. Andere verkopers kunnen op een gelijkaardige manier worden gevormd.

AEM biedt ondersteuning voor twee OAuth2-gebaseerde transportopties voor Microsoft® 365:

  • SMTP + OAuth2 - Standaard weg die SMTP met authentificatie OAuth2 gebruikt.
  • de Grafiek API van Microsoft - Alternatieve weg die post door de Grafiek van Microsoft verzendt wanneer uw organisatie op SMTP-Gebaseerd verzenden niet toestaat (bijvoorbeeld, wanneer SMTP AUTH in Microsoft® 365) onbruikbaar wordt gemaakt, die gebruik van SMTP en OAuth2 verhindert.

Voor meer informatie over de Dienst van de Post van AEM as a Cloud Service, zie ​ Verzendend E-mail ​.

Microsoft® Outlook microsoft-outlook

  1. Ga naar ​ https://portal.azure.com/ ​ en login.

  2. Onderzoek naar Actieve Folder van Azure in de onderzoeksbar en klik het resultaat. Alternatief, kunt u direct aan ​ https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Overview ​ doorbladeren

  3. Klik > Nieuwe Registratie van de Toepassing van 0} {.

    App registratieproces van het Begin

  4. Vul de informatie volgens uw vereisten in, dan klik Register.

  5. Ga naar gecreeerde app, en selecteer API Toestemmingen.

  6. Selecteer de hieronder toestemmingen voor uw app, dan klik toevoegen Toestemming:

    note note
    NOTE
    De configuratie van toestemmingen kan in tijd evolueren. Werken met Microsoft® als deze niet werken zoals u had verwacht.
    • https://outlook.office.com/SMTP.Send
    • openid
    • offline_access
    • email
    • profile
  7. Ga naar Authentificatie > voeg een platform > Web toe, en in de Redirect Urls sectie, voeg hieronder URLs toe - met en zonder een voorwaartse schuine streep:

    • http://localhost/
    • http://localhost
  8. De pers vormt na het toevoegen van elke URL en vormt uw montages volgens uw vereisten.

  9. Daarna, ga naar Certificaten en geheimen, klik Nieuw cliëntgeheim en volg de stappen op het scherm om een geheim tot stand te brengen. Let erop dat u dit geheim opneemt voor later gebruik.

  10. Pers Overzicht in de linkerruit en kopieer de waarden voor identiteitskaart van de Toepassing (cliënt) en Folder (huurder) identiteitskaart voor recenter gebruik.

Om opnieuw te verpakken, gebruik volgende informatie om OAuth2 voor de dienst van de Post op de kant van AEM te vormen:

  • Auth URL, die met huurderidentiteitskaart wordt geconstrueerd. Het heeft de volgende vorm: https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/authorize
  • De token-URL, die wordt samengesteld met de huurder-id. Het heeft de volgende vorm: https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/token
  • De vernieuwings-URL, die wordt samengesteld met de huurder-id. Het heeft de volgende vorm: https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/token
  • Client-id
  • Het clientgeheim

Het genereren van het token Vernieuwen generating-the-refresh-token

Daarna, vernieuw symbolisch, dat een deel van de configuratie OSGi in een verdere stap door het volgende te doen is:

  1. Open de volgende URL in de browser nadat u clientID en tenantID hebt vervangen door de waarden die specifiek zijn voor uw account:

    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. Toestaan dat toestemming wordt gevraagd als u hierom wordt gevraagd.

  3. De URL wordt omgeleid naar een nieuwe locatie, in de volgende indeling:

    code language-none
    http://localhost/?code=<code>&state=12345&session_state=4f984c6b-cc1f-47b9-81b2-66522ea83f81#`
    
  4. Kopieer de waarde van <code> in het bovenstaande voorbeeld.

  5. Gebruik het volgende cURL bevel om te krijgen refreshToken. Vervang de huurderID, clientID, en clientSecret met de waarden voor uw rekening, en de waarde voor <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 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. Noteer refreshToken en accessToken.

Tokens valideren validating-the-tokens

Alvorens te werk te gaan om OAuth op de kant van AEM te vormen, zorg ervoor om zowel accessToken als refreshToken met de onderstaande procedure te bevestigen:

  1. Genereer accessToken door refreshToken te gebruiken die in de vorige procedure wordt geproduceerd door de volgende krulling te gebruiken, die de waarden voor <client_id>, <client_secret>, en <refreshToken> vervangt:

    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 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. Verzend een post gebruikend accessToken, zodat kunt u zien of werkt het behoorlijk.

NOTE
U kunt de Postman API inzameling van ​ deze plaats ​ krijgen.
Zie de ​ documentatie MSFT OAuth ​ voor meer details.

Integratie met AEM as a Cloud Service integration-with-aem-as-a-cloud-service

  1. Maak een OSGI-eigenschappenbestand met de naam com.day.cq.mailer.oauth.impl.OAuthConfigurationProviderImpl.cfg.json onder /apps/<my-project>/osgiconfig/config met de volgende syntaxis:

    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. Vul authUrl, tokenUrl, en refreshURL in door hen te construeren zoals die in de vorige sectie wordt beschreven.

  3. Voeg de volgende Scopes aan de configuratie toe:

    note note
    NOTE
    Scopes kunnen zich in de loop der tijd ontwikkelen. Werken met Microsoft® als deze niet werken zoals u had verwacht.
    • https://outlook.office.com/SMTP.Send
    • openid
    • offline_access
    • email
    • profile
  4. Een OSGI-eigenschappenbestand maken called com.day.cq.mailer.DefaultMailService.cfg.json
    onder /apps/<my-project>/osgiconfig/config met de onderstaande syntaxis. De smtp.host en smtp.port waarden wijzen op geavanceerde voorzien van een netwerkconfiguratie, zoals die in het ​ e-mailleerprogramma van de Dienst ​ wordt beschreven.

    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. Voor de toekomst is de configuratiewaarde smtp.host smtp.office365.com

  6. Bij runtime, ga in refreshToken values en clientSecret geheimen over gebruikend ​ de variabelen API van Cloud Manager ​ of door ​ Cloud Manager te gebruiken om variabelen ​ toe te voegen. De waarden voor de variabelen SECRET_SMTP_OAUTH_REFRESH_TOKEN en SECRET_SMTP_OAUTH_CLIENT_SECRET moeten worden gedefinieerd.

Als u SMTP en OAuth2 gebruikt en post nog niet werkt, zie ​ het Oplossen van problemen ​.

Microsoft Graph API voor Microsoft® Outlook microsoft-graph-api

Volg de zelfde Azure stappen van de toepassingsregistratie zoals die in ​ worden beschreven Microsoft Vooruitzichten ​, met het volgende verschil in stap 6 (API Toestemmingen). Gebruik de Microsoft Graph Mail.Send gedelegeerde bevoegdheid in plaats van het bereik SMTP van Outlook:

NOTE
De configuratie van toestemmingen kan in tijd evolueren. Werken met Microsoft® als deze niet werken zoals u had verwacht.
  • https://graph.microsoft.com/Mail.Send
  • openid
  • offline_access
  • email
  • profile

Het genereren van het token Vernieuwen graph-generating-the-refresh-token

Volg de zelfde symbolische genereringsstappen zoals voor ​ SMTP + OAuth2 ​, gebruikend het werkingsgebied van de Grafiek van Microsoft in de vergunning URL en cURL verzoek.

Vergunning URL (vervang clientID en tenantID met uw waarden):

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/Mail.Send%20email%20openid%20profile%20offline_access&state=12345

In het cURL symbolenverzoek, vervang het werkingsgebied met:

--data-urlencode 'scope=https://graph.microsoft.com/Mail.Send email openid profile offline_access'

Integratie met AEM as a Cloud Service graph-integration-with-aem-as-a-cloud-service

  1. Maak een OSGI-eigenschappenbestand met de naam com.day.cq.mailer.oauth.impl.OAuthConfigurationProviderImpl.cfg.json onder /apps/<my-project>/osgiconfig/config met het bereik Microsoft Graph:

    code language-none
    {
        "authUrl": "https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/authorize",
        "tokenUrl": "https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/token",
        "clientId": "<clientID>",
        "clientSecret": "$[secret:SECRET_SMTP_OAUTH_CLIENT_SECRET]",
        "scopes": [
           "https://graph.microsoft.com/Mail.Send",
           "openid",
           "offline_access",
           "email",
           "profile"
        ],
        "authCodeRedirectUrl": "http://localhost",
        "refreshUrl": "https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/token",
        "refreshToken": "$[secret:SECRET_SMTP_OAUTH_REFRESH_TOKEN]"
    }
    
  2. Maak een OSGI-eigenschappenbestand com.day.cq.mailer.DefaultMailService.cfg.json onder /apps/<my-project>/osgiconfig/config met zowel oauth.flow als graph.flow ingesteld op true :

    code language-none
    {
     "smtp.host": "smtp.office365.com",
     "smtp.user": "<mailbox account used as the sender>",
     "smtp.password": "value not used",
     "smtp.port": 587,
     "from.address": "<from address used for sending>",
     "smtp.ssl": false,
     "smtp.starttls": false,
     "smtp.requiretls": false,
     "debug.email": false,
     "oauth.flow": true,
     "graph.flow": true
    }
    
  3. Bij runtime, ga in refreshToken en clientSecret geheimen over gebruikend ​ de variabelen API van Cloud Manager ​ of door ​ Cloud Manager te gebruiken om variabelen ​ toe te voegen. De waarden voor de variabelen SECRET_SMTP_OAUTH_REFRESH_TOKEN en SECRET_SMTP_OAUTH_CLIENT_SECRET moeten worden gedefinieerd.

Problemen oplossen troubleshooting

Als de mailservice niet goed werkt, genereert u de refreshToken opnieuw. Het gebruik ​ producerend het Vernieuwt Token ​ wanneer u SMTP en OAuth2 gebruikt, of ​ produceert het Vernieuwt Token ​ wanneer u de Grafiek van Microsoft gebruikt. Geef de nieuwe waarde door via de Cloud Manager API; de implementatie kan een paar minuten duren.

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