Configura l'autenticazione per l'edizione SAP BTP dell'SDK ABAP per Google Cloud

Questo documento descrive come eseguire l'autenticazione su Google Cloud dall'edizione SAP BTP dell'SDK ABAP per Google Cloud.

Le applicazioni sviluppate utilizzando l'edizione SAP BTP dell'SDK ABAP per Google Cloud richiedono l'autenticazione per connettersi alle API Google Cloud.

Per l'autenticazione e l'autorizzazione di accesso alle API Google Cloud, l'SDK utilizza principalmente token. Inoltre, l'SDK supporta anche le chiavi API per l'autenticazione con le API Google Cloud che utilizzano chiavi API. Solo poche API Google Cloud utilizzano le chiavi API per l'autenticazione. ad esempio Google Maps Platform. Consulta la documentazione sull'autenticazione per il servizio o l'API che vuoi utilizzare per determinare se supporta le chiavi API.

A seconda delle API Google Cloud alle quali devi accedere, puoi scegliere un metodo di autenticazione appropriato. Il seguente elenco riassume i diversi metodi di autenticazione supportati dall'SDK:

Autenticazione mediante token tramite la federazione di Workload Identity

Workload Identity Federation segue la specifica relativa allo scambio di token OAuth 2.0. Devi fornire una credenziale del tuo provider di identità (IdP) al servizio token di sicurezza, che verifica l'identità della credenziale e, in cambio, restituisce un token federato. Puoi utilizzare questo token per impersonare un account di servizio e ottenere un token di accesso OAuth 2.0 di breve durata. Il token di accesso di breve durata consente di chiamare qualsiasi API Google Cloud a cui ha accesso l'account di servizio.

Per l'autenticazione mediante token tramite la federazione di Workload Identity, abilita le seguenti API Google Cloud:

Per informazioni su come abilitare le API Google Cloud, consulta Abilitazione delle API.

Per l'autenticazione mediante token tramite la federazione di Workload Identity, i passaggi di configurazione di alto livello sono i seguenti:

  1. In SAP BTP, crea un'istanza del servizio XSUAA (Authorization and Trust).
  2. In Google Cloud, crea un account di servizio.
  3. In Google Cloud, configura la federazione di Workload Identity.
  4. In SAP BTP, configura l'SDK ABAP per Google Cloud per l'utilizzo della federazione di Workload Identity.

Creazione di un'istanza del servizio XSUAA (Authorization and Trust)

Per fornire i servizi necessari all'applicazione di backend, crea un'istanza del servizio XSUAA (Authorization and Trust) seguendo questi passaggi:

  1. Accedi al SAP BTP Cockpit. Per saperne di più, consulta la pagina SAP Accedere al Cockpit.
  2. Seleziona il tuo subaccount.
  3. Crea un'istanza di servizio XSUAA:

    1. Vai a Servizi > Service Marketplace.
    2. Cerca e seleziona Authorization & Trust Management Service (XSUAA).
    3. Fai clic su Crea.
    4. Nella finestra di dialogo Nuova istanza o sottoscrizione visualizzata, inserisci un valore per i seguenti campi:

      • Pianifica: seleziona Applicazione.
      • Ambiente di runtime: seleziona Cloud Foundry.
      • Spazio: seleziona il nome di uno spazio.
      • Nome istanza: inserisci un nome per l'istanza del servizio XSUAA.
    5. Fai clic su Crea.

  4. Crea una chiave di servizio:

    1. Vai a Istanze e abbonamenti > Istanze.
    2. Seleziona l'istanza del servizio XSUAA che hai creato nel passaggio precedente e fai clic sulla scheda Chiavi di servizio.
    3. Fai clic su Crea.
    4. Inserisci un nome per la chiave di servizio e fai clic su Crea.
    5. Per la chiave di servizio appena creata, fai clic sul menu Azioni () e seleziona Visualizza.
    6. Tra le credenziali della chiave di servizio, tieni presente quanto segue:

      • url
      • clientid
      • clientsecret

    Devi avere queste credenziali per la chiave di servizio durante la configurazione dell'autenticazione in Google Cloud.

