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

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

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

Per l'autenticazione e l'autorizzazione ad accedere alle API Google Cloud, l'SDK utilizza principalmente token. Inoltre, l'SDK supporta anche le chiavi API per l'autenticazione nelle API Google Cloud che utilizzano le 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 a cui hai bisogno di accedere, puoi scegliere un metodo di autenticazione appropriato. Nell'elenco che segue vengono riepilogati i diversi metodi di autenticazione supportati dall'SDK:

Autenticazione mediante token tramite federazione delle identità per i carichi di lavoro

La Federazione delle identità per i carichi di lavoro segue la specifica dello scambio di token OAuth 2.0. Fornisci una credenziale dal tuo provider di identità (IdP) al servizio token di sicurezza, che verifica l'identità sulla credenziale, quindi restituisce un token federato in cambio. 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 tutte le API Google Cloud a cui ha accesso l'account di servizio.

Per l'autenticazione mediante token tramite la federazione delle identità per i carichi di lavoro, 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 delle identità per i carichi di lavoro, segui questi passaggi di configurazione ad alto livello:

  1. In SAP BTP, crea un'istanza di servizio Authorization and Trust (XSUAA).
  2. In Google Cloud, crea un account di servizio.
  3. In Google Cloud, configura la federazione delle identità per i carichi di lavoro.
  4. In SAP BTP, configura l'SDK ABAP per Google Cloud per utilizzare la federazione delle identità per i carichi di lavoro.

Creare un'istanza di servizio Authorization and Trust (XSUAA)

Per fornire i servizi necessari all'applicazione back-end, crea un'istanza di servizio Authorization and Trust (XSUAA) eseguendo questi passaggi:

  1. Accedi a SAP BTP Cockpit. Per ulteriori informazioni, consulta la pagina SAP Access the Cockpit (Accesso al cockpit).
  2. Seleziona il tuo subaccount.
  3. Crea un'istanza di servizio XSUAA:

    1. Vai a Servizi > Servizi 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:

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

  4. Crea una chiave di servizio:

    1. Vai a Istanze e sottoscrizioni > Istanze.
    2. Seleziona l'istanza di servizio XSUAA creata 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. Dalle credenziali della chiave di servizio, tieni presente quanto segue:

      • url
      • clientid
      • clientsecret

    Quando configuri l'autenticazione in Google Cloud, devi disporre di queste credenziali.

Crea un service account

Nella console Google Cloud, crea un account di servizio IAM. Questo account di servizio deve essere un'entità nel progetto Google Cloud contenente le API Google Cloud che prevedi di utilizzare utilizzando 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 ad accedere 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 delle 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 contenente le API Google Cloud che prevedi di utilizzare utilizzando 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 dal progetto che contiene le API Google Cloud che prevedi di utilizzare con 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, segui questi passaggi:

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

    Vai alle autorizzazioni IAM

  2. Verifica 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 di IAM, fai clic su Concedi l'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 ulteriori dettagli sui ruoli predefiniti specifici per le API, consulta Riferimento ai ruoli IAM di base e predefiniti.

    3. Aggiungi altri ruoli in base alle necessità per l'utilizzo dell'API. 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 nella pagina IAM.

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

Configura la federazione delle identità per i carichi di lavoro

Per ottenere le autorizzazioni necessarie per configurare la federazione delle identità per i carichi di lavoro, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:

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

Per configurare la federazione delle identità per i carichi di lavoro, 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: nome del pool. Il nome viene utilizzato anche come ID del pool. Non puoi 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, seleziona OpenID Connect (OIDC).
    2. Inserisci i seguenti dettagli del provider:

      • Nome provider: inserisci un nome per il provider.
      • Issuer(URL) (Emittente(URL)): inserisci l'URL delle credenziali della chiave di servizio che hai annotato durante la creazione dell'istanza di servizio XSUAA. Aggiungi /oauth/token all'URL.
      • Pubblico: seleziona Segmento di pubblico consentito e inserisci l'ID client delle credenziali della chiave di servizio che hai annotato durante la creazione dell'istanza di servizio XSUAA.
  5. Fai clic su Continua.

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

  7. Fai clic su Salva.

  8. Tieni presente quanto segue:

    • ID pool
    • ID provider

    Questi ID ti serviranno quando configuri l'autenticazione nell'app Fiori di configurazione dell'SDK.

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

Per impersonare account di servizio da carichi di lavoro federati, concedi l'utente Workload Identity (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à per carichi di lavoro.

    Vai ai pool di identità per i carichi di lavoro

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

  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 durante la creazione dell'istanza di servizio XSUAA.

  7. Fai clic su Salva.

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

Configura l'SDK ABAP per Google Cloud per utilizzare la federazione delle identità per i carichi di lavoro

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

Per creare artefatti di gestione delle comunicazioni per l'autenticazione mediante il servizio XSUAA e la federazione delle identità per i carichi di lavoro, utilizza lo scenario di comunicazione /GOOG/COM_SDK_WIF fornito con l'SDK ABAP per Google Cloud.

In seguito, utilizzerai l'app Fiori di configurazione dell'SDK per creare una mappa delle comunicazioni. Nella mappa delle comunicazioni, definisci una chiave client univoca che utilizzi nel tuo programma ABAP per l'autenticazione in Google Cloud.

  1. Accedi al Launchpad SAP Fiori del sistema BTP ABAP in cui è 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 Communication Systems.
    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 di sistema.
      • Nome sistema: inserisci un nome di sistema.
    4. Fai clic su Crea.
    5. Nel campo Nome host, inserisci l'URL senza https:// dalle credenziali della chiave di servizio che hai annotato durante la creazione dell'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 indicato nelle credenziali della chiave di servizio che hai annotato durante la creazione dell'istanza di servizio XSUAA.
      • Password: inserisci il client secret dalle credenziali della chiave di servizio che hai annotato durante la creazione dell'istanza di servizio XSUAA.
    9. Fai clic su Salva.
  4. Stabilisci un accordo di comunicazione:

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

      • Scenario: seleziona Autenticazione tramite federazione delle identità per i carichi di lavoro (/GOOG/COM_SDK_WIF).
      • Nome dell'organizzazione: inserisci un nome per l'accordo di comunicazione.
    4. Fai clic su Crea.

    5. Per la modalità di comunicazione visualizzata, seleziona il sistema di comunicazione che hai creato nel passaggio precedente nel campo Sistema di comunicazione.

    6. Fornisci i seguenti dettagli dalla sezione Configura la federazione delle identità per i carichi di lavoro:

      • ID pool federazione delle identità per i carichi di lavoro: inserisci l'ID del pool di federazione delle identità per i carichi di lavoro.
      • ID provider federazione delle identità per i carichi di lavoro: inserisci l'ID provider della 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 delle comunicazioni:

    1. Vai allo spazio che contiene le app Fiori per la configurazione dell'SDK.
    2. Apri l'app SDK Google: 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 è 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 progetto: inserisci il numero del progetto Google Cloud. Per informazioni sul numero del progetto, consulta Identificazione dei progetti.
      • Tipo di autenticazione: seleziona W (Federazione delle identità per i carichi di lavoro).
    7. Per la mappa delle comunicazioni che viene visualizzata, nel campo Disposizione di comunicazione, seleziona l'accordo di comunicazione che hai creato 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 secondo i termini standard di Google Cloud.
    9. Per convalidare la configurazione dell'autenticazione, fai clic su Verifica connessione. Il segno di spunta verde per una voce indica che la configurazione è riuscita. In caso di errori, visita la pagina di risoluzione dei problemi per avere istruzioni su come risolvere gli errori comuni.

Autenticazione con chiave API archiviata in Secret Manager

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

Per l'autenticazione mediante 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 la federazione delle identità per i carichi di lavoro, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:

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

  1. In SAP BTP, crea un'istanza di servizio Authorization and Trust (XSUAA).
  2. In Google Cloud, crea un account di servizio.
  3. In Google Cloud, configura la federazione delle identità per i carichi di lavoro.
  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 in modo da utilizzare la chiave API di Secret Manager.

Quando esegui l'autenticazione mediante una chiave API archiviata in Secret Manager, puoi riutilizzare l'istanza di servizio XSUAA, l'account di servizio, il pool federazione delle identità per i carichi di lavoro e il provider che hai creato per l'autenticazione mediante token.

crea una chiave API

Per l'autenticazione mediante una chiave API, devi creare una chiave API. Una stringa della chiave API è una stringa criptata, ad esempio AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe. L'SDK ABAP per Google Cloud utilizza la stringa chiave API nella richiesta HTTP per l'autenticazione sicura quando chiami 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 tienila al sicuro. Questa chiave API è necessaria per configurare l'autenticazione in Google Cloud.

    • Per impostazione predefinita, le chiavi API non sono limitate. Ti consigliamo di limitare le chiavi API selezionando le API a cui è possibile utilizzare questa chiave API. Per saperne di più sull'aggiunta di limitazioni delle API, consulta la pagina Aggiungere limitazioni delle API.

crea un secret e archivia 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. Un nome 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 del 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 del secret sono necessari durante la configurazione dell'autenticazione in 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 SAP di gestione delle comunicazioni.

Per creare artefatti di gestione delle comunicazioni per l'autenticazione mediante il servizio XSUAA e la federazione delle identità per i carichi di lavoro, utilizza lo scenario di comunicazione /GOOG/COM_SDK_APIKSM fornito con l'SDK ABAP per Google Cloud.

In seguito, utilizzerai l'app Fiori di configurazione dell'SDK per creare una mappa delle comunicazioni. Nella mappa delle comunicazioni, definisci una chiave client univoca che utilizzi nel tuo programma ABAP per l'autenticazione in Google Cloud.

  1. Accedi al Launchpad SAP Fiori del sistema BTP ABAP in cui è 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 Communication Systems.
    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 di sistema.
      • Nome sistema: inserisci un nome di sistema.
    4. Fai clic su Crea.
    5. Nel campo Nome host, inserisci l'URL senza https:// dalle credenziali della chiave di servizio che hai annotato durante la creazione dell'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 indicato nelle credenziali della chiave di servizio che hai annotato durante la creazione dell'istanza di servizio XSUAA.
      • Password: inserisci il client secret delle credenziali della chiave di servizio che hai annotato durante la creazione dell'istanza di servizio XSUAA.
    9. Fai clic su Salva.
  4. Stabilisci un accordo di comunicazione:

    1. Apri l'app Comunicazione.
    2. Fai clic su New (Nuovo).
    3. Nella finestra di dialogo Nuovo accordo di comunicazione visualizzata, inserisci i seguenti dettagli:

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

    5. Per la modalità di comunicazione visualizzata, seleziona il sistema di comunicazione che hai creato nel passaggio precedente nel campo Sistema di comunicazione.

    6. In Proprietà aggiuntive, specifica 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 delle comunicazioni:

    1. Vai allo spazio che contiene le app Fiori per la configurazione dell'SDK.
    2. Apri l'app SDK Google: 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 viene 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 progetto: inserisci il numero del 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 delle comunicazioni che viene visualizzata, seleziona l'accordo di comunicazione che hai creato nel passaggio precedente nel campo Disposizione di comunicazione.

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

    9. Per convalidare la configurazione dell'autenticazione, fai clic su Verifica connessione. Il segno di spunta verde per una voce indica che la configurazione è riuscita. In caso di errori, visita la pagina di risoluzione dei problemi per avere istruzioni su come risolvere gli errori comuni.

Richiedi assistenza

Se hai bisogno di aiuto per risolvere i problemi con l'SDK ABAP per Google Cloud, procedi nel seguente modo: