Configura un provider di identità di terze parti per Chronicle

La federazione delle identità per la forza lavoro di Google ti consente di concedere ai carichi di lavoro on-premise o multi-cloud l'accesso alle risorse Google Cloud, senza dover utilizzare una chiave dell'account di servizio. Puoi utilizzare la federazione delle identità per la forza lavoro con qualsiasi provider di identità (IdP) che supporti OpenID Connect (OIDC), tra cui Microsoft Azure, Okta o SAML 2.0.

Chronicle richiede l'utilizzo della federazione delle identità per la forza lavoro di Google come intermediario SSO predefinito per:

  • Clienti con requisiti di conformità FedRAMP High (o superiori).
  • Clienti che accedono a qualsiasi controllo di livello aziendale in Chronicle attivato da Google Cloud, incluso controllo dell'accesso basato sui ruoli (RBAC) per dati e funzionalità utilizzando Identity and Access Management (IAM).
  • Clienti che utilizzano la gestione delle credenziali self-service per l'accesso programmatico all'API Chronicle.

Chronicle supporta il servizio SSO SAML avviato dal fornitore di servizi (avviato da SP) per gli utenti. Con questa funzionalità, gli utenti possono andare direttamente a Chronicle. Chronicle invia una richiesta tramite la federazione delle identità per la forza lavoro di Google Cloud Identity and Access Management (IAM) al provider di identità di terze parti (IdP).

Dopo che l'IdP autentica l'identità dell'utente, l'utente torna su Chronicle con un'asserzione di autenticazione. La federazione delle identità per la forza lavoro di Google Cloud agisce da intermediario nel flusso di autenticazione.

Comunicazione tra Chronicle, federazione delle identità
della forza lavoro di Google Cloud IAM e IdP

Comunicazione tra Chronicle, federazione delle identità della forza lavoro IAM e IdP

A livello generale, la comunicazione è la seguente:

  1. L'utente va a Chronicle.
  2. Chronicle cerca le informazioni dell'IdP nel pool di identità della forza lavoro di Google Cloud.
  3. Viene inviata una richiesta all'IdP.
  4. L'asserzione SAML viene inviata al pool di identità della forza lavoro Google Cloud.
  5. Se l'autenticazione ha esito positivo, Chronicle riceve solo gli attributi SAML definiti quando hai configurato il provider di forza lavoro nel pool di identità della forza lavoro.

L'accesso avviato dall'IdP (l'avvio di un accesso dalla dashboard dell'IdP) non è supportato. Contatta il tuo rappresentante di Chronicle per richiedere questa funzionalità, se la tua organizzazione ne ha bisogno.

Questo documento descrive i passaggi ad alto livello per configurare l'autenticazione tramite un provider di identità di terze parti (IdP) utilizzando la federazione delle identità per la forza lavoro di Google Cloud. Dopo aver eseguito i passaggi descritti in questo documento, potrai accedere a Chronicle utilizzando il tuo IdP di terze parti e gestire l'accesso a Chronicle tramite SAML SSO tramite la federazione delle identità della forza lavoro.

Prima di iniziare

I passaggi seguenti descrivono come eseguire la configurazione utilizzando i comandi gcloud. Se è possibile eseguire un passaggio nella console Google Cloud, viene fornito un link alla documentazione IAM correlata.

Pianificare l'implementazione

La seguente sezione descrive le decisioni che devi prendere e le informazioni che definisci prima di eseguire i passaggi descritti in questo documento.

Definisci il pool di identità e il provider di forza lavoro della forza lavoro

Nell'ambito di questo processo, configurerai la federazione delle identità per la forza lavoro Google Cloud come intermediario nel flusso di autenticazione. A questo scopo, crea le seguenti risorse Google Cloud:

  • Pool forza lavoro: un pool di identità della forza lavoro consente di concedere alla forza lavoro (ad es. i dipendenti) l'accesso a Chronicle.
  • Provider di forza lavoro: un provider di forza lavoro è una risorsa secondaria del pool di identità della forza lavoro. Archivia i dettagli di un singolo IdP.