Crea un account di servizio

Nella console Google Cloud, crea un account di servizio IAM. Questo account di servizio deve essere un'entità nel progetto Google Cloud che contiene le API Google Cloud che prevedi di utilizzare con l'SDK.

  1. Nella console Google Cloud, seleziona il progetto in cui vuoi creare l'account di servizio.

    • Se crei l'account di servizio nello stesso progetto che contiene le API Google Cloud, l'account di servizio viene aggiunto automaticamente come entità al progetto.

    • Se crei l'account di servizio in un progetto diverso da quello in cui sono abilitate le API Google Cloud, devi aggiungere l'account di servizio al progetto in un passaggio aggiuntivo. Per saperne di più, consulta Aggiungere l'account di servizio al progetto Google Cloud.

  2. Crea un account di servizio per l'autenticazione e l'autorizzazione di accesso alle API Google Cloud.

    Vai ad Account di servizio

    Per informazioni su come creare un account di servizio, vedi Creare un account di servizio.

  3. Nella console Google Cloud, concedi all'account di servizio i ruoli IAM richiesti per accedere alla funzionalità API. Per comprendere i requisiti dei ruoli per le API Google Cloud, consulta la documentazione relativa alle singole API e segui il principio del privilegio minimo. Per ulteriori informazioni sui ruoli predefiniti specifici delle API, consulta la documentazione di riferimento sui ruoli IAM di base e predefiniti.

  4. Se hai creato l'account di servizio in un progetto diverso da quello che contiene le API Google Cloud che prevedi di utilizzare con l'SDK, prendi nota del nome dell'account di servizio. Puoi specificare il nome quando aggiungi l'account di servizio al progetto.

Aggiungi l'account di servizio al progetto Google Cloud

Se hai creato l'account di servizio per l'SDK ABAP per Google Cloud in un progetto diverso da quello che contiene le API Google Cloud di cui prevedi di utilizzare l'SDK, devi aggiungere l'account di servizio al progetto Google Cloud che contiene le API Google Cloud.

Se hai creato l'account di servizio nello stesso progetto che contiene le API Google Cloud, puoi saltare questo passaggio.

Per aggiungere un account di servizio esistente al progetto Google Cloud che contiene le API Google Cloud, esegui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Autorizzazioni IAM.

    Vai alle autorizzazioni IAM

  2. Conferma che il nome del progetto che contiene le API Google Cloud di destinazione sia visualizzato nella parte superiore della pagina. Ad esempio:

    Autorizzazioni per il progetto "PROJECT_NAME"

    In caso contrario, cambia progetto.

  3. Nella pagina Autorizzazioni IAM, fai clic su Concedi accesso.

  4. Nella finestra di dialogo Concedi l'accesso a "PROJECT_NAME" visualizzata, segui questi passaggi:

    1. Nel campo Nuove entità, specifica il nome dell'account di servizio.
    2. Nel campo Seleziona un ruolo, specifica un ruolo pertinente. Ad esempio, per Pub/Sub, per modificare argomenti e sottoscrizioni e accedere per pubblicare e utilizzare messaggi, puoi specificare il ruolo Editor Pub/Sub (roles/pubsub.editor).

      Per maggiori dettagli sui ruoli predefiniti specifici per le API, consulta la pagina Riferimento ai ruoli IAM di base e predefiniti.

    3. Aggiungi altri ruoli in base alle esigenze del tuo utilizzo dell'API. Ti consigliamo di implementare il principio del privilegio minimo.

    4. Fai clic su Salva. L'account di servizio viene visualizzato nell'elenco delle entità del progetto sulla pagina IAM.

Ora l'account di servizio può essere utilizzato per accedere alle API Google Cloud in questo progetto.

Configura federazione di Workload Identity

Per ottenere le autorizzazioni necessarie per configurare la federazione di Workload Identity, chiedi all'amministratore di concederti i ruoli IAM seguenti sul progetto:

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Per configurare la federazione di Workload Identity, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Nuovo provider e pool di carichi di lavoro.

    Vai a Nuovo provider e pool di carichi di lavoro

  2. Nella sezione Crea un pool di identità, inserisci un valore per i seguenti campi:

    • Nome: il nome del pool. Il nome viene utilizzato anche come ID pool. Non potrai modificare l'ID pool in un secondo momento.
    • Descrizione: testo che descrive lo scopo del pool.
  3. Fai clic su Continua.

  4. In Aggiungi un provider al pool, aggiungi le impostazioni del provider:

    1. Nel campo Seleziona un provider, scegli OpenID Connect (OIDC).
    2. Inserisci i seguenti dettagli del provider:

      • Nome provider: inserisci un nome per il provider.
      • Emittente(URL): inserisci l'URL delle credenziali della chiave di servizio che hai annotato quando hai creato l'istanza di servizio XSUAA. Aggiungi /oauth/token all'URL.
      • Pubblico: seleziona Pubblico consentito e inserisci l'ID client con le credenziali della chiave di servizio annotate al momento della creazione dell'istanza di servizio XSUAA.
  5. Fai clic su Continua.

  6. In Configura gli attributi del provider, inserisci assertion.sub nel campo OIDC 1.

  7. Fai clic su Salva.

  8. Tieni presente quanto segue:

    • ID pool
    • ID provider

    Questi ID sono necessari durante la configurazione dell'autenticazione nell'app Fiori di configurazione dell'SDK.

Consenti alle identità esterne di impersonare l'account di servizio

Per impersonare account di servizio di carichi di lavoro federati, concedi l'autorizzazione Workload Identity User (roles/iam.workloadIdentityUser) all'account di servizio. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Per consentire alle identità esterne di impersonare un account di servizio:

  1. Nella console Google Cloud, vai alla pagina Pool di identità carichi di lavoro.

    Vai ai pool Workload Identity

  2. Seleziona il pool di identità per i carichi di lavoro che hai creato nella sezione Configura la federazione di Workload Identity.

  3. Per concedere l'accesso al pool di identità per i carichi di lavoro, fai clic su Concedi l'accesso.

  4. Nell'elenco Account di servizio, seleziona l'account di servizio che ha accesso alle API Google Cloud. Se usi più account di servizio, aggiungili tutti qui.

  5. Nel campo Nome attributo, seleziona Oggetto.

  6. Nel campo Valore attributo, inserisci l'ID client delle credenziali della chiave di servizio che hai annotato al momento della creazione dell'istanza di servizio XSUAA.

  7. Fai clic su Salva.

  8. Nella finestra di dialogo Configura la tua applicazione visualizzata, fai clic su Ignora.

Configura l'SDK ABAP per Google Cloud per l'utilizzo della federazione di Workload Identity

Puoi creare artefatti di gestione della comunicazione utilizzando le app di gestione della comunicazione SAP.

Per creare artefatti di gestione della comunicazione per l'autenticazione mediante il servizio XSUAA e la federazione di Workload Identity, utilizza lo scenario di comunicazione /GOOG/COM_SDK_WIF fornito con l'SDK ABAP per Google Cloud.

