Generazione dei token di accesso per le API lato server generating-access-tokens-for-server-side-apis

Alcune architetture si basano sull’esecuzione di chiamate ad AEM as a Cloud Service da un’applicazione ospitata su un server al di fuori dell’infrastruttura AEM. Ad esempio, un’app mobile che chiama un server e quindi invia richieste API ad AEM as a Cloud Service.

Il flusso server-to-server è descritto di seguito, insieme a un flusso semplificato per lo sviluppo. AEM as a Cloud Service Developer Console viene utilizzato per generare i token necessari per il processo di autenticazione.

Flusso server-to-server the-server-to-server-flow

Gli utenti con ruolo di amministratore dell’organizzazione IMS e che sono membri del profilo di prodotto Utenti AEM o Amministratori AEM nell’istanza Autore AEM possono generare un set di credenziali da AEM as a Cloud Service. Ogni credenziale è un payload JSON che include un certificato (la chiave pubblica), una chiave privata e un account tecnico costituito da clientId e clientSecret. Tali credenziali possono essere recuperate in seguito da un utente con il ruolo di amministratore dell’ambiente AEM as a Cloud Service e devono essere installate in un server non AEM e trattate con attenzione come chiave segreta. Questo file in formato JSON contiene tutti i dati necessari per l’integrazione con un’API AEM as a Cloud Service. I dati vengono utilizzati per creare un token JWT firmato, che viene scambiato con l’Adobe Identity Management Services (IMS) per un token di accesso IMS. Questo token di accesso può quindi essere utilizzato come token di autenticazione Bearer per effettuare richieste ad AEM as a Cloud Service. Per impostazione predefinita, il certificato nelle credenziali scade dopo un anno, ma può essere aggiornato quando necessario, come descritto qui.

Il flusso server-to-server prevede i seguenti passaggi:

  • Recuperare le credenziali su AEM as a Cloud Service da Developer Console
  • Installare le credenziali per AEM as a Cloud Service su un server non AEM che effettua chiamate all’AEM
  • Generare un token JWT e scambiarlo con un token di accesso utilizzando le API IMS di Adobe
  • Chiamata dell'API AEM con il token di accesso come token di autenticazione Bearer
  • Impostare le autorizzazioni appropriate per l’utente dell’account tecnico nell’ambiente AEM

Recupera le credenziali di AEM as a Cloud Service fetch-the-aem-as-a-cloud-service-credentials

Gli utenti con accesso alla Console per sviluppatori di AEM as a Cloud Service possono visualizzare la scheda integrazioni in Developer Console per un determinato ambiente. L’utente con il ruolo di amministratore dell’ambiente AEM as a Cloud Service può creare, visualizzare o gestire le credenziali.

Facendo clic su Crea nuovo account tecnico, viene creato un set di credenziali che include ID client, segreto client, chiave privata, certificato e configurazione per i livelli di authoring e pubblicazione dell'ambiente, indipendentemente dalla selezione del pod.

Creazione di un nuovo account tecnico

Viene visualizzata una nuova scheda del browser con le credenziali. È possibile utilizzare questa visualizzazione per scaricare le credenziali premendo l'icona di download accanto al titolo dello stato:

Scarica credenziali

Dopo la creazione, le credenziali verranno visualizzate nella scheda Account tecnici della sezione Integrazioni:

Visualizza credenziali

Gli utenti possono visualizzare le credenziali in un secondo momento utilizzando l’azione Visualizza. Inoltre, come descritto più avanti nell’articolo, gli utenti possono modificare le credenziali per lo stesso account tecnico. Questa operazione viene eseguita creando una chiave privata o un certificato, nei casi in cui il certificato debba essere rinnovato o revocato.

Gli utenti con il ruolo Amministratore dell’ambiente AEM as a Cloud Service possono in seguito creare credenziali per account tecnici aggiuntivi. Questa funzionalità è utile quando diverse API hanno requisiti di accesso diversi. Ad esempio, lettura e scrittura.

NOTE
I clienti possono creare fino a dieci account tecnici, inclusi quelli già eliminati.
IMPORTANT
Un amministratore dell’organizzazione IMS (in genere lo stesso utente che ha eseguito il provisioning dell’ambiente tramite Cloud Manager), che è anche membro del profilo di prodotto Utenti AEM o Amministratori AEM su AEM Author, deve prima accedere a Developer Console. Quindi, fai clic su Crea nuovo account tecnico per le credenziali da generare e recuperare in seguito da un utente con autorizzazioni di amministratore per l'ambiente AEM as a Cloud Service. Se l’amministratore dell’organizzazione IMS non ha ancora creato l’account tecnico, viene visualizzato un messaggio per informare che è necessario il ruolo di amministratore dell’organizzazione IMS.

Installare le credenziali del servizio AEM su un server non AEM install-the-aem-service-credentials-on-a-non-aem-server

L’applicazione che effettua chiamate all’AEM deve essere in grado di accedere alle credenziali per AEM as a Cloud Service, trattandola come un segreto.

Generare un token JWT e scambiarlo con un token di accesso generate-a-jwt-token-and-exchange-it-for-an-access-token

Utilizza le credenziali per creare un token JWT in una chiamata al servizio IMS di Adobe per recuperare un token di accesso, valido per 24 ore.

Le credenziali del servizio CS AEM possono essere scambiate con un token di accesso utilizzando le librerie client progettate a questo scopo. Le librerie client sono disponibili dall'archivio GitHub pubblico di Adobe, che contiene indicazioni 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 di token IMS.

Il token di accesso definisce quando scade, in genere 24 ore. Nell’archivio Git è presente un codice di esempio per gestire un token di accesso e aggiornarlo prima della scadenza.

NOTE
Se sono presenti più credenziali, assicurati di fare riferimento al file json appropriato per la chiamata API all’AEM che viene successivamente richiamata.

Chiamata dell'API AEM calling-the-aem-api

Effettua le chiamate API server-to-server appropriate a un ambiente AEM as a Cloud Service, incluso il token di accesso nell’intestazione. Per l'intestazione "Authorization", utilizzare 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

Impostare le autorizzazioni appropriate per l’utente dell’account tecnico in AEM set-the-appropriate-permissions-for-the-technical-account-user-in-aem

Innanzitutto, è necessario creare un nuovo profilo di prodotto in Adobe Admin Console.

  1. Vai al Adobe Admin Console all'indirizzo https://adminconsole.adobe.com/.

  2. Premi il collegamento Gestisci nella colonna Prodotti e servizi a sinistra.

  3. Seleziona AEM as a Cloud Service.

  4. Premere il pulsante Nuovo profilo.

    Nuovo profilo

  5. Denomina il profilo e premi Salva.

    Salva profilo

  6. Selezionare il profilo creato dall'elenco dei profili.

  7. Selezionare Aggiungi utente.

    Aggiungi utente

  8. Aggiungi l'account tecnico creato (in questo caso 84b2c3a2-d60a-40dc-84cb-e16b786c1673@techacct.adobe.com) e fai clic su Salva.

    Aggiungi account tecnico

  9. Attendi 10 minuti per rendere effettive le modifiche ed effettua una chiamata API all’AEM con un token di accesso generato dalle nuove credenziali. Come comando cURL, verrebbe rappresentato in modo simile a questo esempio:

    curl -H "Authorization: Bearer <access_token>" https://author-pXXXXX-eXXXXX.adobeaemcloud.net/content/dam.json

Dopo aver eseguito la chiamata API, il profilo di prodotto viene visualizzato come gruppo di utenti nell’istanza di authoring di AEM as a Cloud Service, con l’account tecnico appropriato come membro di tale gruppo.

Per verificare queste informazioni, eseguire le operazioni seguenti:

  1. Accedi all’istanza di authoring.

  2. Vai a Strumenti > Sicurezza, quindi fai clic sulla scheda Gruppi.

  3. Individua il nome del profilo creato nell’elenco dei gruppi e fai clic su di esso:

    Profilo gruppo

  4. Nella finestra seguente, passa alla scheda Membri e verifica che l'account tecnico sia elencato correttamente:

    Scheda Membri

In alternativa, puoi anche verificare che l’account tecnico sia presente nell’elenco dell’utente eseguendo i passaggi seguenti sull’istanza di authoring:

  1. Vai a Strumenti > Sicurezza > Utenti.

  2. Controlla che l’account tecnico sia l’elenco degli utenti e selezionalo.

  3. Fai clic sulla scheda Gruppi per verificare che l'utente appartenga al gruppo corrispondente al tuo profilo di prodotto. Questo utente è anche membro di una manciata di altri gruppi, inclusi i collaboratori:

    Appartenenza al gruppo

NOTE
Prima della metà del 2023, prima che fosse possibile creare più credenziali, i clienti non venivano guidati a creare un profilo di prodotto in Adobe Admin Console. Di conseguenza, l’account tecnico non era associato a un gruppo diverso da "Collaboratori" nell’istanza di AEM as a Cloud Service. Per motivi di coerenza, è consigliabile creare un profilo di prodotto in Adobe Admin Console come descritto in precedenza per questo account tecnico e aggiungere l’account tecnico esistente a tale gruppo.

Impostare le autorizzazioni di gruppo appropriate

Infine, configura il gruppo con le autorizzazioni appropriate necessarie in modo da poter richiamare o bloccare le API in modo appropriato.

  1. Accedi all'istanza di authoring appropriata e passa a Impostazioni > Sicurezza > Autorizzazioni

  2. Cerca il nome del gruppo corrispondente al profilo di prodotto nel riquadro a sinistra (in questo caso, API di sola lettura) e selezionalo:

    Cerca gruppo

  3. Fare clic sul pulsante Modifica nella finestra seguente:

    Modifica autorizzazioni

  4. Modifica le autorizzazioni in modo appropriato e fai clic su Salva

    Conferma modifica autorizzazioni

INFO
Scopri di più su Identity Management System (IMS) di Adobe e sugli utenti e i gruppi AEM. Consulta la documentazione.

