Servicegegevens

Integraties met as a Cloud Service Adobe Experience Manager (AEM) moeten veilig kunnen worden geverifieerd voor AEM service. AEM Developer Console verleent toegang tot servicerecenties, die worden gebruikt om externe toepassingen, systemen en services te vergemakkelijken voor programmacode met AEM auteur- of publicatieservices via HTTP.

Servicereferenties kunnen er ongeveer zo uitzien Tokens voor toegang tot lokale ontwikkeling maar zijn op een aantal belangrijke punten verschillend :

  • Servicekredieten zijn gekoppeld aan technische accounts. De veelvoudige de dienstgeloofsbrieven kunnen voor een Technische Rekening actief zijn.
  • Servicekredieten zijn niet toegangstokens, eerder zijn zij geloofsbrieven die worden gebruikt aan verkrijgen toegang tot tokens.
  • De geloofsbrieven van de dienst zijn duurder (hun certificaat verloopt om de 365 dagen), en veranderen niet tenzij ingetrokken, terwijl de Lokale Tokens van de Toegang van de Ontwikkeling dagelijks verlopen.
  • De Verantwoordelijkheden van de dienst voor een AEM as a Cloud Service milieukaart aan één enkele AEM technische rekeningsgebruiker, terwijl de Tokens van de Toegang van de Toegang van de Lokale Ontwikkeling voor authentiek verklaren als AEM gebruiker die het toegangstoken produceerde.
  • Een AEM as a Cloud Service omgeving kan maximaal tien technische accounts hebben, elk met hun eigen servicekredieten, elke toewijzing aan een afzonderlijke technische rekening AEM gebruiker.

Zowel dienen de Geloofsbrieven van de Dienst als de toegangstoken zij produceren, en de Lokale Tokens van de Toegang van de Ontwikkeling, geheim worden gehouden. Aangezien alle drie kunnen worden gebruikt om, toegang tot hun respectieve AEM as a Cloud Service milieu te verkrijgen.

Servicekredieten genereren

Het genereren van servicekredieten wordt in twee stappen opgedeeld:

  1. Een eenmalige technische account aanmaken door een Adobe IMS-beheerder
  2. Het downloaden en gebruiken van JSON (Service Credentials) van de technische account

Een technische account maken

In tegenstelling tot Local Development Access Tokens, vereisen servicerecertificaten dat een technische account wordt aangemaakt door een Adobe of IMS-beheerder voordat deze kunnen worden gedownload. De afzonderlijke Technische Rekeningen zouden voor elke cliënt moeten worden gecreeerd die programmatic toegang tot AEM vereist.

Een technische account maken

De technische Rekeningen worden gecreeerd eens, nochtans het gebruik van Privé Sleutels om de Verantwoordelijkheden van de Dienst verbonden aan de Technische Rekening te beheren kan in tijd worden beheerd. Bijvoorbeeld, moeten de nieuwe Persoonlijke Sleutel/de Credentials van de Dienst vóór het verstrijken van de huidige Privé Sleutel worden geproduceerd, om voor ononderbroken toegang door een gebruiker van de Credentials van de Dienst toe te staan.

  1. Controleer of u bent aangemeld als een:

    • Systeembeheerder van Adobe IMS Org
    • Lid van de AEM IMS-productprofiel op AEM auteur
  2. Aanmelden bij Adobe Cloud Manager

  3. Open het programma dat de AEM as a Cloud Service omgeving bevat om de instelling van de servicekredieten voor

  4. Tik op de ellips naast de omgeving in het dialoogvenster Omgevingen en selecteert u Ontwerpconsole

  5. Tik in het dialoogvenster Integraties tab

  6. Tik op de knop Technische rekeningen tab

  7. Tikken Nieuwe technische account maken knop

  8. De servicekredieten van de technische account worden geïnitialiseerd en weergegeven als JSON

AEM Developer Console - Integratie - Inschrijvingen voor service

Nadat de AEM als servicegegevens van de Cloud Service-omgeving zijn geïnitialiseerd, kunnen andere AEM ontwikkelaars van uw Adobe IMS-organisatie deze downloaden.

Referenties van service downloaden

Referenties van service downloaden

Het downloaden van de Referentieformals van de Dienst volgt de gelijkaardige stappen zoals de initialisering.

  1. Controleer of u bent aangemeld als een:

    • Beheerder van Adobe IMS Org
    • Lid van de AEM IMS-productprofiel op AEM auteur
  2. Aanmelden bij Adobe Cloud Manager

  3. Open het programma dat de AEM as a Cloud Service omgeving bevat om mee te integreren

  4. Tik op de ellips naast de omgeving in het dialoogvenster Omgevingen en selecteert u Ontwerpconsole

  5. Tik in het dialoogvenster Integraties tab

  6. Tik op de knop Technische rekeningen tab

  7. Breid uit Technische rekening te gebruiken

  8. Breid uit Persoonlijke sleutel wiens servicekredieten worden gedownload en controleren of de status Actief

  9. Tik op de knop > Weergave in verband met de Persoonlijke sleutel, die de Service Credentials JSON weergeeft

  10. Tik op de downloadknop in de linkerbovenhoek om het JSON-bestand met de waarde Servicekredieten te downloaden en het bestand op een veilige locatie op te slaan

De servicereferenties installeren

De referenties van de Dienst verstrekken de details nodig om een JWT te produceren, die voor een toegangstoken wordt geruild dat wordt gebruikt om met AEM as a Cloud Service voor authentiek te verklaren. De servicekredieten moeten worden opgeslagen op een beveiligde locatie die toegankelijk is voor externe toepassingen, systemen of services die deze gebruiken voor toegang tot AEM. Hoe en waar de Credentials van de Dienst worden beheerd zijn uniek per klant.

Voor eenvoud, gaat dit leerprogramma de Credentials van de Dienst binnen via de bevellijn over. Werk echter samen met uw IT-beveiligingsteam om te begrijpen hoe deze gegevens moeten worden opgeslagen en geopend in overeenstemming met de beveiligingsrichtlijnen van uw organisatie.

  1. De De Service Credentials JSON downloaden naar een bestand met de naam service_token.json in de hoofdmap van het project
    • Onthouden, nooit vastleggen om het even welke geloofsbrieven naar Git!

Servicereferenties gebruiken

De servicekredieten, een volledig samengesteld JSON-object, zijn niet hetzelfde als de JWT of het toegangstoken. In plaats daarvan worden de servicekredieten (die een persoonlijke sleutel bevatten) gebruikt om een JWT te genereren, die wordt uitgewisseld met Adobe IMS API's voor een toegangstoken.

Servicereferenties - externe toepassing

  1. Download de servicedesentials van AEM Developer Console naar een beveiligde locatie
  2. De externe toepassing moet programmatisch communiceren met AEM as a Cloud Service omgeving
  3. De externe toepassing leest in de Referenties van de Dienst van een veilige plaats
  4. De externe toepassing gebruikt informatie van de Referenties van de Dienst om een Token te construeren JWT
  5. De JWT Token wordt naar Adobe IMS verzonden voor uitwisseling voor een toegangstoken
  6. Adobe IMS retourneert een toegangstoken dat kan worden gebruikt voor toegang tot AEM as a Cloud Service
    • Toegangstokens kunnen een vervaltijd niet veranderen.
  7. De externe toepassing maakt HTTP-aanvragen om as a Cloud Service te AEM, waarbij het toegangstoken als een token voor Drager wordt toegevoegd aan de header voor HTTP-aanvragen.
  8. AEM as a Cloud Service ontvangt het HTTP- verzoek, verklaart het verzoek voor authentiek, en voert het werk uit dat door het HTTP- verzoek wordt gevraagd en keert een reactie van HTTP terug naar de Externe Toepassing

Updates voor de externe toepassing

Om tot AEM as a Cloud Service toegang te hebben gebruikend de Referenties van de Dienst, moet de externe toepassing op drie manieren worden bijgewerkt:

  1. Lees in de Referenties van de Dienst
  • Voor eenvoud, worden de Credentials van de Dienst gelezen van het gedownloade JSON dossier, nochtans in real-use scenario's, moeten de Referenties van de Dienst veilig worden opgeslagen in overeenstemming met de veiligheidsrichtlijnen van uw organisatie
  1. Een JWT genereren op basis van de servicerecertificaten
  2. Uitwisseling JWT voor een toegangstoken
  • Wanneer de Referenties van de Dienst aanwezig zijn, gebruikt de externe toepassing dit toegangstoken in plaats van het Lokale Token van de Toegang van de Ontwikkeling, wanneer de toegang tot AEM as a Cloud Service

In deze zelfstudie @adobe/jwt-auth De npm module wordt gebruikt aan allebei, (1) produceert JWT van de Referenties van de Dienst, en (2) ruilt het voor een toegangstoken, in één enkele functievraag. Als uw toepassing niet is gebaseerd op JavaScript, raadpleegt u de voorbeeldcode in andere talen voor hoe u een JWT maakt van de servicekredieten en deze uitwisselt voor een toegangstoken met Adobe IMS.

Lees de Referenties van de Dienst

Controleer de getCommandLineParams() Zo zie hoe het dossier van de Verantwoordelijkheid JSON van de Dienst gebruikend de zelfde code wordt gelezen die wordt gebruikt om in het Lokale Token JSON van de Toegang van de Ontwikkeling te lezen.

function getCommandLineParams() {
    ...

    // Read in the credentials from the provided JSON file
    // Since both the Local Development Access Token and Service Credentials files are JSON, this same approach can be re-used
    if (parameters.file) {
        parameters.developerConsoleCredentials = JSON.parse(fs.readFileSync(parameters.file));
    }

    ...
    return parameters;
}

Creeer JWT en ruil voor een Token van de Toegang

Nadat de servicekredieten zijn gelezen, worden deze gebruikt om een JWT te genereren die vervolgens wordt uitgewisseld met Adobe IMS API's voor een toegangstoken. Dit toegangstoken kan dan worden gebruikt om tot AEM as a Cloud Service toegang te hebben.

