Eseguire l'autenticazione utilizzando i token web JSON

Questo documento mostra come configurare l'autenticazione per accedere alle API quando il sistema SAP viene eseguito su un host on-premise, su un altro provider cloud, in un altro ambiente al di fuori di Google Cloudo gestito da SAP tramite il programma SAP RISE. Google CloudPer l'autenticazione a Google Cloud, utilizzi Google Cloud token JWT (JSON Web Token) firmati per ottenere token di accesso da Google Cloud.

I passaggi di configurazione a livello generale sono i seguenti:

Prerequisiti

Affinché il server delle applicazioni SAP si connetta alle Google Cloud API tramite HTTPS, assicurati che:

  • Verifica che la porta HTTPS sia attiva nella transazione SMICM.

  • Sull'host SAP, configura regole firewall o proxy per consentire il traffico in uscita dalla porta HTTPS alle API Google Cloud richieste. Nello specifico, il tuo sistema SAP deve essere in grado di accedere ai seguenti endpoint API:

    • https://iamcredentials.googleapis.com
    • Endpoint API per le API che vuoi utilizzare con l'SDK.

Crea un account di servizio per il recupero dei token basato su JWT

Per l'autenticazione basata su JWT Google Cloud, ABAP SDK for Google Cloud richiede un account di servizio IAM.

Crea un account di servizio

Crea un account di servizio e concedi il ruolo IAM Service Account Token Creator al account di servizio.

Per creare un account di servizio:

  1. Nella Google Cloud console, crea un account di servizio IAM per il recupero dei token basato su JWT.

    Vai ad Account di servizio

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

  2. Concedi il ruolo Service Account Token Creator al account di servizio. Per istruzioni, vedi Concedere un singolo ruolo.

Crea una chiave dell'account di servizio

Devi creare una chiave dell'account di servizio P12 per l'account di servizio utilizzato per il recupero dei token basato su JWT.

Per creare una chiave dell'account di servizio, segui questi passaggi:

  1. Nella Google Cloud console, vai alla pagina IAM & Admin Service accounts.

    Vai ad Account di servizio

  2. Selezionare il tuo progetto Google Cloud .

  3. Fai clic sull'indirizzo email del account di servizio che hai creato per il recupero dei token basato su JWT nella sezione precedente, Crea un service account.

  4. Sotto il nome del account di servizio, fai clic sulla scheda Chiavi.

  5. Fai clic sul menu a discesa Aggiungi chiave, quindi seleziona Crea nuova chiave per creare una account di servizio account.

  6. Accetta P12 come tipo di chiave e fai clic su Crea.

    Sul computer viene scaricata una chiave privata.

  7. Prendi nota della password per il file della chiave privata, notasecret.

    Fornisci la chiave privata e la password all'amministratore SAP per importare la chiave privata in STRUST, come descritto in Importare la chiave del account di servizio in STRUST.

Specifica il account di servizio per la firma JWT

Per specificare il account di servizio per la firma JWT, procedi nel seguente modo:

  1. In SAP GUI, esegui il codice transazione /GOOG/SDK_IMG.

    In alternativa, esegui il codice di transazione SPRO e poi fai clic su SAP Reference IMG.

  2. Fai clic su ABAP SDK for Google Cloud > Impostazioni di base > Configura parametri.

  3. Fai clic su Nuove voci.

  4. Nel campo Nome parametro, inserisci JWT_SERVC_ACCT. La descrizione del parametro viene compilata automaticamente.

  5. Nel campo Valore parametro, inserisci il nome dell'account di servizio.

  6. Salva la nuova voce.

Configura le impostazioni di sicurezza per Google Cloud sul sistema host SAP

Per attivare la firma JWT per il account di servizio creato per il recupero dei token basato su JWT, devi configurare le impostazioni di sicurezza perGoogle Cloud sul sistema host SAP.

Crea una nuova applicazione Secure Store and Forward (SSF)

Ogni voce SSFAPPLIC consente di salvare una singola chiave del account di servizio. Per salvare le chiavi del account di servizio per più progetti, devi creare più voci SSFAPPLIC seguendo gli stessi passaggi.

Per creare una nuova voce nella tabella SSFAPPLIC, segui questi passaggi:

  1. Nella GUI SAP, inserisci il codice di transazione SE16.
  2. Nel campo Nome tabella, inserisci SSFAPPLIC e crea una nuova voce.
  3. Nel campo APPLIC, inserisci un nome per l'applicazione SSF, ad esempio ZG_JWT.
  4. Ad eccezione dei campi B_INCCERTS, B_DETACHED, B_ASKPWD e B_DISTRIB, seleziona tutti gli altri campi.
  5. Nel campo DESCRIPT, inserisci JWT Signature for GCP.
  6. Salva la nuova voce.

    Questa voce diventa un nuovo nodo nella transazione STRUST, in cui importi la chiave delaccount di serviziot.

Attiva il nodo STRUST

Utilizza la transazione SSFA per attivare il nodo STRUST per JWT Signature for GCP.

Per abilitare il nodo STRUST:

  1. Nella GUI SAP, inserisci il codice di transazione SSFA.
  2. Fai clic su Nuove voci.
  3. Nell'elenco a discesa SSF Application, seleziona JWT Signature for GCP. Questa è la nuova voce che hai creato nella tabella SSFAPPLIC.

    I parametri SSF specifici dell'applicazione vengono compilati automaticamente.

  4. Salva la nuova voce.

    Un nuovo nodo SSF JWT Signature for GCP è abilitato nella transazione STRUST.

Importa la chiave del account di servizio in STRUST

Per importare la chiave dell'account di servizio in STRUST, segui questi passaggi:

  1. Nella GUI SAP, inserisci il codice di transazione STRUST.

    Verifica che il nuovo nodo nella transazione STRUST sia SSF JWT Signature for GCP.

  2. Importa il file della chiave privata:

    1. Seleziona PSE > Importa dalla barra dei menu.
    2. A seconda del sistema SAP, seleziona la chiave privata appropriata:
      • SAP S/4HANA
        1. Seleziona la chiave privata P12.
        2. Inserisci la password del file notasecret e fai clic su Ok.
      • SAP ECC
        1. Seleziona la chiave privata PSE. Devi convertire la chiave privata P12 scaricata in precedenza in una chiave privata PSE. Per ulteriori informazioni sulla conversione di una chiave P12 in una chiave PSE, vedi Convertire la chiave P12 in una chiave PSE.
        2. Inserisci il PIN del file che hai creato durante la conversione della chiave privata dalla chiave P12 alla chiave PSE, quindi fai clic su OK.
  3. Seleziona PSE > Salva con nome.

  4. Seleziona Applicazione SSF e, nel campo di input corrispondente, seleziona il nuovo nodo Applicazione SSF che hai creato in Crea una nuova applicazione Secure Store and Forward (SSF).

  5. Salva la nuova voce.

    La chiave di servizio è collegata al nodo dell'applicazione SSF SSF JWT Signature for GCP.

Converti la chiave privata P12 in chiave PSE

Se il tuo sistema SAP è SAP NetWeaver 7.0x (SAP ECC), devi convertire la chiave P12 in una chiave PSE.

Per convertire la chiave P12 in una chiave PSE, segui questi passaggi:

  1. Vai al percorso:

    /usr/sap/SID/SYS/exe/run/

    Sostituisci SID con l'ID sistema SAP.

  2. Esegui questo comando dopo aver sostituito i segnaposto:

    sapgenpse import_p12 -p PSE_PATH_AND_FILE_NAME P12_PATH_AND_FILE_NAME.p12

    Sostituisci quanto segue:

    • PSE_PATH_AND_FILE_NAME: specifica il percorso e il nome file per il file PSE
    • P12_PATH_AND_FILE_NAME: specifica il percorso e il nome del file chiave P12
  3. Inserisci la password del file della chiave privata P12, notasecret.

  4. Crea un nuovo PIN per la chiave privata PSE e inseriscilo di nuovo.

  5. Prendi nota del PIN, in quanto dovrai fornirlo quando importi il file della chiave privata PSE in STRUST.

Per informazioni da SAP su come convertire una chiave P12 in una chiave PSE, consulta:

Abilita le API Google Cloud

Nella console Google Cloud , abilita l'API IAM Service Account Credentials per il progetto Google Cloud che richiede l'autenticazione. Oltre all'API IAM Service Account Credentials, devi abilitare tutte le altre API supportate a cui prevedi di accedere utilizzando l'SDK.

Vai alla libreria API

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

Crea un account di servizio per l'autorizzazione all'accesso alle API Google Cloud

Per l'autenticazione e l'autorizzazione per accedere alle API Google Cloud , l'SDK ABAP per Google Cloud richiede un account di servizio IAM.

Crea un account di servizio

Nella console Google Cloud , crea un account di servizio IAM. Questo account di servizio deve essere un principal nel progetto Google Cloud che contiene le APIGoogle Cloud che prevedi di utilizzare con l'SDK. Se crei il account di servizio nello stesso progetto che contiene le API Google Cloud , il account di servizio viene aggiunto automaticamente come principal al progetto.

Se crei il account di servizio in un progetto diverso da quello in cui sono abilitate le API Google Cloud , devi aggiungere il account di servizio a quel progetto in un passaggio aggiuntivo.

  1. Nella console Google Cloud , crea un account di servizio IAM 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 service account.

  2. Nella console Google Cloud , concedi al account di servizio i ruoli IAM necessari per accedere alla funzionalità API. Per comprendere il requisito del ruolo per le Google Cloud API, consulta la documentazione delle singole API e segui il principio del privilegio minimo. Per ulteriori informazioni sui ruoli predefiniti specifici dell'API, consulta Trovare ruoli IAM per le Google Cloud API.

  3. Se hai creato l'account di servizio in un progetto diverso da quello che contiene le API che prevedi di utilizzare con l'SDK, annota il nome dell'account di servizio. Google Cloud Specifichi il nome quando aggiungi l'account di servizio al progetto. Per saperne di più, vedi Aggiungere l'account di servizio al progetto Google Cloud .

Aggiungi il account di servizio al progetto Google Cloud

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

Se hai creato il account di servizio nello stesso progetto che contiene le APIGoogle Cloud , puoi ignorare 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 IAM:

    Vai alle autorizzazioni IAM

  2. Verifica che il nome del progetto che contiene le APIGoogle 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 IAM, fai clic su Concedi l'accesso. Si apre la finestra di dialogo Concedi l'accesso a "PROJECT_NAME".

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

    1. Nel campo Nuove entità, specifica il nome del 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 dell'API, consulta Riferimento ai ruoli IAM di base e predefiniti.

    3. Aggiungi altri ruoli in base alle esigenze per l'utilizzo dell'API. Implementa le best practice consigliate da Google applicando il principio del privilegio minimo.

    4. Fai clic su Salva. Il 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.

Crea configurazioni SAP

Per l'autenticazione basata su JWT, crea le configurazioni SAP richieste.

Specifica le impostazioni di accesso nella tabella delle chiavi client

Per specificare le impostazioni di accesso, segui questi passaggi:

  1. In SAP GUI, esegui il codice transazione /GOOG/SDK_IMG.

    In alternativa, esegui il codice di transazione SPRO e poi fai clic su SAP Reference IMG.

  2. Fai clic su ABAP SDK for Google Cloud > Impostazioni di base > Configura chiave client.

  3. Fai clic su Nuove voci.

  4. Inserisci i valori per i seguenti campi:

    Campo Descrizione
    Nome della chiave Google Cloud Specifica un nome per la configurazione della chiave client.
    Nome account di servizio Google Cloud

    Specifica il nome del account di servizio, nel formato dell'indirizzo email, che è stato creato per ABAP SDK for Google Cloud nel passaggio Crea un service account. Ad esempio: sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com.

    Ambito di Google Cloud L'ambito predefinito e obbligatorio è https://www.googleapis.com/auth/cloud-platform. Se devi specificare ambiti aggiuntivi, fornisci un elenco separato da virgole.
    ID progetto Specifica l'ID del progetto Google Cloud che contiene le API di destinazione.
    Nome del comando Lascia vuoto questo campo.
    Classe di autorizzazione Specifica la classe di autorizzazione, /GOOG/CL_AUTH_JWT.
    Campo Autorizzazione Lascia vuoto questo campo.
    Secondi di aggiornamento del token Lascia vuoto questo campo.
    Parametro di autorizzazione 1 Specifica il nome dell'applicazione SSF che hai creato nella sezione Crea una nuova applicazione Secure Store and Forward (SSF).
  5. Salva la nuova voce.

Crea nuove destinazioni RFC

Crea destinazioni RFC per l'API IAM e altre API che prevedi di utilizzare con l'SDK ABAP per Google Cloud, ad esempio l'API Pub/Sub v1.

Nome destinazione RFC Note
ZGOOG_IAMCREDENTIALS Questa destinazione RFC ha come target l'API IAM .
ZGOOG_OAUTH2_TOKEN Questa destinazione RFC ha come target l'endpoint Google Cloud per l'autenticazione basata su token.
ZGOOG_PUBSUB_V1 Questa destinazione RFC ha come target l'API Pub/Sub.

Per informazioni sulla creazione di destinazioni RFC, consulta Destinazioni RFC.

Specificare le destinazioni RFC nella tabella di mappatura dei servizi

Nella tabella di mappatura dei servizi, specifica le destinazioni RFC per l'API IAM e altre API che prevedi di utilizzare con l'SDK ABAP per Google Cloud.

Per specificare le destinazioni RFC, segui questi passaggi:

  1. In SAP GUI, esegui il codice transazione /GOOG/SDK_IMG.

    In alternativa, esegui il codice di transazione SPRO e poi fai clic su SAP Reference IMG.

  2. Fai clic su ABAP SDK for Google Cloud > Impostazioni di base > Configura mappatura dei servizi.

  3. Fai clic su Nuove voci.

  4. Specifica le destinazioni RFC per l'API IAM e altre API. Ad esempio:

    Nome Nome servizio Destinazione RFC
    Nome della chiave Google Cloud iamcredentials:v1 ZGOOG_IAMCREDENTIALS
    Nome della chiave Google Cloud googleapis.com/oauth2 ZGOOG_OAUTH2_TOKEN
    Nome della chiave Google Cloud pubsub.googleapis.com ZGOOG_PUBSUB_V1
  5. Salva la nuova voce.

Convalida la configurazione dell'autenticazione

Per convalidare la configurazione dell'autenticazione per la sua preparazione:

  1. In SAP GUI, esegui il codice transazione /GOOG/SDK_IMG.

    In alternativa, esegui il codice di transazione SPRO e poi fai clic su SAP Reference IMG.

  2. Fai clic su ABAP SDK for Google Cloud > Utilità > Convalida configurazione autenticazione.

  3. Inserisci il nome della chiave client.

  4. Fai clic su Esegui.

    Un segno di spunta verde nella colonna Risultato indica che tutti i passaggi di configurazione sono stati completati correttamente.

Assistenza

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