Successivamente, utilizzerai l'app SDK Configuration Fiori per creare una mappa di comunicazione. Nella mappa di comunicazione, devi definire una chiave client univoca da utilizzare nel programma ABAP per l'autenticazione in Google Cloud.

  1. Accedi al Launchpad SAP Fiori del sistema BTP ABAP dove è installato l'SDK ABAP per Google Cloud.
  2. Vai a Tutti gli spazi > Amministrazione > Gestione delle comunicazioni.
  3. Crea un sistema di comunicazione:
    1. Apri l'app Sistemi di comunicazione.
    2. Fai clic su New (Nuovo).
    3. Nella finestra di dialogo Nuovo sistema di comunicazione visualizzata, inserisci un valore per i seguenti campi:
      • ID sistema: inserisci un ID sistema.
      • Nome del sistema: inserisci un nome per il sistema.
    4. Fai clic su Crea.
    5. Nel campo Nome host, inserisci l'URL senza https:// delle credenziali della chiave di servizio che hai annotato quando hai creato l'istanza di servizio XSUAA.
    6. Nel campo Porta, inserisci 443.
    7. Nella scheda Utenti per le comunicazioni in uscita, fai clic su Aggiungi.
    8. Fornisci i seguenti dettagli:
      • Metodo di autenticazione: seleziona Nome utente e password.
      • Nome utente/ID client: inserisci l'ID client delle credenziali della chiave di servizio che hai annotato quando hai creato l'istanza del servizio XSUAA.
      • Password: inserisci il client secret contenuto nelle credenziali della chiave di servizio che hai annotato al momento della creazione dell'istanza di servizio XSUAA.
    9. Fai clic su Salva.
  4. Crea un accordo di comunicazione:

    1. Apri l'app Communication Arrangement.
    2. Fai clic su New (Nuovo).
    3. Nella finestra di dialogo Nuovo disposizione della comunicazione visualizzata, inserisci un valore per i seguenti campi:

      • Scenario: seleziona Autenticazione con federazione di Workload Identity (/GOOG/COM_SDK_WIF).
      • Nome disposizione: inserisci un nome per l'accordo di comunicazione.
    4. Fai clic su Crea.

    5. Per l'accordo di comunicazione visualizzato, seleziona il sistema di comunicazione creato nel passaggio precedente nel campo Sistema di comunicazione.

    6. Fornisci i dettagli seguenti nella sezione Configurare la federazione di Workload Identity:

      • ID pool di federazione delle identità per carichi di lavoro: inserisci l'ID del pool di federazione delle identità per i carichi di lavoro.
      • ID provider di federazione delle identità per carichi di lavoro: inserisci l'ID provider di federazione delle identità per i carichi di lavoro.
    7. In Servizi in uscita, nel campo Percorso, inserisci /oauth/token.

    8. Fai clic su Salva.

  5. Crea una chiave client e una mappa di comunicazione:

    1. Vai allo spazio che contiene le app Fiori per la configurazione dell'SDK.
    2. Apri l'app Google SDK: configurazione principale.
    3. Fai clic su Crea.
    4. Nella finestra di dialogo Crea visualizzata, inserisci il nome di una chiave client.
    5. Fai clic su Continua.
    6. Fornisci i seguenti dettagli:
      • Account di servizio: inserisci l'account di servizio a cui è consentito l'accesso alle API Google Cloud.
      • ID progetto: inserisci l'ID progetto Google Cloud. Per informazioni sull'ID progetto, consulta Identificazione dei progetti.
      • Numero di progetto: inserisci il numero di progetto Google Cloud. Per informazioni sul numero del progetto, consulta Identificazione dei progetti.
      • Tipo di autenticazione: seleziona W (Federazione delle identità per carichi di lavoro).
    7. Per la mappa di comunicazione che viene visualizzata, nel campo Disposizione di comunicazione, seleziona la disposizione di comunicazione creata nel passaggio precedente.
    8. Fai clic su Crea. Viene visualizzata una finestra di dialogo che conferma che accetti di utilizzare l'SDK ABAP per Google Cloud in base ai termini standard di Google Cloud.
    9. Per convalidare la configurazione dell'autenticazione, fai clic su Verifica connessione. Un segno di spunta verde indica una voce che indica che la configurazione è andata a buon fine. In caso di errori, visita la pagina per la risoluzione dei problemi per trovare indicazioni su come risolvere gli errori comuni.

Autenticazione mediante chiave API archiviata in Secret Manager

Se utilizzi le chiavi API per l'autenticazione in Google Cloud, puoi archiviare in modo sicuro le chiavi API con il servizio Secret Manager di Google Cloud.

