Utilizzo dell'autenticazione Google

Questa pagina si applica a Apigee e Apigee ibridi.

Visualizza documentazione di Apigee Edge.

Questo argomento spiega come impostare ed eseguire il deployment di un proxy API configurato per l'utilizzo Autenticazione Google.

Introduzione

Apigee supporta l'utilizzo di Google Cloud o token OAuth. OpenID Collega i token per eseguire l'autenticazione con i servizi Google come Cloud Logging e Secret Manager e servizi personalizzati in esecuzione su determinati prodotti Google Cloud, come Cloud Functions e Cloud Run.

Per utilizzare questa funzionalità, devi configurare l'elemento XML <Authentication> in uno dei seguenti contesti:

  • Norme sui callout dei servizi
  • Norme sui callout esterni
  • Configurazioni endpoint di destinazione

Dopo aver completato alcuni passaggi di configurazione di base (come descritto in questo argomento), Apigee esegue la generazione dei token e rende sicuri chiamate a servizi Google mirati o servizi in hosting personalizzati per te, senza la necessità di impostare manualmente intestazioni di autenticazione o modificare una richiesta di servizio. Dal punto di vista di uno sviluppatore di API, il processo di le chiamate ai servizi Google da un proxy API configurato correttamente vengono gestite senza problemi.

Opzioni di configurazione del proxy API

Questa sezione spiega dove puoi utilizzare l'elemento XML <Authentication> per attiva l'autenticazione token OAuth di Google o OpenID Connect:

Opzione di configurazione Descrizione
Norme ServiceCallout Lo Le norme relative a ServiceCallout consentono di effettuare chiamate ad altri servizi interni o esterni da un proxy API. Ad esempio, puoi utilizzare ServiceCallout per chiamare servizi Google esterni oppure e servizi in hosting personalizzati. Per dettagli di utilizzo ed esempi, vedi Norme ServiceCallout.
Norme sui callout esterni Lo Il criterio callout esterno consente di inviare richieste gRPC al server gRPC a implementare un comportamento personalizzato non supportato dai criteri di Apigee. Per dettagli sull'utilizzo ed esempi, vedi Norme sui callout esterni.
TargetEndpoint Specifica un servizio Google o un servizio in hosting personalizzato come endpoint di destinazione del proxy API. Per dettagli di utilizzo ed esempi, vedi Riferimento alla configurazione del proxy API.

Contesti supportati per token di autenticazione Google

L'elemento <Authentication> ha due configurazioni di elementi secondari: <GoogleAccessToken> o <GoogleIDToken>. Le seguenti mostra i contesti in cui sono supportati questi elementi:

Utilizzato in GoogleAccessToken GoogleIDToken
Norme ServiceCallout Supportato Supportato
Norme sui callout esterni Non supportata Supportato
TargetEndpoint Supportato Supportato

Passi per il deployment

Questa sezione spiega come eseguire il deployment di un proxy API che utilizza l'autenticazione Google per chiamare servizi Google target o servizi in hosting personalizzati. Spieghiamo separatamente i passaggi di deployment per Apigee e Apigee hybrid.

Esegui il deployment su Apigee

I passaggi seguenti spiegano come eseguire il deployment di un proxy API su Apigee, dove il proxy è configurato per Chiamate autenticate a servizi Google o servizi in hosting personalizzati. I passaggi presuppongono che tu abbia già creato il proxy e che includa un elemento <Authentication> in uno dei contesti supportati elencati.

  1. Crea un account di servizio Google nello stesso account Google Cloud progetto in cui È stata creata l'organizzazione Apigee. Devi fornire il nome di questo account di servizio quando esegui il deployment di un proxy API che è configurata in modo da usare l'autenticazione Google e i token OAuth generati rappresenteranno l'account di servizio. Puoi creare l'account di servizio nella console Google Cloud o con il comando gcloud. Consulta Creazione e gestione degli account di servizio.
  2. Assegna all'utente che eseguirà il deployment (il deployment) il iam.serviceAccounts.actAs l'autorizzazione per l'account di servizio. Vedi anche Informazioni sulle autorizzazioni degli account di servizio.
    gcloud iam service-accounts add-iam-policy-binding \
    SA_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --member="MEMBER" \
      --role="roles/iam.serviceAccountUser"
    
  3. Dove:

    • PROJECT_ID: l'ID progetto. L'ID corrisponde al nome della tua organizzazione.
    • SA_NAME: il nome che hai fornito al momento della creazione dell'evento l'account di servizio.
    • MEMBER: il membro per cui aggiungere l'associazione. Deve essere nel formato user|group|serviceAccount:email o domain:domain.
  4. Concedi all'account di servizio le autorizzazioni necessarie per comunicare con i servizi Google di destinazione. Ad esempio: se vuoi chiamare il servizio Google Logging, questo account di servizio deve includere le autorizzazioni necessarie per comunicare con quel servizio. Vedi anche Informazioni sui ruoli.
  5. Prima di eseguire il deployment di un proxy API configurato per l'utilizzo dell'autenticazione Google, devi avere:
    • Il nome dell'account di servizio creato in precedenza. Ad esempio: SA_NAME@PROJECT_ID.iam.gserviceaccount.com
    • Come l'utente che esegue il deployment (deploymenter), devi già disporre o ricevere la Autorizzazione iam.serviceAccounts.actAs per l'account di servizio. Consulta Concessione, modifica e revoca dell'accesso alle risorse.
  6. Esegui il deployment del proxy API contenente la configurazione di autenticazione di Google che hai implementato. Puoi utilizzare la UI o l'API Apigee per eseguire il deployment del proxy. Per saperne di più, consulta Deployment di un proxy API.
    • Se utilizzi l'interfaccia utente, ti viene chiesto di fornire un nome per l'account di servizio. Utilizza il nome dell'account di servizio proxy che hai creato nel passaggio 1. Ad esempio: SA_NAME@PROJECT_ID.iam.gserviceaccount.com.

    • Se preferisci eseguire il deployment del proxy utilizzando l'API di deployment Apigee, ecco un esempio cURL che puoi utilizzare. Avvisi che il comando includa il nome di un account di servizio come parametro di query. Questo è il nome dell'account di servizio che hai creato nel passaggio 1:
      curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/ORG_NAME/environments/ENV_NAME/apis/apiproxy/revisions/2/deployments?serviceAccount=SA_NAME@PROJECT_ID.iam.gserviceaccount.com" \
      -H "Content-Type: application/json" -X POST

      Dove:

      • TOKEN: un token OAuth che devi ottenere in cambio del tuo account e credenziali. Per maggiori dettagli, consulta l'articolo Ottenere un token di accesso OAuth 2.0.
      • ORG_NAME: il nome della tua organizzazione Apigee.
      • ENV_NAME: il nome dell'ambiente in cui eseguire il deployment del proxy API.
      • SA_NAME: il nome che hai fornito al momento della creazione dell'account di servizio.
      • PROJECT_ID: l'ID del tuo progetto Google Cloud (uguale al nome dell'organizzazione).
  7. Al termine del deployment, testa il proxy API per assicurarti che il servizio Google restituisca un errore la risposta prevista.

Esegui il deployment su Apigee hybrid

I passaggi seguenti spiegano come eseguire il deployment in Apigee hybrid di un proxy API configurato per di chiamate autenticate ai servizi Google. I passaggi presuppongono che tu abbia già creato il proxy e che includa un elemento <Authentication> in uno dei contesti supportati elencati.

  1. Crea un account di servizio e una chiave per il componente di runtime ibrido Apigee utilizzando uno dei seguenti metodi:
  2. Apri il file overrides.yaml e specifica il percorso del file della chiave dell'account di servizio per ogni ambiente che richiede la funzionalità di autenticazione di Google:
    envs:
      - name: "ENVIRONMENT_NAME"
        serviceAccountPaths:
          runtime: "KEY_FILE_PATH"

    Ad esempio:

    envs:
      - name: "test"
        serviceAccountPaths:
          runtime: "./service_accounts/my_runtime_sa.json"
  3. Applica il file degli override al cluster utilizzando apigeectl apply.
  4. Crea un secondo account di servizio, chiamato proxy. l'account di servizio. Questo account di servizio deve trovarsi nello stesso account Google Cloud che hai utilizzato per creare i tuoi nella piattaforma Apigee. Devi fornire l'indirizzo email di questo account di servizio quando esegui il deployment di un'API configurato per l'utilizzo dell'autenticazione Google e dei token OAuth generati rappresenta l'account di servizio.
  5. Assegna all'utente che eseguirà il deployment (il deployment) il iam.serviceAccounts.actAs l'autorizzazione per l'account di servizio. Vedi anche Informazioni sulle autorizzazioni degli account di servizio.
    gcloud iam service-accounts add-iam-policy-binding \
    SA_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --member="MEMBER" \
      --role="roles/iam.serviceAccountUser"
    
  6. Dove:

    • PROJECT_ID: l'ID progetto. L'ID corrisponde al nome della tua organizzazione.
    • SA_NAME: il nome che hai fornito al momento della creazione dell'account di servizio.
    • MEMBER: il membro per cui aggiungere l'associazione. Deve essere nel formato utente|gruppo|servizioAccount:email o dominio:dominio.
  7. Concedi all'account di servizio proxy le autorizzazioni necessarie per comunicare con i servizi Google di destinazione. Ad esempio: se vuoi chiamare il servizio Google Logging, questo account di servizio deve includere le autorizzazioni necessarie per comunicare con quel servizio. Vedi anche Informazioni sui ruoli.
  8. Assicurati che il runtime possa simulare l'identità un account di servizio proxy. Per offrire questa possibilità, concedi all'account di servizio di runtime la Ruolo iam.serviceAccountTokenCreator sull'account di servizio proxy. Vedi anche Informazioni sull'account di servizio autorizzazioni. Ad esempio:
    gcloud iam service-accounts add-iam-policy-binding \
    PROXY_SA_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --member=serviceAccount:RUNTIME_SA_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --role=roles/iam.serviceAccountTokenCreator
    

    Dove:

    • PROJECT_ID: l'ID progetto. L'ID è uguale a quello della tua organizzazione . Tieni presente che non hai dovuto utilizzare il progetto associato alla tua organizzazione per l'account di servizio per il runtime. Assicurati solo di utilizzare gli ID progetto corretti in questo comando.
    • PROXY_SA_NAME: l'ID dell'account di servizio proxy.
    • RUNTIME_SA_NAME: l'ID dell'account di servizio di runtime.
  9. Prima di eseguire il deployment di un proxy API configurato per l'utilizzo dell'autenticazione Google, devi avere:
    • Il nome dell'account di servizio proxy che hai creato in precedenza. Ad esempio: PROXY_SA_NAME@PROJECT_ID.iam.gserviceaccount.com
    • Come l'utente che esegue il deployment, devi già avere o ricevere la Autorizzazione iam.serviceAccounts.actAs nel progetto Google Cloud in cui viene eseguito il provisioning dell'organizzazione Apigee. Consulta Concessione, modifica e revoca dell'accesso alle risorse.
  10. Esegui il deployment del proxy API contenente la configurazione di autenticazione di Google che hai implementato. Puoi utilizzare la UI o l'API Apigee per eseguire il deployment del proxy. Per saperne di più, consulta Deployment di un proxy API.
    • Se utilizzi l'interfaccia utente, ti viene chiesto di fornire un nome per l'account di servizio. Utilizza il nome dell'account di servizio proxy che hai creato in precedenza. Ad esempio: PROXY_SA_NAME@PROJECT_ID.iam.gserviceaccount.com.

    • Se preferisci eseguire il deployment del proxy utilizzando l'API di deployment Apigee, ecco un esempio cURL che puoi utilizzare. Avvisi che il comando includa il nome di un account di servizio come parametro di query. Questo è il nome dell'account di servizio proxy:
      curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/ORG_NAME/environments/ENV_NAME/apis/apiproxy/revisions/2/deployments?serviceAccount=PROXY_SA_NAME@PROJECT_ID.iam.gserviceaccount.com" \
      -H "Content-Type: application/json" -X POST

      Dove:

      • TOKEN: un token OAuth che devi ottenere in cambio del tuo account e credenziali. Per maggiori dettagli, consulta l'articolo Ottenere un token di accesso OAuth 2.0.
      • ORG_NAME: il nome della tua organizzazione Apigee.
      • ENV_NAME: il nome dell'ambiente in cui eseguire il deployment del proxy API.
      • PROXY_SA_NAME: il nome dell'account di servizio proxy.
      • PROJECT_ID: l'ID del tuo progetto Google Cloud (uguale al nome dell'organizzazione).
  11. Al termine del deployment, testa il proxy API per assicurarti che il servizio Google restituisca un errore la risposta prevista.

Informazioni sulle autorizzazioni dell'account di servizio

Per configurare un proxy API per l'utilizzo dell'autenticazione Google, devi creare un account di servizio come descritto nella tabella seguente. Vedi anche Creazione e gestione degli account di servizio.

Account di servizio Obbligatorio per Descrizione
Proxy Apigee e Apigee hybrid

Dispone delle autorizzazioni necessarie per consentire a un proxy API di effettuare chiamate autenticate a Google i servizi di machine learning.

  • Deve essere creata nello stesso progetto Google Cloud di Apigee dell'organizzazione.
  • L'utente che esegue il deployment (deploymenter), deve disporre o disporre della Autorizzazione iam.serviceAccounts.actAs per l'account di servizio proxy.
  • Devi includere le autorizzazioni necessarie per comunicare con servizi Google di destinazione specifici. Ad esempio: se vuoi chiamare il servizio Google Logging, questo account di servizio deve includere le autorizzazioni necessarie per comunicare con quel servizio. Vedi anche Informazioni sui ruoli.
  • Il nome dell'account di servizio deve essere fornito quando esegui il deployment del proxy che utilizza l'autenticazione Google.
Runtime Solo Apigee hybrid

Consente al runtime Apigee di generare token per l'autenticazione sui servizi Google richiesti da un proxy API. Questo account di servizio "si spaccia" dal proxy specifico un account di servizio di servizio per effettuare chiamate autenticate per suo conto.

  • Per poter rubare l'identità dell'account di servizio proxy e creare di token, all'account di servizio di runtime deve essere concesso il ruolo roles/iam.serviceAccountTokenCreator sull'account di servizio proxy. Vedi Gestire l'accesso agli account di servizio.