La relazione tra il pool di identità della forza lavoro, i provider di forza lavoro e un'istanza Chronicle, identificata da un sottodominio di un singolo cliente, è la seguente:

  • Un pool di identità della forza lavoro è definito a livello di organizzazione.
  • A ogni istanza Chronicle è configurato e associato un pool di identità della forza lavoro.
  • Un pool di identità della forza lavoro può avere più provider di forza lavoro.
  • Ogni fornitore di forza lavoro integra un IdP di terze parti con il pool di identità della forza lavoro.
  • Il pool di identità della forza lavoro che crei utilizzando questi passaggi deve essere dedicato a Chronicle. Anche se puoi gestire più pool di identità della forza lavoro per altri scopi, il pool di identità della forza lavoro creato per Chronicle non può essere condiviso.
  • Ti consigliamo di creare il pool di identità della forza lavoro nella stessa organizzazione Google Cloud che contiene il progetto associato a Chronicle.

Consente di risparmiare tempo se definisci le informazioni predefinite sul pool di identità della forza lavoro e sul provider di forza lavoro. Puoi utilizzare queste informazioni quando configuri sia l'applicazione SAML dell'IdP sia la federazione delle identità per la forza lavoro.

Scegli i valori per i seguenti identificatori:

  • ID pool di forza lavoro (WORKFORCE_POOL_ID): seleziona un valore che indichi l'ambito o lo scopo del pool di identità della forza lavoro. Il valore deve soddisfare i seguenti requisiti:
    • Deve essere univoco a livello globale.
    • È necessario utilizzare solo caratteri minuscoli [a-z], cifre [0-9] e trattini [-].
    • Deve iniziare con un carattere minuscolo [a-z].
    • Deve terminare con un carattere minuscolo [a-z] o una cifra [0-9].
    • Può avere una lunghezza compresa tra 4 e 61 caratteri.
  • Nome visualizzato del pool di forza lavoro (WORKFORCE_POOL_DISPLAY_NAME): definisci un nome facile da usare per il pool di identità della forza lavoro.
  • Descrizione del pool di forza lavoro (WORKFORCE_POOL_DESCRIPTION): definisci una descrizione dettagliata del pool di identità della forza lavoro.
  • ID provider di forza lavoro (WORKFORCE_PROVIDER_ID): scegli un valore che indichi l'IdP che rappresenta. Il valore deve soddisfare i seguenti requisiti:
    • È necessario utilizzare solo caratteri minuscoli [a-z], cifre [0-9] e trattino [-].
    • Può avere una lunghezza compresa tra 4 e 32 caratteri.
  • Nome visualizzato del provider di forza lavoro (WORKFORCE_PROVIDER_DISPLAY_NAME): definisci un nome facile da usare per il fornitore di forza lavoro. Deve contenere meno di 32 caratteri.
  • Descrizione del provider di forza lavoro (WORKFORCE_PROVIDER_DESCRIPTION): definisci una descrizione dettagliata del fornitore di forza lavoro.

Definisci gli attributi utente e i gruppi nell'IdP

Prima di creare l'applicazione SAML nell'IdP, identifica gli attributi utente e i gruppi necessari per configurare l'accesso alle funzionalità in Chronicle. Per ulteriori informazioni, consulta Configurare il controllo dell'accesso alle funzionalità mediante IAM e Autorizzazioni Chronicle in IAM.

Hai bisogno di queste informazioni durante le seguenti fasi di questa procedura:

  • Quando configuri l'applicazione SAML, crei i gruppi definiti durante la pianificazione. Puoi configurare l'applicazione SAML dell'IdP in modo da trasmettere le iscrizioni ai gruppi nell'assertion.

  • Quando crei il provider di forza lavoro, mappa gli attributi e i gruppi delle asserzioni agli attributi di Google Cloud. Queste informazioni vengono inviate nella rivendicazione dell'affermazione come parte dell'identità di un utente.

  • Quando configuri controllo dell'accesso basato sui ruoli in Chronicle, utilizzi gli attributi utente e le informazioni sui gruppi per configurare l'accesso alle funzionalità di Chronicle.

    Chronicle fornisce più ruoli predefiniti, ciascuno dei quali consente l'accesso a funzionalità specifiche. Puoi mappare i gruppi definiti nell'applicazione SAML dell'IdP a questi ruoli predefiniti.

Configura l'IdP

Questa sezione descrive solo la configurazione specifica necessaria in un'applicazione SAML dell'IdP per l'integrazione con la federazione delle identità per la forza lavoro di Google Cloud e Chronicle.

  1. Crea una nuova applicazione SAML nel tuo IdP.

  2. Configura l'applicazione con il seguente URL ACS (Assertion Consumer Service), definito anche URL Single Sign-On, a seconda del fornitore di servizi.

    https://auth.backstory.chronicle.security/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    

    Sostituisci quanto segue:

    • WORKFORCE_POOL_ID: l'identificatore definito per il pool di identità della forza lavoro.
    • WORKFORCE_PROVIDER_ID: l'identificatore che hai definito per il provider di forza lavoro.

      Per una descrizione di questi valori, consulta Pianificare l'implementazione.

  3. Configura l'applicazione con il seguente ID entità (detto anche ID entità SP).

    https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    

    Sostituisci quanto segue:

    • WORKFORCE_POOL_ID: l'identificatore definito per il pool di identità della forza lavoro.
    • WORKFORCE_PROVIDER_ID: l'identificatore definito per il fornitore di forza lavoro.
  4. Configura l'identificatore del nome nel tuo IdP per assicurarti che il campo NameID venga restituito nella risposta SAML.

    Puoi impostarlo su un valore che supporta i criteri dell'organizzazione, ad esempio indirizzo email o nome utente. Consulta la documentazione dell'IdP per informazioni su come configurare questo valore. Per saperne di più su questo requisito, vedi Risolvere i problemi relativi alla federazione delle identità della forza lavoro.

  5. Se vuoi, puoi creare gli attributi di gruppo nell'applicazione SAML. Le hai definite quando hai pianificato l'implementazione dell'IdP.

  6. Scarica il file XML dei metadati dell'applicazione. Nella sezione successiva, caricherai questo file dal tuo sistema locale alla home directory di Google Cloud utilizzando Cloud Shell.

Configura la federazione delle identità per la forza lavoro

Questa sezione descrive solo i passaggi specifici necessari per configurare la federazione delle identità per la forza lavoro con l'applicazione SAML IdP creata nella sezione precedente. Per saperne di più sulla gestione dei pool di identità della forza lavoro, consulta Gestire i provider di pool di identità della forza lavoro

  1. Apri la console Google Cloud come utente con le autorizzazioni richieste per il progetto associato a Chronicle. Hai identificato o creato questo utente in precedenza. Consulta la sezione Prima di iniziare.

  2. Avvia una sessione di Cloud Shell.

  3. Imposta la quota fatturata e addebitata per il progetto Google Cloud per le operazioni eseguite utilizzando gcloud CLI. Usa il seguente comando gcloud come esempio:

    gcloud config set billing/quota_project PROJECT_ID
    

    Sostituisci PROJECT_ID con l'ID del progetto associato a Chronicle che hai creato in Configurare un progetto Google Cloud per Chronicle. Vedi Creazione e gestione dei progetti per una descrizione dei campi che identificano un progetto.

    Per informazioni sulle quote, consulta i seguenti documenti:

    Se si verifica un errore, consulta Errori di quota

Crea e configura un pool di identità della forza lavoro