Flusso per sviluppatori developer-flow

È probabile che gli sviluppatori desiderino eseguire il test utilizzando un’istanza di sviluppo della loro applicazione non AEM (in esecuzione sul laptop o in hosting) che invia richieste a un ambiente di sviluppo AEM as a Cloud Service. Tuttavia, poiché gli sviluppatori non dispongono necessariamente delle autorizzazioni per il ruolo di amministratore IMS, Adobe non può presumere che possano generare il Bearer JWT descritto nel normale flusso server-to-server. Pertanto, Adobe fornisce a uno sviluppatore un meccanismo per generare direttamente un token di accesso che può essere utilizzato nelle richieste agli ambienti su AEM as a Cloud Service a cui ha accesso.

Per informazioni sulle autorizzazioni necessarie per utilizzare la console per sviluppatori di AEM as a Cloud Service, consulta la documentazione sulle linee guida per sviluppatori.

NOTE
Il token di accesso per lo sviluppo locale è valido per un massimo di 24 ore, al termine delle quali deve essere rigenerato con lo stesso metodo.

Gli sviluppatori possono utilizzare questo token per effettuare chiamate dall’applicazione di test non AEM a un ambiente AEM as a Cloud Service. In genere, lo sviluppatore utilizza questo token con l’applicazione non AEM sul proprio laptop. Inoltre, AEM as a Cloud è in genere un ambiente non di produzione.

Il flusso per sviluppatori prevede i seguenti passaggi:

  • Generare un token di accesso da Developer Console
  • Chiama l’applicazione AEM con il token di accesso.

Gli sviluppatori possono anche effettuare chiamate API a un progetto AEM in esecuzione sul proprio computer locale, nel qual caso non è necessario un token di accesso.

Generazione del token di accesso generating-the-access-token

  1. Vai a Token locale in Integrazioni
  2. Fai clic su Ottieni token di sviluppo locale in Developer Console per generare un token di accesso.

Chiamare l’applicazione AEM con un token di accesso call-the-aem-application-with-an-access-token

Effettua le chiamate API server-to-server appropriate dall’applicazione non AEM a un ambiente AEM as a Cloud Service, incluso il token di accesso nell’intestazione. Per l'intestazione "Authorization", utilizzare il valore "Bearer <access_token>".

Aggiorna credenziali refresh-credentials

Per impostazione predefinita, le credenziali su AEM as a Cloud Service scadono dopo un anno. Per garantire la continuità del servizio, gli sviluppatori possono aggiornare le credenziali ed estenderne la disponibilità per un altro anno.

Per ottenere questa estensione di aggiornamento, effettua le seguenti operazioni:

  • Utilizza il pulsante Aggiungi certificato in Integrazioni - Account tecnici in Developer Console, come illustrato di seguito

    Aggiornamento credenziali

  • Dopo aver premuto il pulsante, viene generato un set di credenziali che include un nuovo certificato. Installa le nuove credenziali sul server off-AEM e assicurati che la connettività sia come previsto, senza rimuovere le vecchie credenziali.

  • Assicurati che vengano utilizzate le nuove credenziali invece di quelle precedenti durante la generazione del token di accesso.

  • Facoltativamente, revoca (e quindi elimina) il certificato precedente in modo che non possa più essere utilizzato per l’autenticazione con AEM as a Cloud Service.

Revoca credenziali credentials-revocation

Se la chiave privata è compromessa, è necessario creare le credenziali con un nuovo certificato e una nuova chiave privata. Dopo che l'applicazione utilizza le nuove credenziali per generare i token di accesso, è possibile revocare ed eliminare i vecchi certificati eseguendo le operazioni seguenti:

  1. Aggiungi innanzitutto la nuova chiave. Questa chiave genera le credenziali con una nuova chiave privata e un nuovo certificato. La nuova chiave privata è contrassegnata nell'interfaccia utente come corrente ed è quindi utilizzata per tutte le nuove credenziali per questo account tecnico in futuro. Le credenziali associate alle chiavi private precedenti sono ancora valide fino alla revoca. Per ottenere questa revoca, seleziona i tre punti () nell'account tecnico corrente, quindi seleziona Aggiungi nuova chiave privata:

    Aggiungi nuova chiave privata

  2. Seleziona Aggiungi al prompt seguente:

    Conferma laggiunta della nuova chiave privata

    Viene aperta una nuova scheda Sfoglia con le nuove credenziali e l'interfaccia utente viene aggiornata per mostrare entrambe le chiavi private con la nuova contrassegnata come corrente:

    Chiavi private nellinterfaccia utente

  3. Installa le nuove credenziali sul server non AEM e assicurati che la connettività funzioni come previsto. Per informazioni dettagliate, vedere la sezione Flusso da server a server.

  4. Revocare il certificato precedente selezionando i tre punti () a destra del certificato e selezionando Revoca:

    Revoca certificato

    Quindi, confermare la revoca nel seguente prompt premendo il pulsante Revoca:

    Revoca conferma certificato

  5. Infine, elimina il certificato compromesso.

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab