Toegangstokens genereren voor server-side API's generating-access-tokens-for-server-side-apis
Sommige architecturen vertrouwen erop dat ze AEM as a Cloud Service bellen vanuit een toepassing die wordt gehost op een server buiten de AEM-infrastructuur. Bijvoorbeeld een mobiele toepassing die een server aanroept, die vervolgens API-aanvragen bij AEM as a Cloud Service indient.
De server-aan-server stroom wordt hieronder beschreven, samen met een vereenvoudigde stroom voor ontwikkeling. AEM as a Cloud Service Developer Consolewordt gebruikt om tekenen nodig voor het authentificatieproces te produceren.
De server-naar-server stroom the-server-to-server-flow
Gebruikers met een IMS org-beheerdersrol en die lid zijn van het productprofiel van AEM Users of AEM-beheerders op AEM-auteur, kunnen een set gebruikersgegevens genereren vanuit AEM as a Cloud Service. Elke referentie is een JSON-payload die een certificaat (de openbare sleutel), een persoonlijke sleutel en een technische account bevat die bestaat uit een clientId
en clientSecret
. Die geloofsbrieven kunnen later door een gebruiker met de de beheerderrol van het Milieu van AEM as a Cloud Service worden teruggewonnen en zouden op een niet-server van AEM moeten worden geïnstalleerd en zorgvuldig als geheime sleutel worden behandeld. Dit JSON-indelingsbestand bevat alle gegevens die vereist zijn voor integratie met een AEM as a Cloud Service API. De gegevens worden gebruikt om een getekende JWT-token te maken, die wordt uitgewisseld met de Adobe Identity Management Services (IMS) voor een IMS-toegangstoken. Dit toegangstoken kan dan als het authentificatietoken van de Drager worden gebruikt om verzoeken aan AEM as a Cloud Service te doen. Het certificaat in de geloofsbrieven verloopt na één jaar door gebrek, maar zij kunnen worden verfrist wanneer nodig, zie Vernieuwen Referenties.
De server-aan-server stroom impliceert de volgende stappen:
- Referenties ophalen op AEM as a Cloud Service vanuit de Developer Console
- Installeer de referenties voor AEM as a Cloud Service op een niet-AEM-server die AEM aanroept
- Een JWT-token genereren en deze token uitwisselen voor een toegangstoken met behulp van Adobe IMS API's
- De AEM API aanroepen met het toegangstoken als een token voor Dradenverificatie
- Stel de juiste machtigingen in voor de gebruiker van de technische account in de AEM-omgeving
Credentials van AEM as a Cloud Service ophalen fetch-the-aem-as-a-cloud-service-credentials
Gebruikers met toegang tot de AEM as a Cloud Service-ontwikkelaarsconsole zien het tabblad Integraties in de Developer Console voor een bepaalde omgeving. Een gebruiker met de AEM as a Cloud Service Environment Administrator-rol kan referenties maken, weergeven of beheren.
Het klikken leidt tot nieuwe technische rekening, wordt een reeks geloofsbrieven gecreeerd die cliënt identiteitskaart, cliëntgeheim, privé sleutel, certificaat, en configuratie voor auteur omvat en lagen van het milieu, ongeacht de podselectie publiceert.
Er wordt een nieuw browsertabblad geopend waarin de referenties worden weergegeven. U kunt deze weergave gebruiken om de referenties te downloaden door op het downloadpictogram naast de statustitel te drukken:
Nadat de geloofsbrieven worden gecreeerd, zullen zij onder het Technische lusje van Rekeningen in de sectie van de Integraties verschijnen:
Gebruikers kunnen de referenties later weergeven met de actie Weergave. Bovendien kunnen gebruikers, zoals verderop in het artikel wordt beschreven, de referenties voor dezelfde technische account bewerken. Ze kunnen deze bewerking uitvoeren door een persoonlijke sleutel of certificaat te maken, voor gevallen waarin het certificaat moet worden vernieuwd of ingetrokken.
Gebruikers met de AEM as a Cloud Service Environment Administrator-rol kunnen later referenties voor extra technische accounts maken. Deze mogelijkheid is handig wanneer verschillende API's verschillende toegangsvereisten hebben. Bijvoorbeeld lezen versus lezen-schrijven.
De AEM Service Credentials installeren op een niet-AEM-server install-the-aem-service-credentials-on-a-non-aem-server
De toepassing die oproepen aan AEM doet zou tot de geloofsbrieven voor AEM as a Cloud Service moeten kunnen toegang hebben, die het als geheim behandelt.
Genereer een JWT-token en verander dit voor een Access Token generate-a-jwt-token-and-exchange-it-for-an-access-token
Gebruik de geloofsbrieven om een teken van JWT in een vraag aan de dienst van Adobe tot stand te brengen IMS om een toegangstoken terug te winnen, dat 24 uur geldig is.
De AEM CS Service Credentials kunnen worden uitgewisseld voor een toegangstoken met behulp van voor dit doel ontworpen codevoorbeelden. De code van de steekproef is beschikbaar bij Adobe openbare bewaarplaats GitHub, die codevoorbeelden bevat die u voor uw eigen projecten kunt kopiëren en aanpassen. Merk op dat deze bewaarplaats steekproefcode voor verwijzing bevat en niet als productie-klaar bibliotheekgebiedsdeel gehandhaafd wordt.
/*jshint node:true */
"use strict";
const fs = require('fs');
// Sample code adapted from Adobe's GitHub repository
const exchange = require("./your-local-aemcs-client"); // Copy and adapt the code from the GitHub repository
const jsonfile = "aemcs-service-credentials.json";
var config = JSON.parse(fs.readFileSync(jsonfile, 'utf8'));
exchange(config).then(accessToken => {
// output the access token in json form including when it will expire.
console.log(JSON.stringify(accessToken,null,2));
}).catch(e => {
console.log("Failed to exchange for access token ",e);
});
De zelfde uitwisseling kan in om het even welke taal worden uitgevoerd die een ondertekend Token JWT met het correcte formaat kan produceren en IMS Symbolische Uitwisseling APIs roepen.
Het toegangstoken bepaalt wanneer het verloopt, die typisch 24 uren is. Er is steekproefcode in de git bewaarplaats om een toegangstoken te beheren en het te verfrissen alvorens het verloopt.
De AEM API aanroepen calling-the-aem-api
Maak de aangewezen server-aan-server API vraag aan een milieu van AEM as a Cloud Service, met inbegrip van het toegangstoken in de kopbal. Gebruik dus voor de header "Authorization" de waarde "Bearer <access_token>"
. Als u bijvoorbeeld curl
gebruikt:
curl -H "Authorization: Bearer <your_ims_access_token>" https://author-p123123-e23423423.adobeaemcloud.com/content/dam.json
Stel de juiste machtigingen in voor de gebruiker van de technische account in AEM set-the-appropriate-permissions-for-the-technical-account-user-in-aem
Ten eerste moet er een nieuw productprofiel worden gemaakt in de Adobe Admin Console.
-
Ga naar Adobe Admin Console in https://adminconsole.adobe.com/.
-
Pers leiden verbinding onder de Producten en de kolom van de Diensten op de linkerzijde.
-
Selecteer AEM as a Cloud Service.
-
Druk de Nieuwe knoop van het Profiel.
-
Noem het profiel en druk sparen.
-
Selecteer het profiel dat u hebt gemaakt in de profiellijst.
-
Selecteer toevoegen Gebruiker.
-
Voeg de technische rekening toe die u (in dit geval
84b2c3a2-d60a-40dc-84cb-e16b786c1673@techacct.adobe.com
) creeerde, en klik sparen. -
Wacht 10 minuten tot de wijzigingen van kracht worden en voer een API-aanroep naar AEM met een toegangstoken dat is gegenereerd op basis van de nieuwe referentie. Als cURL-opdracht wordt deze weergegeven als in dit voorbeeld:
curl -H "Authorization: Bearer <access_token>" https://author-pXXXXX-eXXXXX.adobeaemcloud.net/content/dam.json
Nadat u de API-aanroep hebt gemaakt, wordt het productprofiel weergegeven als een gebruikersgroep in de AEM as a Cloud Service-auteur-instantie, met de juiste technische account als lid van die groep.
Ga als volgt te werk om deze informatie te controleren:
-
Meld u aan bij de instantie van de auteur.
-
Ga naar Hulpmiddelen > Veiligheid, dan klik de Groepen kaart.
-
Zoek de naam van het profiel dat u in de lijst met groepen hebt gemaakt en klik erop:
-
In het volgende venster, schakelaar over aan het lusje van Leden en controleer als de technische rekening daar correct vermeld is:
U kunt ook controleren of de technische account in de lijst van de gebruiker wordt weergegeven door de onderstaande stappen uit te voeren op de instantie van de auteur:
-
Ga naar Hulpmiddelen > Veiligheid > Gebruikers.
-
Controleer of uw technische account de gebruikerslijst is en selecteer deze.
-
Klik het lusje van Groepen zodat kunt u verifiëren dat de gebruiker een deel van de groep is die aan uw productprofiel beantwoordt. Deze gebruiker is ook lid van een handvol andere groepen, waaronder Medewerkers:
plaats de aangewezen Toestemmingen van de Groep
Tot slot vorm de groep met de aangewezen toestemmingen noodzakelijk zodat kunt u uw APIs roepen of sluiten geschikt.
-
Logon aan de aangewezen auteursinstantie, en navigeer aan Montages > Veiligheid > Toestemmingen
-
Zoek de naam van de groep die overeenkomt met het productprofiel in het linkerdeelvenster (in dit geval alleen-lezen API's) en selecteer de naam:
-
Klik op de knop Bewerken in het volgende venster:
-
Wijzig de toestemmingen geschikt en klik sparen
Developer Flow developer-flow
Ontwikkelaars willen waarschijnlijk testen met een ontwikkelingsexemplaar van hun niet-AEM-toepassing (die op hun laptop wordt uitgevoerd of wordt gehost) die aanvragen doet voor een ontwikkelings-AEM as a Cloud Service-ontwikkelomgeving. Omdat ontwikkelaars echter niet noodzakelijkerwijs beschikken over IMS-beheerdersmachtigingen, kan Adobe niet aannemen dat ze de JWT-toonder kunnen genereren die wordt beschreven in de reguliere server-naar-server-flow. Daarom verstrekt Adobe een mechanisme voor een ontwikkelaar om een toegangstoken direct te produceren die in verzoeken aan milieu's op AEM as a Cloud Service kan worden gebruikt waar zij toegang tot hebben.
Zie de documentatie van de Richtlijnen van de Ontwikkelaarvoor informatie over de vereiste toestemmingen om de de ontwikkelaarsconsole van AEM as a Cloud Service te gebruiken.
Ontwikkelaars kunnen dit token gebruiken om aanroepen uit hun niet-AEM testtoepassing naar een AEM as a Cloud Service-omgeving uit te voeren. De ontwikkelaar gebruikt dit token doorgaans samen met de niet-AEM-toepassing op zijn eigen laptop. Bovendien is de AEM als Cloud doorgaans een omgeving die geen productie heeft.
De ontwikkelaarsstroom omvat de volgende stappen:
- Een toegangstoken genereren vanuit de Developer Console
- Roep de AEM-toepassing aan met het toegangstoken.
Ontwikkelaars kunnen ook API-aanroepen uitvoeren naar een AEM-project op hun lokale computer. In dat geval is een toegangstoken niet nodig.
Het produceren van het Token van de Toegang generating-the-access-token
- Ga naar het Lokale teken onder Integraties
- Klik krijgen Token van de Lokale Ontwikkeling in Developer Console zodat kunt u een toegangstoken produceren.
De AEM-toepassing aanroepen met een toegangstoken call-the-aem-application-with-an-access-token
Maak de aangewezen server-aan-server API vraag van de niet-AEM toepassing aan een milieu van AEM as a Cloud Service, met inbegrip van het toegangstoken in de kopbal. Gebruik dus voor de header "Authorization" de waarde "Bearer <access_token>"
.
Referenties vernieuwen refresh-credentials
Standaard verlopen de gegevens op AEM as a Cloud Service na een jaar. Om de dienstcontinuïteit te verzekeren, hebben de ontwikkelaars de optie om de geloofsbrieven te verfrissen, die hun beschikbaarheid voor een extra jaar uitbreiden.
Ga als volgt te werk om deze vernieuwingsextensie te bereiken:
-
Gebruik certificaat knoop onder Integraties toevoegen - Technische Rekeningen in Developer Console, zoals hieronder getoond
-
Nadat u op de knop hebt gedrukt, wordt een set referenties gegenereerd die een nieuw certificaat bevat. Installeer de nieuwe referenties op uw off-AEM-server en zorg ervoor dat de verbinding naar behoren verloopt, zonder de oude gegevens te verwijderen.
-
Zorg ervoor dat de nieuwe geloofsbrieven in plaats van de oude worden gebruikt wanneer het produceren van het toegangstoken.
-
U kunt desgewenst het vorige certificaat intrekken (en vervolgens verwijderen), zodat het niet langer kan worden gebruikt voor verificatie met AEM as a Cloud Service.
Intrekking van referenties credentials-revocation
Als de persoonlijke sleutel in het gedrang komt, moet u referenties maken met een nieuw certificaat en een nieuwe persoonlijke sleutel. Nadat uw toepassing de nieuwe geloofsbrieven gebruikt zodat kunt u toegangstokens produceren, kunt u de oude certificaten intrekken en schrappen door het volgende te doen:
-
Voeg eerst de nieuwe toets toe. Met deze sleutel worden referenties gegenereerd met een nieuwe persoonlijke sleutel en een nieuw certificaat. De nieuwe privé sleutel wordt duidelijk in het gebruikersinterface als huidig en wordt daarom gebruikt voor alle nieuwe geloofsbrieven voor deze technische rekening die door:gaan. De referenties die aan de oudere persoonlijke sleutels zijn gekoppeld, zijn nog steeds geldig tot ze zijn ingetrokken. Om deze herroeping te bereiken, selecteer de drie punten (…) onder uw huidige technische rekening, dan uitgezocht voeg nieuwe privé sleutel toe:
-
Selecteer toevoegen bij de herinnering die volgt:
Een nieuw doorbladert lusje met de nieuwe geloofsbrieven opent en het gebruikersinterface wordt bijgewerkt om zowel privé sleutels met nieuwe te tonen duidelijk als huidig:
-
Installeer de nieuwe referenties op de niet-AEM-server en zorg ervoor dat de verbinding naar behoren functioneert. Zie Server aan de sectie van de Stroom van de Servervoor details.
-
Intrekken het oude certificaat door de drie punten (te selecteren…) rechts van het certificaat, en het selecteren Intrekken:
Dan, bevestig de herroeping in de volgende herinnering door de Revoke knoop te drukken:
-
Ten slotte verwijdert u het gecompromitteerde certificaat.