Genererar åtkomsttoken för API:er på serversidan generating-access-tokens-for-server-side-apis
Vissa arkitekturer förlitar sig på att ringa till AEM as a Cloud Service från ett program som ligger på en server utanför AEM infrastruktur. Ett mobilprogram som anropar en server och sedan gör API-begäranden till AEM as a Cloud Service.
Flödet server-till-server beskrivs nedan tillsammans med ett förenklat utvecklingsflöde. AEM as a Cloud Service Developer Console används för att generera tokens som behövs för autentiseringsprocessen.
Server-till-server-flödet the-server-to-server-flow
Användare med en IMS-organisationsadministratörsroll och som är medlem av produktprofilen AEM användare eller AEM administratörer AEM författare kan generera en uppsättning inloggningsuppgifter från AEM as a Cloud Service. Varje autentiseringsuppgift är en JSON-nyttolast som innehåller ett certifikat (den offentliga nyckeln), en privat nyckel och ett tekniskt konto som består av clientId
och clientSecret
. Dessa autentiseringsuppgifter kan senare hämtas av en användare med administratörsrollen AEM as a Cloud Service Environment och ska installeras på en icke-AEM server och behandlas noggrant som en hemlig nyckel. Den här JSON-formatfilen innehåller alla data som krävs för att integrera med ett AEM as a Cloud Service API. Data används för att skapa en signerad JWT-token, som byts med Adobe Identity Management Services (IMS) för en IMS-åtkomsttoken. Denna åtkomsttoken kan sedan användas som en Bearer-autentiseringstoken för att göra förfrågningar till AEM as a Cloud Service. Certifikatet i inloggningsuppgifterna upphör att gälla efter ett år som standard, men de kan uppdateras vid behov, se Uppdatera inloggningsuppgifter.
I flödet från server till server ingår följande steg:
- Hämta inloggningsuppgifterna på AEM as a Cloud Service från Developer Console
- Installera autentiseringsuppgifterna för AEM as a Cloud Service på en icke-AEM server som anropar AEM
- Generera en JWT-token och byt ut denna token mot en åtkomsttoken med hjälp av Adobe IMS API:er
- Anropa AEM-API:t med åtkomsttoken som en Bearer-autentiseringstoken
- Ange lämplig behörighet för den tekniska kontoanvändaren i AEM
Hämta AEM as a Cloud Service-autentiseringsuppgifter fetch-the-aem-as-a-cloud-service-credentials
Användare med tillgång till AEM as a Cloud Service utvecklarkonsol kan se integreringsfliken i Developer Console för en viss miljö. En användare med AEM as a Cloud Service miljöadministratörsroll kan skapa, visa och hantera autentiseringsuppgifter.
Om du klickar på Skapa nytt tekniskt konto skapas en uppsättning autentiseringsuppgifter som innehåller klient-ID, klienthemlighet, privat nyckel, certifikat och konfiguration för författarnivå och publiceringsnivå för miljön, oavsett vilket pod-val som har gjorts.
En ny flik i webbläsaren öppnas och inloggningsuppgifterna visas. Du kan använda den här vyn för att hämta inloggningsuppgifterna genom att trycka på nedladdningsikonen bredvid statustiteln:
När autentiseringsuppgifterna har skapats visas de under fliken Tekniska konton i avsnittet Integrationer:
Användarna kan senare visa inloggningsuppgifterna med åtgärden Visa. Dessutom kan användare redigera inloggningsuppgifterna för samma tekniska konto, vilket beskrivs senare i artikeln. De utför redigeringen genom att skapa en privat nyckel eller ett certifikat, i de fall då certifikatet måste förnyas eller återkallas.
Användare med AEM as a Cloud Service miljöadministratörsroll kan senare skapa autentiseringsuppgifter för ytterligare tekniska konton. Den här funktionen är användbar när olika API:er har olika åtkomstkrav. Till exempel läs kontra läs/skriv.
Installera autentiseringsuppgifterna för AEM på en icke-AEM server install-the-aem-service-credentials-on-a-non-aem-server
Programmet som anropar AEM ska kunna komma åt AEM as a Cloud Service uppgifter och behandla det som en hemlighet.
Generera en JWT-token och ersätt den för en åtkomsttoken generate-a-jwt-token-and-exchange-it-for-an-access-token
Använd autentiseringsuppgifterna för att skapa en JWT-token i ett anrop till Adobe IMS-tjänsten för att hämta en åtkomsttoken, som är giltig i 24 timmar.
AEM CS Service Credentials kan bytas ut mot en åtkomsttoken med hjälp av klientbibliotek som är utformade för detta ändamål. Klientbiblioteken är tillgängliga från Adobe offentliga GitHub-databas, som innehåller mer detaljerad vägledning och senaste information.
/*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);
});
Samma utbyte kan utföras på alla språk som kan generera en signerad JWT-token med rätt format och anropa API:erna för IMS Token Exchange.
Åtkomsttoken definierar när den upphör att gälla, vilket vanligtvis är 24 timmar. Det finns exempelkod i Git-databasen för att hantera en åtkomsttoken och uppdatera den innan den upphör att gälla.
Anropa AEM API calling-the-aem-api
Gör lämpliga server-till-server-API-anrop till en AEM as a Cloud Service-miljö, inklusive åtkomsttoken i huvudet. Använd därför värdet "Bearer <access_token>"
för auktoriseringshuvudet. Använd till exempel curl
:
curl -H "Authorization: Bearer <your_ims_access_token>" https://author-p123123-e23423423.adobeaemcloud.com/content/dam.json
Ange lämpliga behörigheter för den tekniska kontoanvändaren i AEM set-the-appropriate-permissions-for-the-technical-account-user-in-aem
Först måste en ny produktprofil skapas i Adobe Admin Console.
-
Gå till Adobe Admin Console på https://adminconsole.adobe.com/.
-
Tryck på länken Hantera under kolumnen Produkter och tjänster till vänster.
-
Välj AEM as a Cloud Service.
-
Tryck på knappen Ny profil.
-
Namnge profilen och tryck på Spara.
-
Välj den profil som du skapade i profillistan.
-
Välj Lägg till användare.
-
Lägg till det tekniska konto som du skapade (i det här fallet
84b2c3a2-d60a-40dc-84cb-e16b786c1673@techacct.adobe.com
) och klicka på Spara. -
Vänta i 10 minuter tills ändringarna börjar gälla och gör ett API-anrop till AEM med en åtkomsttoken som genererats från den nya autentiseringsuppgiften. Som ett cURL-kommando motsvaras det av följande exempel:
curl -H "Authorization: Bearer <access_token>" https://author-pXXXXX-eXXXXX.adobeaemcloud.net/content/dam.json
När du har gjort API-anropet visas produktprofilen som en användargrupp i AEM as a Cloud Service-författarinstansen, med lämpligt tekniskt konto som medlem i den gruppen.
Så här kontrollerar du den här informationen:
-
Logga in på författarinstansen.
-
Gå till Verktyg > Dokumentskydd och klicka på kortet Grupper.
-
Leta reda på namnet på profilen som du skapade i listan med grupper och klicka på den:
-
I följande fönster växlar du till fliken Medlemmar och kontrollerar om det tekniska kontot finns korrekt i listan:
Du kan också verifiera att det tekniska kontot visas i användarlistan genom att utföra följande steg på författarinstansen:
-
Gå till Verktyg > Dokumentskydd > Användare.
-
Kontrollera att ditt tekniska konto är användarlistan och välj det.
-
Klicka på fliken Grupper så att du kan verifiera att användaren är en del av gruppen som motsvarar din produktprofil. Den här användaren ingår även i en handfull andra grupper, bland annat följande:
Ange lämpliga gruppbehörigheter
Konfigurera slutligen gruppen med de behörigheter som krävs så att du kan anropa eller låsa API:erna på rätt sätt.
-
Logga in på rätt författarinstans och navigera till Inställningar > Säkerhet > Behörigheter
-
Sök efter namnet på gruppen som motsvarar produktprofilen i den vänstra rutan (i det här fallet skrivskyddade API:er) och markera den:
-
Klicka på knappen Redigera i följande fönster:
-
Ändra behörigheterna korrekt och klicka på Spara
Utvecklarflöde developer-flow
Utvecklare vill antagligen testa med en utvecklingsinstans av sina andra program än AEM (som antingen körs på bärbara datorer eller på värdtjänster) som begär en utvecklingsmiljö i AEM as a Cloud Service. Eftersom utvecklare inte nödvändigtvis har behörigheten IMS-administratörsroll kan Adobe inte anta att de kan generera JWT-bäraren som beskrivs i det vanliga server-till-server-flödet. Därför erbjuder Adobe en mekanism för utvecklare att generera en åtkomsttoken direkt som kan användas i begäranden till miljöer i AEM as a Cloud Service som de har tillgång till.
Mer information om vilka behörigheter som krävs för att använda AEM as a Cloud Service utvecklarkonsol finns i dokumentationen för utvecklarriktlinjerna.
Utvecklare kan använda denna token för att ringa anrop från andra program än AEM till en AEM as a Cloud Service-miljö. I vanliga fall använder utvecklaren denna token tillsammans med programmet som inte är AEM på sin egen bärbara dator. AEM som moln är vanligtvis en icke-produktionsmiljö.
Utvecklarflödet omfattar följande steg:
- Generera en åtkomsttoken från Developer Console
- Anropa AEM program med åtkomsttoken.
Utvecklare kan också göra API-anrop till ett AEM projekt som körs på den lokala datorn. I så fall behövs ingen åtkomsttoken.
Genererar åtkomsttoken generating-the-access-token
- Gå till Lokal token under Integrationer
- Klicka på Hämta lokal utvecklingstoken i Developer Console så att du kan generera en åtkomsttoken.
Anropa AEM program med en åtkomsttoken call-the-aem-application-with-an-access-token
Gör lämpliga server-till-server-API-anrop från det icke-AEM programmet till en AEM as a Cloud Service-miljö, inklusive åtkomsttoken i huvudet. Använd därför värdet "Bearer <access_token>"
för auktoriseringshuvudet.
Uppdatera autentiseringsuppgifter refresh-credentials
Som standard upphör inloggningsuppgifterna på AEM as a Cloud Service att gälla efter ett år. För att säkerställa kontinuiteten i tjänsterna kan utvecklarna uppdatera sina autentiseringsuppgifter och förlänga tillgängligheten ytterligare ett år.
Så här uppnår du det här uppdateringstillägget:
-
Använd knappen Lägg till certifikat under Integrationer - Tekniska konton i Developer Console, enligt nedan
-
När du har tryckt på knappen genereras en uppsättning autentiseringsuppgifter som innehåller ett nytt certifikat. Installera de nya autentiseringsuppgifterna på den AEM servern och kontrollera att anslutningen fungerar som förväntat, utan att ta bort de gamla autentiseringsuppgifterna.
-
Kontrollera att de nya autentiseringsuppgifterna används i stället för de gamla när du genererar åtkomsttoken.
-
Du kan också återkalla (och sedan ta bort) det tidigare certifikatet så att det inte längre kan användas för autentisering med AEM as a Cloud Service.
Återkallande av autentiseringsuppgifter credentials-revocation
Om den privata nyckeln komprometteras måste du skapa autentiseringsuppgifter med ett nytt certifikat och en ny privat nyckel. När ditt program har använt de nya autentiseringsuppgifterna så att du kan generera åtkomsttoken kan du återkalla och ta bort de gamla certifikaten genom att göra följande:
-
Lägg först till den nya nyckeln. Den här nyckeln genererar autentiseringsuppgifter med en ny privat nyckel och ett nytt certifikat. Den nya privata nyckeln har markerats i användargränssnittet som current och används därför för alla nya autentiseringsuppgifter för det här tekniska kontot. Autentiseringsuppgifterna som är associerade med de äldre privata nycklarna är fortfarande giltiga tills de återkallas. För att uppnå detta återkallande väljer du de tre punkterna (…) under ditt nuvarande tekniska konto och sedan Lägg till ny privat nyckel:
-
Välj Lägg till vid följande uppmaning:
En ny bläddringsflik med de nya inloggningsuppgifterna öppnas och användargränssnittet uppdateras så att både privata nycklar visas med den nya som markerats som aktuell:
-
Installera de nya autentiseringsuppgifterna på den icke-AEM servern och kontrollera att anslutningen fungerar som förväntat. Mer information finns i avsnittet Server-till-server-flöde.
-
Återkalla det gamla certifikatet genom att markera de tre punkterna (…) till höger om certifikatet och välja Återkalla:
Bekräfta sedan återkallningen i följande uppmaning genom att trycka på knappen Återkalla :
-
Slutligen tar du bort det skadade certifikatet.