Per l'autenticazione mediante una chiave API archiviata in Secret Manager, abilita le seguenti API Google Cloud:

Per informazioni su come abilitare le API Google Cloud, consulta Abilitazione delle API.

Per ottenere le autorizzazioni necessarie per configurare Secret Manager e Federazione di Workload Identity, chiedi all'amministratore di concederti i ruoli IAM seguenti sul progetto:

Per l'autenticazione mediante una chiave API archiviata in Secret Manager, i passaggi di configurazione di alto livello sono i seguenti:

  1. In SAP BTP, crea un'istanza del servizio XSUAA (Authorization and Trust).
  2. In Google Cloud, crea un account di servizio.
  3. In Google Cloud, configura la federazione di Workload Identity.
  4. In Google Cloud, crea una chiave API.
  5. In Google Cloud, crea un secret e archivia la chiave API.
  6. In SAP BTP, configura l'SDK ABAP per Google Cloud per l'utilizzo della chiave API da Secret Manager.

Quando esegui l'autenticazione utilizzando una chiave API archiviata in Secret Manager, puoi riutilizzare l'istanza di servizio XSUAA, l'account di servizio, il pool di federazione di Workload Identity e il provider che hai creato per l'autenticazione mediante token.

crea una chiave API

Per l'autenticazione mediante chiave API, devi creare una chiave API. Una stringa di chiave API è una stringa criptata, ad esempio AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe. L'SDK ABAP per Google Cloud utilizza la stringa della chiave API nella richiesta HTTP per eseguire l'autenticazione in modo sicuro quando si chiama un'API Google Cloud.

Google Cloud offre diversi modi per creare chiavi API.

Per creare chiavi API utilizzando la console Google Cloud, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Credenziali:

    Vai a Credenziali

  2. Fai clic su Crea credenziali e seleziona Chiave API dal menu.

    • La finestra di dialogo Chiave API creata mostra la stringa della chiave API. Copia la stringa della chiave e proteggila. Questa chiave API è necessaria per configurare l'autenticazione in Google Cloud.

    • Per impostazione predefinita, le chiavi API sono senza restrizioni. Ti consigliamo di limitare le chiavi API selezionando le API su cui può essere utilizzata la chiave API. Per saperne di più sull'aggiunta di limitazioni delle API, consulta la sezione Aggiungere limitazioni delle API.

Creare un secret e archiviare la chiave API

  1. Nella console Google Cloud, vai alla pagina Secret Manager.

    Vai a Secret Manager

  2. Fai clic su Crea secret.

  3. Nella pagina Crea secret, in Nome, inserisci un nome per il secret. Il nome di un secret può contenere lettere maiuscole e minuscole, numeri, trattini e trattini bassi. La lunghezza massima consentita per un nome è di 255 caratteri.

  4. Nel campo Valore secret, inserisci la chiave API che hai creato nella sezione Crea una chiave API.

  5. Fai clic su Crea secret. I contenuti del secret sono archiviati in una versione di secret.

  6. Fai clic sul nome del secret che hai creato.

  7. Nella scheda Versioni che si apre, tieni presente quanto segue:

    • Nome secret
    • Versione

    Questi dettagli secret sono necessari per configurare l'autenticazione su Google Cloud.

Configura l'SDK ABAP per Google Cloud per utilizzare la chiave API di Secret Manager

Puoi creare artefatti di gestione della comunicazione utilizzando le app di gestione della comunicazione SAP.

Per creare artefatti di gestione della comunicazione per l'autenticazione mediante il servizio XSUAA e la federazione di Workload Identity, utilizza lo scenario di comunicazione /GOOG/COM_SDK_APIKSM fornito con l'SDK ABAP per Google Cloud.

Successivamente, utilizzerai l'app SDK Configuration Fiori per creare una mappa di comunicazione. Nella mappa di comunicazione, devi definire una chiave client univoca da utilizzare nel programma ABAP per l'autenticazione in Google Cloud.

  1. Accedi al Launchpad SAP Fiori del sistema BTP ABAP dove è installato l'SDK ABAP per Google Cloud.
  2. Vai a Tutti gli spazi > Amministrazione > Gestione delle comunicazioni.
  3. Crea un sistema di comunicazione:
    1. Apri l'app Sistemi di comunicazione.
    2. Fai clic su New (Nuovo).
    3. Nella finestra di dialogo Nuovo sistema di comunicazione visualizzata, inserisci un valore per i seguenti campi:
      • ID sistema: inserisci un ID sistema.
      • Nome del sistema: inserisci un nome per il sistema.
    4. Fai clic su Crea.
    5. Nel campo Nome host, inserisci l'URL senza https:// delle credenziali della chiave di servizio che hai annotato quando hai creato l'istanza di servizio XSUAA.
    6. Nel campo Porta, inserisci 443.
    7. Nella scheda Utenti per le comunicazioni in uscita, fai clic su Aggiungi.
    8. Fornisci i seguenti dettagli:
      • Metodo di autenticazione: seleziona Nome utente e password.
      • Nome utente/ID client: inserisci l'ID client delle credenziali della chiave di servizio che hai annotato quando hai creato l'istanza del servizio XSUAA.
      • Password: inserisci il client secret con le credenziali della chiave di servizio annotate al momento della creazione dell'istanza di servizio XSUAA.
    9. Fai clic su Salva.
  4. Crea un accordo di comunicazione:

    1. Apri l'app Communication Arrangement.
    2. Fai clic su New (Nuovo).
    3. Nella finestra di dialogo Nuova disposizione della comunicazione visualizzata, inserisci i seguenti dettagli:

      • Scenario: seleziona Autenticazione mediante chiave API con Secret Manager (/GOOG/COM_SDK_APIKSM).
      • Nome disposizione: inserisci un nome per l'accordo di comunicazione.
    4. Fai clic su Crea.

    5. Per l'accordo di comunicazione visualizzato, seleziona il sistema di comunicazione creato nel passaggio precedente nel campo Sistema di comunicazione.

    6. In Proprietà aggiuntive, fornisci un valore per le seguenti proprietà:

    7. In Servizi in uscita, nel campo Percorso, inserisci /oauth/token.

    8. Fai clic su Salva.

  5. Crea una chiave client e una mappa di comunicazione:

    1. Vai allo spazio che contiene le app Fiori per la configurazione dell'SDK.
    2. Apri l'app Google SDK: configurazione principale.
    3. Fai clic su Crea.
    4. Nella finestra di dialogo Crea visualizzata, inserisci il nome di una chiave client.
    5. Fai clic su Continua.
    6. Fornisci i seguenti dettagli:

      • Account di servizio: inserisci l'account di servizio a cui è stato concesso l'accesso alle API Google Cloud.
      • ID progetto: inserisci l'ID progetto Google Cloud. Per informazioni sull'ID progetto, consulta Identificazione dei progetti.
      • Numero di progetto: inserisci il numero di progetto Google Cloud. Per informazioni sul numero del progetto, consulta Identificazione dei progetti.
      • Tipo di autenticazione: seleziona V (chiave API che utilizza Secret Manager).
    7. Per la mappa di comunicazione che viene visualizzata, nel campo Disposizione di comunicazione, seleziona la disposizione di comunicazione creata nel passaggio precedente.

    8. Fai clic su Crea. Viene visualizzata una finestra di dialogo che conferma che accetti di utilizzare l'SDK ABAP per Google Cloud in base ai termini standard di Google Cloud.

    9. Per convalidare la configurazione dell'autenticazione, fai clic su Verifica connessione. Un segno di spunta verde indica una voce che indica che la configurazione è andata a buon fine. In caso di errori, visita la pagina per la risoluzione dei problemi per trovare indicazioni su come risolvere gli errori comuni.

Richiedere assistenza

Se hai bisogno di aiuto per risolvere problemi con l'SDK ABAP per Google Cloud: