Toegangstokens genereren voor server-side API's generating-access-tokens-for-server-side-apis
Sommige architecturen vertrouwen op het maken van vraag aan AEM as a Cloud Service van een toepassing die op een server buiten AEM infrastructuur wordt ontvangen. 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 AEM Gebruikers of AEM Beheerdersproductprofiel op AEM auteur, kunnen een set referenties 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-AEM server 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, dat 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 aanroepen naar AEM
- Een JWT-token genereren en deze token uitwisselen voor een toegangstoken met IMS API's van de Adobe
- 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.
Installeer de AEM servicereferentials op een niet-AEM server install-the-aem-service-credentials-on-a-non-aem-server
De toepassing die vraag aan AEM maakt zou tot de geloofsbrieven voor AEM as a Cloud Service moeten kunnen toegang hebben, behandelend het als geheim.
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 IMS van de Adobe tot stand te brengen om een toegangstoken terug te winnen, dat 24 uren geldig is.
De AEM CS Service Credentials kunnen worden uitgewisseld voor een toegangstoken met behulp van clientbibliotheken die voor dit doel zijn ontworpen. De cliëntbibliotheken zijn beschikbaar bij openbare bewaarplaats GitHub van de Adobe, die gedetailleerdere begeleiding en recentste informatie bevat.
/*jshint node:true */
"use strict";
const fs = require('fs');
const exchange = require("@adobe/aemcs-api-client-lib");
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 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.
toe
-
Voeg de technische rekening toe die u (in dit geval
84b2c3a2-d60a-40dc-84cb-e16b786c1673@techacct.adobe.com
) creeerde, en klik sparen.toe
-
Wacht 10 minuten op de veranderingen om van kracht te worden en een API vraag aan AEM met een toegangstoken te maken die van de nieuwe referentie wordt geproduceerd. 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 de Adobe niet aannemen dat zij de JWT-drager kunnen genereren die in de reguliere server-naar-server-flow wordt beschreven. Daarom verstrekt de 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 te voeren vanuit hun niet-AEM testtoepassing naar een AEM as a Cloud Service-omgeving. De ontwikkelaar gebruikt dit token doorgaans 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 met het toegangstoken aan.
Ontwikkelaars kunnen ook API-aanroepen uitvoeren naar een AEM project dat op hun lokale computer wordt uitgevoerd. 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.
Vraag de AEM Toepassing met een Token van de Toegang 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 geloofsbrieven op uw off-AEM server en zorg ervoor dat de connectiviteit zoals verwacht is, zonder de oude geloofsbrieven 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:
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 connectiviteit 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.