Configurare l'autenticazione per la versione SAP BTP di ABAP SDK for Google Cloud

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

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

Per l'autenticazione e l'autorizzazione per accedere alle API Google Cloud, l'SDK utilizza principalmente i token. Inoltre, l'SDK supporta anche le chiavi API per l'autenticazione alle API Google Cloud che le utilizzano. Solo alcune API Google Cloud utilizzano le chiavi API per l'autenticazione. Ad esempio, Google Maps Platform. Esamina la documentazione di autenticazione del servizio o dell'API che vuoi utilizzare per determinare se supporta le chiavi API.

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

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

Federazione delle identità per i carichi di lavoro segue la specifica relativa allo scambio di token OAuth 2.0. Fornisci una credenziale del tuo provider di identità (IdP) al Security Token Service, che verifica l'identità sulla credenziale e restituisce un token di accesso in cambio. Puoi utilizzare questo token per rubare l'identità di un account di servizio e ottenere un token di accesso di breve durata. Il token di accesso a breve termine ti consente di chiamare qualsiasi API Google Cloud a cui ha accesso l'account di servizio.

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

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

Per l'autenticazione tramite token tramite la federazione delle identità per i carichi di lavoro, i passaggi di configurazione di alto livello sono i seguenti:

  1. In SAP BTP, crea un'istanza di servizio di autorizzazione e attendibilità (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 ABAP SDK for Google Cloud per utilizzare la federazione delle identità per i carichi di lavoro.

Crea un'istanza di servizio di autorizzazione e attendibilità (XSUAA)

Per fornire i servizi necessari all'applicazione di backend, crea un'istanza di servizio di autorizzazione e attendibilità (XSUAA) esegui i seguenti passaggi:

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

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

      • Piano: seleziona Richiesta.
      • 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 abbonamento > 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, prendi nota di quanto segue:

      • url
      • clientid
      • clientsecret

    Queste credenziali della chiave di servizio sono necessarie per configurare l'autenticazione su Google Cloud.

Crea un account di servizio

Nella console Google Cloud, crea un account di servizio IAM. Questo account di servizio deve essere un principale 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 principale al progetto.

    • Se crei l'account di servizio in un progetto diverso da quello in cui sono attivate le API Google Cloud, devi aggiungerlo al progetto in un passaggio aggiuntivo. Per ulteriori informazioni, vedi Aggiungere l'account di servizio al progetto Google Cloud.

  2. Crea un account di servizio per l'autenticazione e l'autorizzazione per 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 necessari per accedere alla funzionalità dell'API. Per comprendere il requisito del ruolo 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 dell'API, consulta la sezione Documentazione di riferimento sui ruoli di base e predefiniti IAM.

  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. Specifica 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 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, svolgi i seguenti 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 accesso.

  4. Nella finestra di dialogo Concedi l'accesso a "PROJECT_NAME" che viene visualizzata, procedi nel seguente modo:

    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 iscrizioni e per accedere alla pubblicazione e al consumo di messaggi, puoi specificare il ruolo Editor Pub/Sub (roles/pubsub.editor).

      Per maggiori dettagli sui ruoli predefiniti specifici dell'API, consulta Documentazione di riferimento dei ruoli di base e predefiniti IAM.

    3. Aggiungi altri ruoli in base alle esigenze di 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 dei principali del progetto nella pagina IAM.

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

Configurare la federazione delle identità per i carichi di lavoro

Per ottenere le autorizzazioni necessarie per configurare la federazione delle identità per i workload, 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 workload

  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: il 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 fornitore:

      • Nome fornitore: inserisci un nome per il fornitore.
      • Issuer(URL) (Emittente (URL)): inserisci l'URL dalle 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 dalle credenziali della chiave di servizio che hai annotato quando hai creato l'istanza di servizio XSUAA.
  5. Fai clic su Continua.

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

  7. Fai clic su Salva.

  8. Prendi nota di quanto segue:

    • ID pool
    • ID provider

    Questi ID sono necessari per configurare l'autenticazione nell'app Fiori di configurazione dell'SDK.

Consenti alle identità esterne di rubare l'identità dell'account di servizio

Per simulare l'identità degli account di servizio dei workload federati, concedi il ruolo 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 rubare l'identità di un account di servizio, svolgi i seguenti passaggi:

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

    Vai a Pool Workload Identity

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

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

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

  5. Nel campo Nome attributo, seleziona Oggetto.

  6. Nel campo Valore attributo, inserisci l'ID client dalle credenziali della chiave di servizio che hai annotato quando hai creato l'istanza di servizio XSUAA.

  7. Fai clic su Salva.

  8. Nella finestra di dialogo Configura l'applicazione visualizzata, fai clic su Ignora.

Configurare ABAP SDK for Google Cloud per utilizzare la federazione delle identità per i carichi di lavoro

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

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