Deze voorbeeldtoepassing is gebaseerd op Node.js, dus is het beter om te gebruiken @adobe/jwt-auth npm-module om de (1) JWT-generatie en (20-uitwisseling met Adobe IMS te vergemakkelijken. Als uw toepassing is ontwikkeld in een andere taal, kunt u het beste de passende codevoorbeelden over het samenstellen van de HTTP-aanvraag bij Adobe IMS met behulp van andere programmeertalen.

  1. Werk de getAccessToken(..) om de inhoud van het JSON-bestand te inspecteren en vast te stellen of dit een token of servicekrediet voor lokale ontwikkelingstoegang vertegenwoordigt. Dit kan eenvoudig worden bereikt door na te gaan of het .accessToken eigenschap, die alleen bestaat voor Local Development Access Token JSON.

    Als Service Credentials is opgegeven, genereert de toepassing een JWT en wisselt deze uit met Adobe IMS voor een toegangstoken. Gebruik de @adobe/jwt-auths auth(...) functie die een JWT genereert en deze in één functieaanroep ruilt voor een toegangstoken. De parameters die auth(..) methode is JSON-object met specifieke informatie beschikbaar bij Service Credentials JSON, zoals hieronder in code wordt beschreven.

 async function getAccessToken(developerConsoleCredentials) {

     if (developerConsoleCredentials.accessToken) {
         // This is a Local Development access token
         return developerConsoleCredentials.accessToken;
     } else {
         // This is the Service Credentials JSON object that must be exchanged with Adobe IMS for an access token
         let serviceCredentials = developerConsoleCredentials.integration;

         // Use the @adobe/jwt-auth library to pass the service credentials generated a JWT and exchange that with Adobe IMS for an access token.
         // If other programming languages are used, please see these code samples: https://www.adobe.io/authentication/auth-methods.html#!AdobeDocs/adobeio-auth/master/JWT/samples/samples.md
         let { access_token } = await auth({
             clientId: serviceCredentials.technicalAccount.clientId, // Client Id
             technicalAccountId: serviceCredentials.id,              // Technical Account Id
             orgId: serviceCredentials.org,                          // Adobe IMS Org Id
             clientSecret: serviceCredentials.technicalAccount.clientSecret, // Client Secret
             privateKey: serviceCredentials.privateKey,              // Private Key to sign the JWT
             metaScopes: serviceCredentials.metascopes.split(','),   // Meta Scopes defining level of access the access token should provide
             ims: `https://${serviceCredentials.imsEndpoint}`,       // IMS endpoint used to obtain the access token from
         });

         return access_token;
     }
 }
Afhankelijk van welk JSON-bestand (de Local Development Access Token JSON of de Service Credentials JSON) wordt doorgegeven via de opdrachtregelparameter 'file`, leidt de toepassing een toegangstoken af.

Herinner me, dat terwijl de Referenties van de Dienst elke 365 dagen verlopen, JWT en het overeenkomstige toegangstoken vaak verlopen, en moeten worden verfrist alvorens zij verlopen. Dit kan worden gedaan door ` te gebruiken verfrist_token ` [verstrekt door Adobe IMS] (https://www.adobe.io/authentication/auth-methods.html#!AdobeDocs/adobeio-auth/master/OAuth/OAuth.md#access-tokens).
  1. Met deze wijzigingen is JSON-servicerecertificaten gedownload van de AEM Developer Console en voor eenvoud opgeslagen als service_token.json in dezelfde map als deze index.js. Laten we nu de toepassing uitvoeren die de opdrachtregelparameter vervangt file with service_token.jsonen de propertyValue aan een nieuwe waarde zodat de gevolgen duidelijk in AEM zijn.

    code language-shell
    $ node index.js \
        aem=https://author-p1234-e5678.adobeaemcloud.com \
        folder=/wknd-shared/en/adventures/napa-wine-tasting \
        propertyName=metadata/dc:rights \
        propertyValue="WKND Restricted Use" \
        file=service_token.json
    

    De output aan de terminal kijkt als:

    code language-shell
    200 - OK @ https://author-p1234-e5678.adobeaemcloud.com/api/assets/wknd-shared/en/adventures/napa-wine-tasting.json
    403 - Forbidden @ https://author-p1234-e5678.adobeaemcloud.com/api/assets/wknd-shared/en/adventures/napa-wine-tasting/AdobeStock_277654931.jpg.json
    403 - Forbidden @ https://author-p1234-e5678.adobeaemcloud.com/api/assets/wknd-shared/en/adventures/napa-wine-tasting/AdobeStock_239751461.jpg.json
    403 - Forbidden @ https://author-p1234-e5678.adobeaemcloud.com/api/assets/wknd-shared/en/adventures/napa-wine-tasting/AdobeStock_280313729.jpg.json
    403 - Forbidden @ https://author-p1234-e5678.adobeaemcloud.com/api/assets/wknd-shared/en/adventures/napa-wine-tasting/AdobeStock_286664352.jpg.json
    

    De 403 - verboden lijnen, wijzen op fouten in de HTTP API vraag aan AEM as a Cloud Service. Deze 403 Verboden fouten treden op wanneer wordt geprobeerd de metagegevens van de elementen bij te werken.

    De reden voor dit is het de toegangstoken van Credentials-Afgeleide van de Dienst verklaart het verzoek om AEM gebruikend een auto-gecreeerde technische rekening AEM gebruiker voor authentiek, die door gebrek, slechts gelezen toegang heeft. Om de toepassing te verstrekken schrijf toegang tot AEM, moet de technische rekening AEM gebruiker verbonden aan het toegangstoken toestemming in AEM worden verleend.

Toegang configureren in AEM

Het toegangstoken op basis van servicerecertificaten gebruikt een technische account AEM gebruiker die lid is van de Medewerkers AEM gebruikersgroep.

Servicekredieten - Technische account AEM gebruiker

Zodra de technische rekening AEM gebruiker in AEM (na eerste HTTP- verzoek met het toegangstoken) bestaat, kunnen de toestemmingen van deze AEM gebruiker het zelfde als andere AEM gebruikers worden beheerd.

  1. Zoek eerst de aanmeldnaam van de AEM van de technische account door de Service Credentials te openen die JSON van AEM Developer Console heeft gedownload, en zoek de integration.email waarde, die er ongeveer als volgt uitziet: 12345678-abcd-9000-efgh-0987654321c@techacct.adobe.com.
  2. Meld u als AEM beheerder aan bij de bijbehorende AEM-service Auteur.
  3. Navigeren naar Gereedschappen > Beveiliging > Gebruikers
  4. Zoek de AEM gebruiker met de Aanmeldingsnaam die in Stap 1 worden geïdentificeerd, en opent zijn Eigenschappen
  5. Ga naar de Groepen en voegt u de DAM-gebruikers groep (die als schrijf toegang tot activa)
    • Zie de lijst met AEM opgegeven gebruikersgroepen om de de dienstgebruiker aan voor de optimale toestemmingen toe te voegen. Als geen AEM opgegeven gebruikersgroep voldoende is, maakt u uw eigen gebruikersgroep en voegt u de juiste machtigingen toe.
  6. Tikken Opslaan en sluiten

Voer de toepassing opnieuw uit terwijl de technische account in AEM schrijfmachtigingen voor elementen mag hebben:

$ node index.js \
    aem=https://author-p1234-e5678.adobeaemcloud.com \
    folder=/wknd-shared/en/adventures/napa-wine-tasting \
    propertyName=metadata/dc:rights \
    propertyValue="WKND Restricted Use" \
    file=service_token.json

De output aan de terminal kijkt als:

200 - OK @ https://author-p1234-e5678.adobeaemcloud.com/api/assets/wknd-shared/en/adventures/napa-wine-tasting.json
200 - OK @ https://author-p1234-e5678.adobeaemcloud.com/api/assets/wknd-shared/en/adventures/napa-wine-tasting/AdobeStock_277654931.jpg.json
200 - OK @ https://author-p1234-e5678.adobeaemcloud.com/api/assets/wknd-shared/en/adventures/napa-wine-tasting/AdobeStock_286664352.jpg.json
200 - OK @ https://author-p1234-e5678.adobeaemcloud.com/api/assets/wknd-shared/en/adventures/napa-wine-tasting/AdobeStock_239751461.jpg.json
200 - OK @ https://author-p1234-e5678.adobeaemcloud.com/api/assets/wknd-shared/en/adventures/napa-wine-tasting/AdobeStock_280313729.jpg.json

Wijzigingen controleren

  1. Meld u aan bij de AEM as a Cloud Service omgeving die is bijgewerkt (met dezelfde hostnaam die in het dialoogvenster aem opdrachtregelparameter)
  2. Ga naar de Activa > Bestanden
  3. Navigeren in de elementenmap die is opgegeven in het dialoogvenster folder opdrachtregelparameter, bijvoorbeeld WKND > Engels > avonturen > Napa Wine Tasting
  4. Open de Eigenschappen voor elk element in de map
  5. Ga naar de Geavanceerd tab
  6. Controleer de waarde van de bijgewerkte eigenschap, bijvoorbeeld Copyright die is toegewezen aan de bijgewerkte metadata/dc:rights JCR-eigenschap, die nu de waarde weerspiegelt die wordt verschaft in het dialoogvenster propertyValue parameter, bijvoorbeeld Beperkt gebruik WKND

Update van metagegevens voor beperkt gebruik van WKND

Gefeliciteerd!

Nu wij programmatically hebben betreden AEM as a Cloud Service gebruikend een lokaal toegangstoken van de ontwikkelings, en een productie-klaar dienst-aan-dienst toegangstoken!

recommendation-more-help
e25b6834-e87f-4ff3-ba56-4cd16cdfdec4