Puoi configurare un pool di identità della forza lavoro per l'integrazione con un provider di identità (IdP) esterno o con Google Workspace o Cloud Identity.

  1. Crea un pool di identità della forza lavoro.

    • Crea un pool di identità della forza lavoro per un IdP di terze parti:

      Usa il seguente comando gcloud come esempio:

      gcloud iam workforce-pools create WORKFORCE_POOL_ID\
            --location="global" \
            --organization="ORGANIZATION_ID" \
            --description="WORKFORCE_POOL_DESCRIPTION" \
            --display-name="WORKFORCE_POOL_DISPLAY_NAME"
      

      Sostituisci quanto segue:

      • WORKFORCE_POOL_ID: l'identificatore definito per il pool di identità della forza lavoro.
      • ORGANIZATION_ID: l'ID numerico dell'organizzazione.
      • WORKFORCE_POOL_DESCRIPTION: specifica una descrizione del pool di identità della forza lavoro.
      • WORKFORCE_POOL_DISPLAY_NAME: specifica un nome facile da usare per il pool di identità della forza lavoro.
    • Crea un pool di identità della forza lavoro per Google Workspace o Cloud Identity:

      Se utilizzi Google Workspace o Cloud Identity come IdP, aggiungi il flag --allowed-services domain=backstory.chronicle.security al comando:

      gcloud iam workforce-pools create WORKFORCE_POOL_ID\
            --location="global" \
            --organization="ORGANIZATION_ID" \
            --description="WORKFORCE_POOL_DESCRIPTION" \
            --display-name="WORKFORCE_POOL_DISPLAY_NAME" \
            --allowed-services domain=backstory.chronicle.security
      

    Per eseguire questa configurazione utilizzando la console Google Cloud, vedi Creare un pool.

  2. Se nella riga di comando ti viene chiesto di abilitare l'API Chronicle, digita Yes.

Crea un provider di identità per la forza lavoro

  1. Carica il file dei metadati dell'applicazione SAML nella directory home di Cloud Shell facendo clic su Altro >. I file possono essere caricati solo nella directory home. Per ulteriori opzioni per il trasferimento di file tra Cloud Shell e la workstation locale, vedi Caricare e scaricare file e cartelle da Cloud Shell.

  2. Prendi nota del percorso della directory in cui hai caricato il file XML dei metadati dell'applicazione SAML in Cloud Shell. Questo percorso ti servirà nel passaggio successivo.

  3. Crea un provider di pool di identità della forza lavoro e specifica i dettagli dell'IdP.

    Usa il seguente comando gcloud come esempio:

    gcloud iam workforce-pools providers create-saml WORKFORCE_PROVIDER_ID \
          --workforce-pool="WORKFORCE_POOL_ID" \
          --location="global" \
          --display-name="WORKFORCE_PROVIDER_DISPLAY_NAME" \
          --description="WORKFORCE_PROVIDER_DESCRIPTION" \
          --idp-metadata-path=PATH_TO_METADATA_XML \
          --attribute-mapping="ATTRIBUTE_MAPPINGS"
    

    Per saperne di più su questi valori, consulta Pianificare l'implementazione.

    Sostituisci quanto segue:

    • WORKFORCE_PROVIDER_ID: il valore definito per l'ID fornitore di forza lavoro.
    • WORKFORCE_POOL_ID: il valore definito per l'ID pool di identità della forza lavoro.
    • WORKFORCE_PROVIDER_DISPLAY_NAME: un nome facile da usare per il fornitore di forza lavoro. Deve contenere meno di 32 caratteri.
    • WORKFORCE_PROVIDER_DESCRIPTION: una descrizione del fornitore di forza lavoro.
    • PATH_TO_METADATA_XML: la posizione della directory Cloud Shell del file XML dei metadati dell'applicazione che hai caricato utilizzando Cloud Shell, ad esempio: /path/to/sso_metadata.xml.
    • ATTRIBUTE_MAPPINGS: definizione di come mappare gli attributi delle asserzioni agli attributi di Google Cloud. Per interpretare queste mappature, viene utilizzato il Common Expression Language. Ad esempio:

      google.subject=assertion.subject,google.display_name=assertion.attributes.name[0],google.groups=assertion.attributes.groups

      L'esempio precedente mappa i seguenti attributi:

      • assertion.subject a google.subject. Questo è un requisito minimo.
      • assertion.attributes.name[0] a google.display_name.
      • assertion.attributes.groups all'attributo google.groups.

      Se esegui questa configurazione per Chronicle Security Operations, che include Chronicle SIEM e Chronicle SOAR, devi anche mappare i seguenti attributi richiesti da Chronicle SOAR:

      • attribute.first_name
      • attribute.last_name
      • attribute.user_email
      • google.groups

      Scopri di più sul provisioning e sulla mappatura degli utenti per Chronicle SOAR.

      Per impostazione predefinita, Chronicle legge le informazioni dei gruppi dai seguenti nomi degli attributi delle asserzioni senza distinzione tra maiuscole e minuscole: _assertion.attributes.groups_, _assertion.attributes.idpGroup_ e _assertion.attributes.memberOf_.

      Quando configuri l'applicazione SAML in modo da trasmettere informazioni sull'appartenenza al gruppo nell'asserzione, imposta il nome dell'attributo di gruppo su _group_, _idpGroup_ o _memberOf_.

      Nel comando di esempio, puoi sostituire assertion.attributes.groups con assertion.attributes.idpGroup o assertion.attributes.memberOf, che rappresenta il nome dell'attributo di gruppo configurato nell'applicazione SAML dell'IdP e che contiene le informazioni sulle iscrizioni ai gruppi nell'asserzione.

      L'esempio seguente mappa più gruppi all'attributo google.groups:

      google.groups="(has(assertion.attributes.idpGroup) ? assertion.attributes.idpGroup : []) + (has(assertion.attributes.groups) ? assertion.attributes.groups : []) + (has(assertion.attributes.memberof) ? assertion.attributes.memberof : [])"

      L'esempio seguente mappa il gruppo http://schemas.xmlsoap.org/ws/2005/05/identity/claims/group che contiene caratteri speciali a google.groups:

      google.groups="assertion.attributes['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/group']"

      Per maggiori informazioni sulla mappatura degli attributi, consulta Mappature degli attributi.

      Per eseguire questa configurazione utilizzando la console Google Cloud, vedi Creare un provider SAML.

Concedi un ruolo per attivare l'accesso a Chronicle

I passaggi seguenti descrivono come concedere un ruolo specifico utilizzando IAM in modo che gli utenti possano accedere a Chronicle. Esegui la configurazione utilizzando il progetto Google Cloud associato a Chronicle che hai creato in precedenza.

In questo esempio viene utilizzato il comando gcloud. Per utilizzare la console Google Cloud, vedi Concedere un singolo ruolo.

  1. Concedi il ruolo Visualizzatore API Chronicle (roles/chronicle.viewer) a utenti o gruppi che dovrebbero avere accesso all'applicazione Chronicle.

    L'esempio seguente concede il ruolo Visualizzatore API Chronicle alle identità gestite utilizzando il pool di identità e il provider di forza lavoro che hai creato in precedenza.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role roles/chronicle.viewer \
      --member "principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/*"
    

    Sostituisci quanto segue:

    Per concedere il ruolo Visualizzatore API Chronicle a un gruppo specifico, esegui questo comando:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role roles/chronicle.viewer \
      --member "principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
    

    Sostituisci GROUP_ID: un gruppo nella rivendicazione google.groups mappata.

  2. Configura criteri IAM aggiuntivi per soddisfare i requisiti della tua organizzazione.

Verificare o configurare il controllo dell'accesso alle funzionalità di Chronicle

Se hai configurato la federazione delle identità per la forza lavoro con attributi o gruppi mappati all'attributo google.groups, queste informazioni vengono passate a Chronicle per consentirti di configurare controllo dell'accesso basato sui ruoli (RBAC) alle funzionalità di Chronicle.

Se l'istanza Chronicle dispone di una configurazione RBAC esistente, verifica che la configurazione originale funzioni come previsto.

Se non hai ancora configurato Chronicle RBAC, consulta Configurare il controllo dell'accesso dell'accesso alle funzionalità utilizzando IAM per informazioni sul controllo dell'accesso alle funzionalità.

Modifica la configurazione della federazione delle identità della forza lavoro

Se è necessario aggiornare il pool di identità della forza lavoro o il provider di forza lavoro, consulta Gestire i provider di pool di identità della forza lavoro per informazioni sull'aggiornamento della configurazione.

La sezione Gestione delle chiavi in Creare un provider di pool di forza lavoro SAML descrive come aggiornare le chiavi di firma dell'IdP e quindi aggiornare la configurazione del provider di forza lavoro con il file XML di metadati dell'applicazione più recente.

Di seguito è riportato un comando gcloud di esempio che aggiorna la configurazione del fornitore di forza lavoro:

gcloud iam workforce-pools providers update-saml WORKFORCE_PROVIDER_ID \
    --workforce-pool=WORKFORCE_POOL_ID \
    --location="global" \
    --display-name="WORKFORCE_PROVIDER_DISPLAY_NAME" \
    --description="WORKFORCE_PROVIDER_DESCRIPTION" \
    --idp-metadata-path=PATH_TO_METADATA_XML \
    --attribute-mapping="ATTRIBUTE_MAPPINGS"

Sostituisci quanto segue:

  • WORKFORCE_PROVIDER_ID: il valore definito per l'ID fornitore di forza lavoro.
  • WORKFORCE_POOL_ID: il valore definito per l'ID pool di identità della forza lavoro.
  • WORKFORCE_PROVIDER_DISPLAY_NAME: un nome facile da usare per il fornitore di forza lavoro. Il valore deve contenere meno di 32 caratteri.
  • WORKFORCE_PROVIDER_DESCRIPTION: la descrizione del fornitore di forza lavoro.
  • PATH_TO_METADATA_XML: la posizione del file XML dei metadati dell'applicazione aggiornato, ad esempio: /path/to/sso_metadata_updated.xml.
  • ATTRIBUTE_MAPPINGS: gli attributi dell'asserzione mappati agli attributi di Google Cloud. Ad esempio:

    google.subject=assertion.subject,google.display_name=assertion.attributes.name[0],google.groups=assertion.attributes.memberOf

Per assicurarti che Chronicle RBAC continui a funzionare come previsto, mappa anche l'attributo google.groups a tutti i gruppi utilizzati per definire i ruoli in Chronicle.

Risolvere i problemi relativi alla configurazione

Se si verificano errori durante la procedura, consulta l'articolo Risolvere i problemi relativi alla federazione delle identità per la forza lavoro per risolvere i problemi comuni. La seguente sezione fornisce informazioni sui problemi comuni riscontrati durante l'esecuzione dei passaggi descritti in questo documento.

Se i problemi persistono, contatta il tuo rappresentante di Chronicle e fornisci il tuo file dei log di rete di Chrome.

command not found errore durante la creazione di un provider di pool di identità della forza lavoro

Quando crei un provider di pool di identità della forza lavoro e specifichi i dettagli dell'IdP, viene visualizzato il seguente errore:

Error: bash: --attribute-mapping=google.subject=assertion.subject,
google.display_name=assertion.attributes.name[0],
google.groups=assertion.attributes.groups: command not found

Controlla che PATH_TO_METADATA_XML sia il percorso in cui hai caricato il file XML dei metadati dell'applicazione SAML nella tua home directory di Cloud Shell.

The caller does not have permission errore

Quando esegui il comando gcloud projects add-iam-policy-binding per concedere ruoli a utenti o gruppi, viene visualizzato il seguente errore:

ERROR: (gcloud.organizations.add-iam-policy-binding) User [ ] does not have
permission to access organizations instance [538073083963:getIamPolicy]
(or it may not exist): The caller does not have permission

Verifica di disporre delle autorizzazioni necessarie. Per saperne di più, consulta Ruoli obbligatori.

Passaggi successivi

Dopo aver completato i passaggi descritti in questo documento, procedi nel seguente modo: