Alcune architetture si basano sull'effettuazione di chiamate a AEM come Cloud Service da un'applicazione ospitata su un server esterno all'infrastruttura AEM. Ad esempio, un'applicazione mobile che chiama un server, che quindi esegue richieste API da AEM come Cloud Service.
Il flusso server-to-server è descritto di seguito, insieme a un flusso semplificato per lo sviluppo. Il AEM come Cloud Service Developer Console viene utilizzato per generare i token necessari per il processo di autenticazione.
Oltre a questa documentazione, è anche possibile consultare l'esercitazione sull'autenticazione basata su Token per AEM come Cloud Service.
Un utente con un ruolo di amministratore dell'organizzazione IMS può generare un AEM come credenziale di Cloud Service, che può essere successivamente recuperata da un utente con il AEM come ruolo di amministratore dell'ambiente di Cloud Service e deve essere installato sul server e deve essere trattato attentamente come una chiave segreta. Questo file di formato JSON contiene tutti i dati necessari per l'integrazione con un AEM come API di Cloud Service. I dati vengono utilizzati per creare un token JWT firmato, che viene scambiato con IMS per un token di accesso IMS. Questo token di accesso può quindi essere utilizzato come token di autenticazione del portatore per effettuare richieste di AEM come Cloud Service.
Il flusso server-to-server comporta i seguenti passaggi:
Gli utenti che hanno accesso al AEM come console per sviluppatori di Cloud Service visualizzeranno la scheda integrazioni nella console per sviluppatori di un determinato ambiente, oltre a due pulsanti. Un utente con il ruolo di amministratore dell'ambiente di Cloud Service AEM può fare clic sul pulsante Ottieni credenziali del servizio per visualizzare il json delle credenziali del servizio, che conterrà tutte le informazioni necessarie per il server non AEM, inclusi ID client, segreto client, chiave privata, certificato e configurazione per i livelli di creazione e pubblicazione dell'ambiente, indipendentemente dalla selezione del contenitore.
L'output sarà simile al seguente:
{
"ok": true,
"integration": {
"imsEndpoint": "ims-na1.adobelogin.com",
"metascopes": "ent_aem_cloud_sdk,ent_cloudmgr_sdk",
"technicalAccount": {
"clientId": "cm-p123-e1234",
"clientSecret": "4AREDACTED17"
},
"email": "abcd@techacct.adobe.com",
"id": "ABCDAE10A495E8C@techacct.adobe.com",
"org": "1234@AdobeOrg",
"privateKey": "-----BEGIN RSA PRIVATE KEY-----\r\REDACTED\r\n==\r\n-----END RSA PRIVATE KEY-----\r\n",
"publicKey": "-----BEGIN CERTIFICATE-----\r\nREDACTED\r\n-----END CERTIFICATE-----\r\n"
},
"statusCode": 200
}
Un amministratore dell'organizzazione IMS (in genere lo stesso utente che ha eseguito il provisioning dell'ambiente tramite Cloud Manager) deve prima accedere a Developer Console e fare clic sul pulsante Ottieni credenziali di servizio per generare le credenziali e recuperarle successivamente da un utente con autorizzazioni di amministratore per l'AEM come ambiente di Cloud Service. Se l’amministratore dell’organizzazione IMS non lo ha fatto, un messaggio li informa che hanno bisogno del ruolo di amministratore dell’organizzazione IMS.
L'applicazione che effettua chiamate a AEM non AEM dovrebbe essere in grado di accedere al AEM come credenziali di Cloud Service, trattandolo come un segreto.
Utilizzate le credenziali per creare un token JWT in una chiamata a servizio IMS per recuperare un token di accesso, valido per 24 ore.
Le AEM credenziali del servizio CS possono essere scambiate per un token di accesso utilizzando le librerie client progettate a tal fine. Le librerie client sono disponibili da Adobe repository GitHub pubblico, che contiene informazioni più dettagliate e informazioni più recenti.
/*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);
});
Lo stesso scambio può essere eseguito in qualsiasi lingua in grado di generare un token JWT firmato con il formato corretto e di chiamare le API di scambio token IMS.
Il token di accesso definisce la data di scadenza, che in genere corrisponde a 24 ore. È presente un esempio di codice nel repository Git per gestire un token di accesso e aggiornarlo prima della scadenza.
Eseguite le chiamate API server-to-server appropriate a un AEM come ambiente di Cloud Service, incluso il token di accesso nell’intestazione. Quindi, per l’intestazione “Autorizzazione”, utilizzate il valore "Bearer <access_token>"
. Ad esempio, utilizzando curl
:
curl -H "Authorization: Bearer <your_ims_access_token>" https://author-p123123-e23423423.adobeaemcloud.com/content/dam.json
Dopo che l'utente dell'account tecnico è stato creato in AEM (questo si verifica dopo la prima richiesta con il token di accesso corrispondente), l'utente dell'account tecnico deve essere autorizzato correttamente in in AEM.
Per impostazione predefinita, nel servizio AEM Author l’utente dell’account tecnico viene aggiunto al gruppo di utenti Collaboratori che fornisce AEM di accesso in lettura.
Questo utente tecnico di account in AEM può essere ulteriormente privato con le autorizzazioni utilizzando i metodi usuali.
È probabile che gli sviluppatori desiderino eseguire il test utilizzando un'istanza di sviluppo dell'applicazione non AEM (in esecuzione sul laptop o in hosting) che esegue richieste a un AEM di sviluppo come ambiente di sviluppo Cloud Service. Tuttavia, poiché gli sviluppatori non dispongono necessariamente di autorizzazioni per il ruolo di amministratore IMS, non possiamo supporre che possano generare il portatore JWT descritto nel flusso regolare server-to-server. Forniamo quindi un meccanismo che consente a uno sviluppatore di generare direttamente un token di accesso da utilizzare nelle richieste di AEM come ambienti di Cloud Service a cui hanno accesso.
Per informazioni sulle autorizzazioni necessarie per utilizzare il AEM come console per sviluppatori di Cloud Service, consultate la Guida per sviluppatori.
Il token di accesso allo sviluppo locale è valido per un massimo di 24 ore dopo il quale deve essere rigenerato utilizzando lo stesso metodo.
Gli sviluppatori possono utilizzare questo token per effettuare chiamate dall'applicazione di prova non AEM a un AEM come ambiente Cloud Service. In genere, lo sviluppatore utilizza questo token con l'applicazione non AEM sul proprio computer portatile. Inoltre, il AEM come cloud è in genere un ambiente non di produzione.
Il flusso di sviluppo prevede i seguenti passaggi:
Gli sviluppatori possono inoltre effettuare chiamate API a un progetto AEM in esecuzione sul computer locale, nel qual caso non è necessario un token di accesso.
Fate clic sul pulsante Ottieni token di sviluppo locale nella console per sviluppatori per generare un token di accesso.
Eseguite le chiamate API server-to-server appropriate dall’applicazione non AEM a un AEM come ambiente Cloud Service, incluso il token di accesso nell’intestazione. Quindi, per l’intestazione “Autorizzazione”, utilizzate il valore "Bearer <access_token>"
.
Se il token del portatore JWT deve essere revocato, invia una richiesta all'assistenza clienti.