Questo documento descrive come eseguire l'autenticazione su Google Cloud utilizzando i token tramite la federazione delle identità per i carichi di lavoro. Con la Federazione delle identità per i carichi di lavoro, puoi concedere ai carichi di lavoro SAP on-premise o multi-cloud l'accesso a Google Cloud senza utilizzare una chiave dell'account di servizio. Puoi utilizzare la modalità Federazione delle identità per i carichi di lavoro con Amazon Web Services (AWS) o con qualsiasi provider di identità (IdP) che supporti OpenID Connect (OIDC), come come Microsoft Azure o SAML 2.0.
La federazione delle identità per i carichi di lavoro segue Scambio di token OAuth 2.0 la specifica del container. Fornisci una credenziale dall'IdP 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 un 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, i passaggi per la configurazione generale sono i seguenti:
- Prepara l'IdP esterno.
- In Google Cloud, configura la federazione delle identità per i carichi di lavoro.
- In Google Cloud, crea un account di servizio.
- In Google Cloud, consenti al carico di lavoro esterno di simulare l'identità dell'account di servizio.
- Nell'SDK ABAP per Google Cloud, implementa il codice ABAP per recuperare i token di sicurezza dal tuo IdP.
- Nell'SDK ABAP per Google Cloud, configura la chiave client.
Non tutti i prodotti Google Cloud supportano la federazione delle identità per i carichi di lavoro. Prima di configurare l'autenticazione mediante la federazione delle identità per i carichi di lavoro, rivedi l'elenco prodotti supportati e limitazioni. Per ulteriori informazioni, vedi Federazione delle identità per la forza lavoro: prodotti supportati e limitazioni.
Prepara l'IdP esterno
Devi preparare l'IdP in modo che il carico di lavoro SAP possa ottenere le credenziali che possono essere scambiati con un token di sicurezza Google OAuth 2.0.
Per preparare l'IdP esterno, esegui i passaggi a seconda dell'IdP:
- Se utilizzi AWS o Azure come IdP, segui le istruzioni per preparare l'IdP esterno.
- Se utilizzi altri IdP, segui le istruzioni per preparare l'IdP esterno.
Configura la federazione delle identità per i carichi di lavoro
In Google Cloud, configura il pool di identità per i carichi di lavoro e i provider.
Puoi configurare un pool di identità, ovvero un'entità che ti consente di gestire e identità esterne. Puoi anche configurare un provider di pool di identità per i carichi di lavoro, ovvero un'entità che descrive una relazione tra Google Cloud e il tuo IdP.
Per configurare la federazione delle identità per i carichi di lavoro, esegui i passaggi sull'IdP esterno:
- Se utilizzi AWS o Azure come IdP, segui le istruzioni per creare il provider e il pool di identità per i carichi di lavoro.
- Se utilizzi altri IdP, segui le istruzioni per creare il provider e il pool di identità per i carichi di lavoro.
Tieni presente quanto segue:
- Numero del progetto: il numero del progetto Google Cloud in cui hai creato il pool di identità per i carichi di lavoro.
- ID pool: un ID univoco che identifica il pool di identità per i carichi di lavoro.
- ID provider: un ID che identifica il provider del pool di identità per i carichi di lavoro.
Ti servono per la configurazione della chiave client dell'SDK ABAP.
Crea un account di servizio
Nella console Google Cloud, crea una sessione IAM dedicata l'account di servizio per accedere alle API Google Cloud. 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.
Nella console Google Cloud, abilita l'API IAM Service Account Credentials, l'API Security Token Service, e qualsiasi altra API supportata a cui prevedi di accedere utilizzando l'SDK.
Per informazioni su come abilitare le API Google Cloud, consulta Abilitazione delle API.
Crea un account di servizio che rappresenta il carico di lavoro.
Concedi all'account di servizio i ruoli IAM richiesti per accedere alle funzionalità dell'API. 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 per informazioni sui ruoli predefiniti specifici per le API, consulta Trovare i ruoli IAM per le API Google Cloud.
Consenti al carico di lavoro esterno di simulare l'identità dell'account di servizio
Per consentire al carico di lavoro esterno di impersonare l'account di servizio, esegui la a seconda dell'IdP esterno:
- Se utilizzi AWS o Azure come IdP, segui le istruzioni per consentire al carico di lavoro esterno di impersonare l'account di servizio.
- Se utilizzi altri IdP, segui le istruzioni per consentire al carico di lavoro esterno di impersonare l'account di servizio.
Implementa il codice ABAP per recuperare i token di sicurezza dal tuo IdP
L'SDK ABAP per Google Cloud fornisce una classe astratta /GOOG/CL_AUTH_WIF_BASE
,
che ha la logica per recuperare i token di sicurezza OAuth 2.0
i token di accesso per il servizio token di sicurezza e per OAuth 2.0
API IAM Service Account Credentials. In qualità di sviluppatore,
crea una classe figlio nello spazio dei nomi che eredita
dalla classe astratta /GOOG/CL_AUTH_WIF_BASE
.
Per richiamare Cloud Functions dall'SDK ABAP per Google Cloud utilizzando
Federazione delle identità per i carichi di lavoro,
l'SDK fornisce un'altra classe astratta
/GOOG/CL_AUTH_WIF_ID_TOKEN
. Se configuri l'autenticazione utilizzando
Federazione delle identità per i carichi di lavoro, devi crearne un'altra
classe figlio nello spazio dei nomi che eredita dalla classe astratta
/GOOG/CL_AUTH_WIF_ID_TOKEN
. Puoi specificare questo corso secondario in
il campo Authorization Class durante la configurazione della chiave client per richiamare Cloud Functions.
Assicurati di implementare
GET_EXT_IDP_TOKEN
nella classe figlio e scrivi la logica per ottenere
il token di sicurezza
del tuo IdP. Completa i seguenti campi:
CV_TOKEN
: il token recuperato dal tuo IdP nel formatostring
.CV_TOKEN_TYPE
: il tipo di token di sicurezza recuperato dal tuo IdP. I tipi di token supportati sono:urn:ietf:params:oauth:token-type:jwt
urn:ietf:params:oauth:token-type:id_token
urn:ietf:params:aws:token-type:aws4_request
urn:ietf:params:oauth:token-type:access_token
urn:ietf:params:oauth:token-type:saml2
I valori inseriti in CV_TOKEN
e CV_TOKEN_TYPE
vengono quindi utilizzati dai metodi di
la classe astratta /GOOG/CL_AUTH_WIF_BASE
per scambiare e recuperare
il token OAuth 2.0 finale, utilizzato nelle chiamate API.
L'esempio seguente mostra le implementazioni di esempio del metodo
GET_EXT_IDP_TOKEN
per
con altri cloud provider come AWS e Azure.
AWS
Azure
Configura chiave client
-
Nella GUI di SAP, esegui il codice della transazione
/GOOG/SDK_IMG
.In alternativa, esegui il codice transazione
SPRO
, quindi fai clic su IMG riferimento SAP. - Fai clic su SDK ABAP per Google Cloud > Impostazioni di base > Configura chiave client.
- Fai clic su Nuove voci.
Inserisci i valori nei seguenti campi:
Campo Descrizione Nome chiave Google Cloud Specifica un nome per la configurazione della chiave client. Nome dell'account di servizio Google Cloud Specifica il nome dell'account di servizio nel formato dell'indirizzo email. creato per accedere alle API Google Cloud nel passaggio Crea un account di servizio. Ad esempio: sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com
.Ambito di Google Cloud Lascia vuoto questo campo. Identificatore di progetto Google Cloud Specifica l'ID del progetto Google Cloud in cui hai creato il pool di identità per i carichi di lavoro. Nome comando Lascia vuoto questo campo. Classe di autorizzazione Specifica la classe figlio, che contiene l'implementazione della classe /GOOG/CL_AUTH_WIF_BASE
. Per ulteriori informazioni, vedi Implementa il codice ABAP per recuperare i token di sicurezza dal tuo IdP.Memorizzazione nella cache dei token Lascia vuoto questo campo. Secondi di aggiornamento del token Lascia vuoto questo campo. Parametro di autorizzazione 1 Specifica l'ID pool di identità per i carichi di lavoro. Parametro di autorizzazione 2 Specifica l'ID provider di identità per i carichi di lavoro. Salva la voce.
Assistenza
Se hai bisogno di aiuto per risolvere i problemi con l'SDK ABAP per Google Cloud, procedi le seguenti:
Consulta la guida alla risoluzione dei problemi relativi all'SDK ABAP per Google Cloud.
Poni le tue domande e discuti dell'SDK ABAP per Google Cloud con la community attivo Forum di Cloud.
Raccogli tutte le informazioni di diagnostica disponibili. e contatta l'assistenza clienti Google Cloud. Per informazioni su come contattare Per l'assistenza clienti, vedi Ottenere assistenza per SAP su Google Cloud.