In un secondo momento, utilizza l'app Fiori per la configurazione dell'SDK per creare una mappa di comunicazione. Nella mappa di comunicazione, definisci una chiave client univoca da utilizzare nel programma ABAP per l'autenticazione a Google Cloud.

  1. Accedi al Launchpad SAP Fiori del sistema ABAP BTP 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 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 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 quando hai creato l'istanza del 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 dalle credenziali della chiave di servizio che hai annotato quando hai creato l'istanza di servizio XSUAA.
      • Password: inserisci il client secret dalle credenziali della chiave di servizio che hai annotato quando hai creato l'istanza di servizio XSUAA.
    9. Fai clic su Salva.
  4. Crea un'organizzazione delle comunicazioni:

    1. Apri l'app Accordo di 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 la federazione delle identità del carico di lavoro (/GOOG/COM_SDK_WIF).
      • Nome organizzazione: inserisci un nome per l'organizzazione delle comunicazioni.
    4. Fai clic su Crea.

    5. Per l'organizzazione della comunicazione visualizzata, seleziona il sistema di comunicazione creato nel passaggio precedente nel campo Sistema di comunicazione.

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

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

    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 un nome per la 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 del 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 di comunicazione visualizzata, nel campo Disposizione della comunicazione, seleziona la disposizione della comunicazione creata nel passaggio precedente.
    8. Fai clic su Crea. Viene visualizzata una finestra di dialogo che ti chiede di confermare l'utilizzo dell'ABAP SDK per Google Cloud ai sensi dei termini standard di Google Cloud.
    9. Per convalidare la configurazione dell'autenticazione, fai clic su Verifica connessione. Un segno di spunta verde per una voce indica che la configurazione è andata a buon fine. In caso di errori, consulta la pagina sulla risoluzione dei problemi per indicazioni su come risolvere gli errori comuni.

Autenticazione tramite chiave API archiviata in Secret Manager

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

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

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

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

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

  1. In SAP BTP, crea un'istanza di servizio di autorizzazione e attendibilità (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 segreto e memorizza la chiave API.
  6. In SAP BTP, configura ABAP SDK for Google Cloud in modo che utilizzi la chiave API di 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 e il provider di Workload Identity Federation che hai creato per l'autenticazione tramite token.

Crea una chiave API

Per l'autenticazione tramite 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 della chiave API nella richiesta HTTP per autenticarsi in modo sicuro quando viene chiamata un'API Google Cloud.

Google Cloud offre diversi modi per creare chiavi API.

Per creare chiavi API utilizzando la console Google Cloud, svolgi i seguenti 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 a Google Cloud.

    • Per impostazione predefinita, le chiavi API non sono soggette a restrizioni. Ti consigliamo di limitare le chiavi API selezionando le API a cui può essere utilizzata questa chiave API. Per ulteriori informazioni sull'aggiunta di limitazioni delle API, vedi Aggiungere limitazioni delle API.

Crea un segreto e memorizza 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 segreto può contenere lettere maiuscole e minuscole, numeri, trattini e trattini bassi. La lunghezza massima consentita per un nome è 255 caratteri.

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

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

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

  7. Nella scheda Versioni che si apre, prendi nota di quanto segue:

    • Nome secret
    • Versione

    Questi dettagli della chiave segreta sono necessari per configurare l'autenticazione a Google Cloud.

Configurare ABAP SDK per Google Cloud in modo che utilizzi la chiave API di Secret Manager

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

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

In un secondo momento, utilizza l'app Fiori per la configurazione dell'SDK per creare una mappa di comunicazione. Nella mappa di comunicazione, definisci una chiave client univoca da utilizzare nel programma ABAP per l'autenticazione a Google Cloud.

  1. Accedi al Launchpad SAP Fiori del sistema ABAP BTP 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 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 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 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 dalle credenziali della chiave di servizio che hai annotato quando hai creato l'istanza di servizio XSUAA.
      • Password: inserisci il client secret dalle credenziali della chiave di servizio che hai annotato quando hai creato l'istanza di servizio XSUAA.
    9. Fai clic su Salva.
  4. Crea un'organizzazione delle comunicazioni:

    1. Apri l'app Accordo di 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 organizzazione: inserisci un nome per l'organizzazione delle comunicazioni.
    4. Fai clic su Crea.

    5. Per l'organizzazione della comunicazione visualizzata, seleziona il sistema di comunicazione 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, inserisci /oauth/token nel campo Percorso.

    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 un nome per la chiave client.
    5. Fai clic su Continua.
    6. Fornisci i seguenti dettagli:

      • Service account: 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 la sezione Identificazione dei progetti.
      • Numero del 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 di comunicazione visualizzata, nel campo Disposizione della comunicazione, seleziona la disposizione della comunicazione creata nel passaggio precedente.

    8. Fai clic su Crea. Viene visualizzata una finestra di dialogo che ti chiede di confermare l'utilizzo dell'ABAP SDK per Google Cloud ai sensi dei termini standard di Google Cloud.

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

Assistenza

Se hai bisogno di aiuto per risolvere i problemi relativi all'SDK ABAP per Google Cloud, segui questi passaggi: