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

Questo documento descrive come eseguire l'autenticazione in Google Cloud dal Versione 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 la connessione 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. Il seguente elenco riassume le diverse 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 le Scambio di token OAuth 2.0 e la specifica del prodotto. Fornisci una credenziale dal tuo provider di identità (IdP) a Security Token Service, che verifica le l'identità sulla credenziale, quindi restituisce un token federato in cambio. Puoi utilizzare questo token per impersonare un account di servizio e ottenere token di accesso OAuth 2.0 di breve durata. Il token di accesso di breve durata ti consente di chiamare 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 il valore le seguenti API Google Cloud:

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

Per l'autenticazione mediante token tramite la federazione delle identità per i carichi di lavoro, i passaggi per la configurazione generale 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 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) procedendo nel seguente modo:

  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 nei 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 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 pulsante Azioni () e seleziona Visualizza.
    6. Dalle credenziali della chiave di servizio, tieni presente quanto segue:

      • url
      • clientid
      • clientsecret

    Devi disporre di queste credenziali della chiave di servizio durante la configurazione dell'autenticazione a Google Cloud.

Crea un account di servizio

Nella console Google Cloud, crea un modello IAM l'account di servizio. 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 nella stesso progetto che contiene le API Google Cloud, quindi l'account di servizio viene aggiunta automaticamente come entità al progetto.

    • Se crei l'account di servizio in un progetto diverso da quello in cui Le API Google Cloud sono abilitate, quindi 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 le autorizzazioni IAM richieste ruoli per accedere all'API funzionalità. Per comprendere i requisiti dei ruoli per le API Google Cloud, visualizza la documentazione sulle singole API e segui il principio del privilegio minimo. Per maggiori informazioni 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 del progetto che contiene le API Google Cloud che prevedi di utilizzare utilizzando SDK, quindi prendi nota del nome dell'account di servizio. Puoi specificare il nome quando aggiungi l'account di servizio a quel 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 consumare usando l'SDK, devi aggiungere l'account di servizio al progetto Google Cloud contiene le API Google Cloud.

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

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 sezione IAM Autorizzazioni.

    Vai alle autorizzazioni IAM

  2. Conferma che il nome del progetto che contiene la destinazione Le API Google Cloud sono visualizzate 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" 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 sottoscrizioni, per pubblicare e utilizzare messaggi, puoi specificare il ruolo Editor Pub/Sub (roles/pubsub.editor).

      Per maggiori dettagli sui ruoli predefiniti specifici delle API, consulta Riferimento per i 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 dei progetti delle entità della 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 sul 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 quanto segue 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 che hai notato durante la creazione dell'istanza del servizio XSUAA. Aggiungi /oauth/token all'URL.
      • Pubblico: seleziona Segmento di pubblico consentito e inserisci l'ID client. dalle 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 gli account di servizio dei carichi di lavoro federati, concedi la classe Utente identità carico di lavoro (roles/iam.workloadIdentityUser) sull'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 consulta la sezione Configurare la federazione delle identità per i carichi di lavoro.

  3. Per concedere l'accesso al pool Workload Identity, fai clic Concedi l'accesso.

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

  5. Nel campo Nome attributo, seleziona Oggetto.

  6. Nel campo Valore attributo, inserisci l'ID client indicato nelle credenziali della chiave di servizio. che hai notato 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

Crei artefatti di gestione delle comunicazioni utilizzando le app SAP communication management.

Per creare artefatti di gestione delle comunicazioni per l'autenticazione utilizzando Servizio XSUAA e la federazione delle identità per i carichi di lavoro, utilizzerai 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 unica da utilizzare nel tuo Programma ABAP per l'autenticazione in Google Cloud.

  1. Accedi al Launchpad SAP Fiori del sistema BTP ABAP dove sia 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 nei 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:// dalla chiave di servizio. le credenziali 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 della chiave di servizio. le credenziali che hai annotato durante la creazione dell'istanza di servizio XSUAA.
      • Password: inserisci il client secret della chiave di servizio. le credenziali 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 sistema di comunicazione che viene 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 le modalità di comunicazione visualizzate, Sistema di comunicazione, seleziona il sistema di comunicazione che creato nel passaggio precedente.

    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 il carico di lavoro l'ID pool di federazione delle identità.
      • ID provider federazione delle identità per i carichi di lavoro: inserisci il carico di lavoro dell'ID provider della federazione delle identità.
    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. le 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 di 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, nella sezione Modalità di comunicazione seleziona l'accordo di comunicazione creato nel passaggio precedente.
    8. Fai clic su Crea. Viene visualizzata una finestra di dialogo che conferma che accetti di utilizzare 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. Il segno di spunta verde per una voce indica che la configurazione è riuscita. In caso di errori, visita la pagina per la risoluzione dei problemi. per indicazioni sulla risoluzione di errori comuni.

Autenticazione con chiave API archiviata in Secret Manager

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

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

Per informazioni su come attivare API Google Cloud, vedi 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 sul progetto:

Per l'autenticazione mediante una chiave API archiviata in Secret Manager, i passaggi per la configurazione generale 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 utilizzando una chiave API archiviata in Secret Manager, può riutilizzare l'istanza di servizio XSUAA, l'account di servizio e la federazione delle identità per i carichi di lavoro il pool 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 della 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 e 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 con cui può essere utilizzata 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

Crei artefatti di gestione delle comunicazioni utilizzando le app SAP communication management.

Creazione di artefatti di gestione delle comunicazioni per l'autenticazione mediante il servizio XSUAA e la federazione delle identità per i carichi di lavoro, utilizzerai 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 unica da utilizzare nel tuo Programma ABAP per l'autenticazione in Google Cloud.

  1. Accedi al Launchpad SAP Fiori del sistema BTP ABAP dove sia 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 nei 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:// dalla chiave di servizio. le credenziali 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 della chiave di servizio. le credenziali che hai annotato durante la creazione dell'istanza di servizio XSUAA.
      • Password: inserisci il client secret delle credenziali della chiave di servizio. che hai notato 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 le modalità di comunicazione visualizzate, Sistema di comunicazione, seleziona il sistema di comunicazione che creato nel passaggio precedente.

    6. In Proprietà aggiuntive, specifica un valore per il parametro 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 concesso e 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, 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 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. Il segno di spunta verde per una voce indica che la configurazione è riuscita. In caso di errori, visita la pagina per la risoluzione dei problemi. per indicazioni sulla risoluzione di errori comuni.

Assistenza

Se hai bisogno di aiuto per risolvere i problemi con l'SDK ABAP per Google Cloud, procedi le seguenti: