Configurare i controlli della sessione per la riautenticazione

I controlli della sessione ti consentono di configurare la frequenza con cui gli utenti devono ripetere l'autenticazione dopo aver ottenuto l'accesso e se è richiesto un accesso completo, solo la password o una chiave di sicurezza hardware.

Puoi applicare i controlli della sessione per:

  • Imponi una riautenticazione frequente per gli utenti con privilegi: richiedi agli utenti con privilegi elevati, come i Project Owner e gli amministratori della fatturazione, di riautenticarsi più di frequente.
  • Configura sessioni più lunghe per determinate applicazioni: consenti alle applicazioni supportate, come la console Google Cloud , Google Cloud SDK o app OAuth specifiche, di avere durate della sessione più lunghe per preservare l'ampia finestra contestuale richiesta per prestazioni ottimali.

Definisci la durata della sessione e i metodi di riautenticazione

Puoi definire i controlli delle sessioni durante la creazione di un'associazione di Gestore contesto accesso. Per saperne di più sui controlli delle sessioni, consulta Applica policy ai gruppi di utenti utilizzando le associazioni di accesso.

gcloud

  • Imposta i controlli di sessione predefiniti per tutte le applicazioni

    Utilizza il flag --session-length per impostare la durata della sessione. Il valore deve essere 0s o compreso tra 1 ora e 24 ore. Specifica la durata in ore. Ad esempio, utilizza "12h" per impostare una sessione di 12 ore. Utilizza il flag --session-reauth-method per specificare il metodo di riautenticazione. Ad esempio, puoi impostare una durata della sessione di 3 ore (3h) e un metodo di riautenticazione LOGIN, PASSWORD o SECURITY_KEY.

    Verrà applicata a tutte le applicazioni, a meno che non venga sostituita da impostazioni specifiche dell'applicazione.

  • Imposta i controlli della sessione specifici per l'applicazione

    Definisci scopedAccessSettings in un file YAML per specificare i controlli della sessione per applicazioni specifiche utilizzando clientId. In questo modo puoi ignorare i controlli delle sessioni predefiniti per queste applicazioni. Puoi quindi passare il file YAML utilizzando --binding-file flag.

API REST

Definisci i campi sessionLength e sessionReauthMethod all'interno dell'oggetto sessionSettings nel corpo JSON della richiesta POST per creare o aggiornare un'associazione GcpUserAccessBinding.

  • sessionLength è la durata della sessione in secondi, formattata come numero di secondi seguito da s (ad esempio, 3600s). Il valore deve essere 0s o compreso tra 3600s (1 ora) e 86400s (24 ore). Se impostato su 0s, sessionLengthEnabled deve essere impostato su false o non essere impostato. Non puoi impostare sessionLength su 0s e sessionLengthEnabled su true.
  • sessionReauthMethod può essere LOGIN, PASSWORD o SECURITY_KEY.
  • Utilizza scopedAccessSettings per definire i controlli di sessione specifici per l'applicazione. Per maggiori dettagli, consulta Definisci le configurazioni per applicazioni specifiche.

Terraform

All'interno della risorsa Terraform Google Cloud User Access Binding, imposta l'argomento session_settings per configurare i controlli generali della durata della sessione che si applicano a tutto il traffico degli utenti:

  • session_length: la durata della sessione in secondi. Ad esempio, 3600s imposta la durata della sessione su 1 ora. Il carattere s alla fine è obbligatorio.
  • session_length_enabled: imposta su false per disattivare le impostazioni della sessione specificate.
  • session_reauth_method: il tipo di verifica dell'autenticazione utilizzato per aggiornare le credenziali. Le opzioni sono LOGIN, PASSWORD o SECURITY_KEY.
  • use_oidc_max_age: un campo avanzato utilizzato per configurare se la sessione rispetta un parametro facoltativo di età massima OIDC, che viene specificato se la credenziale di autenticazione è un token OAuth.

Quando definisci i controlli della sessione, per risolvere le impostazioni dei controlli della sessione viene utilizzata solo l'associazione di accesso creata più di recente che corrisponde alla richiesta.

Esempio di configurazione delle policy

L'esempio seguente mostra come creare un controllo della sessione che richiede la riautenticazione ogni 18 ore con LOGIN e ogni due ore per un'applicazione specifica (SENSITIVE_APP_ID) con SECURITY_KEY.

Impostazioni predefinite

I flag --level, --session-length e --session-reauth-method nel comando Google Cloud CLI (o i campi corrispondenti nel corpo JSON per la chiamata API) impostano il comportamento predefinito per tutte le applicazioni non definite esplicitamente in scopedAccessSettings.

Impostazioni specifiche dell'applicazione

La sezione scopedAccessSettings nel file YAML (o nel corpo JSON) ti consente di eseguire l'override delle impostazioni predefinite per applicazioni specifiche. Nell'esempio, impostiamo un requisito di riautenticazione di due ore con SECURITY_KEY per l'applicazione con l'ID client SENSITIVE_APP_ID.

Le impostazioni specifiche dell'applicazione in scopedAccessSettings sostituiscono completamente i controlli della sessione predefiniti (globali). Se per un'applicazione è definita un'impostazione con ambito, i controlli della sessione predefiniti non si applicano a quell'applicazione.

Per esentare determinate applicazioni dal controllo della sessione quando i controlli globali sono attivi, devi aggiungerle esplicitamente a scopedAccessSettings e impostare il campo sessionLength su 0s e sessionLengthEnabled su false.

gcloud

L'esempio seguente mostra la configurazione delle impostazioni della sessione:

scopedAccessSettings:
- scope:
    clientScope:
      restrictedClientApplication:
        clientId: SENSITIVE_APP_ID
  activeSettings:
    sessionSettings:
      sessionLength: 7200s
      sessionReauthMethod: SECURITY_KEY
      sessionLengthEnabled: true

Crea l'associazione di accesso:

gcloud access-context-manager cloud-bindings create \
    --organization=ORG_ID \
    --group-key=GROUP_ID \
    --binding-file=BINDING_FILE_PATH \
    --session-length=SESSION_LENGTH \
    --session-reauth-method LOGIN

Sostituisci quanto segue:

  • ORG_ID: l'ID dell'organizzazione Google Cloud

  • GROUP_ID: l'ID univoco del gruppo Cloud Identity

  • BINDING_FILE_PATH: il percorso del file di associazione

  • SESSION_LENGTH: la durata della sessione, ad esempio 18h

Per ottenere l'ID gruppo univoco, esegui questo comando:

gcloud identity groups describe GROUP_EMAIL

Sostituisci GROUP_EMAIL con l'indirizzo email del tuo gruppo. L'ID gruppo univoco è il valore restituito dopo groups/ nel campo name nell'output. Ad esempio, l'ID gruppo univoco in groups/01gf8i8311xalqg è 01gf8i8311xalqg.

API REST

Esempio di corpo JSON della richiesta API:

{
  "groupKey": "GROUP_ID",
  "sessionSettings": {
    "sessionLength": "64800s",
    "sessionReauthMethod": "LOGIN",
    "sessionLengthEnabled": true
  },
  "scopedAccessSettings": [
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "clientId": "SENSITIVE_APP_ID"
          }
        }
      },
      "activeSettings": {
        "sessionSettings": {
          "sessionLength": "7200s",
          "sessionReauthMethod": "SECURITY_KEY",
          "sessionLengthEnabled": true
        }
      }
    }
  ]
}

Crea la richiesta POST nel seguente formato:

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

Sostituisci ORG_ID con l'ID dell'organizzazione Google Cloud .

Terraform

Per specificare i controlli della sessione che si applicano a livello globale e ad applicazioni specifiche, imposta gli argomenti session_settings e scoped_access_settings:

    resource "google_access_context_manager_gcp_user_access_binding" "gcp_user_access_binding" {
      organization_id = "ORG_ID"
      group_key = "GROUP_ID"
      session_settings {
        session_length = "64800s"
        session_length_enabled = true
        session_reauth_method = "LOGIN"
        use_oidc_max_age = false
      }
      scoped_access_settings {
        scope {
          client_scope {
            restricted_client_application {
              client_id = "CLIENT_ID"
            }
          }
        }
        active_settings {
          session_settings {
            session_length = "7200s"
            session_length_enabled = true
            session_reauth_method = "SECURITY_KEY"
            use_oidc_max_age = false
          }
        }
      }
    }

Sostituisci quanto segue:

  • ORG_ID: l'ID numerico dell'organizzazione Google Cloud.

  • GROUP_ID: l'ID gruppo non elaborato dell'API Cloud Identity o Google Workspace Directory. Non utilizzare un indirizzo email di gruppo o un nome della risorsa "groups/...". Passa invece l'ID non elaborato o utilizza trimprefix(google_cloud_identity_group.example.id, "groups/").

  • CLIENT_ID: l'ID client OAuth 2.0 dell'applicazione.

Esempio di configurazione delle policy per le applicazioni Google Cloud

Puoi configurare controlli di riautenticazione specifici per le applicazioni Google Cloud , ad esempio richiedendo SECURITY_KEY per Google Cloud SDK e LOGIN per la console Google Cloud . L'esempio seguente mostra come creare un controllo della sessione che richiede la riautenticazione ogni ora per Google Cloud SDK con SECURITY_KEY e ogni 4 ore per la console Google Cloud con LOGIN.

La sezione scopedAccessSettings nel file YAML (o nel corpo JSON) ti consente di eseguire l'override delle impostazioni predefinite per applicazioni specifiche. In questo esempio, impostiamo un requisito di riautenticazione di un'ora con SECURITY_KEY per Google Cloud SDK e un requisito di riautenticazione di quattro ore con LOGIN per la console Google Cloud utilizzando il campo name per identificare queste applicazioni.

Per esentare determinate applicazioni dal controllo della sessione, imposta il campo sessionLength su 0s o sessionLengthEnabled su false. Il metodo sessionReauthMethod verrà quindi ignorato.

gcloud

L'esempio seguente mostra la configurazione delle impostazioni della sessione:

scopedAccessSettings:
- scope:
    clientScope:
      restrictedClientApplication:
        name: Google Cloud SDK
  activeSettings:
    sessionSettings:
      sessionLength: 3600s
      sessionReauthMethod: SECURITY_KEY
      sessionLengthEnabled: true
- scope:
    clientScope:
      restrictedClientApplication:
        name: Cloud Console
  activeSettings:
    sessionSettings:
      sessionLength: 14400s
      sessionReauthMethod: LOGIN
      sessionLengthEnabled: true

Crea l'associazione di accesso:

gcloud access-context-manager cloud-bindings create \
    --organization=ORG_ID \
    --group-key=GROUP_ID \
    --binding-file=BINDING_FILE_PATH

Sostituisci quanto segue:

  • ORG_ID: l'ID dell'organizzazione Google Cloud

  • GROUP_ID: l'ID univoco del gruppo Cloud Identity

  • BINDING_FILE_PATH: il percorso del file di associazione

API REST

Esempio di corpo JSON della richiesta API:

{
  "groupKey": "GROUP_ID",
  "scopedAccessSettings": [
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "name": "Google Cloud SDK"
          }
        }
      },
      "activeSettings": {
        "sessionSettings": {
            "sessionLength": "3600s",
            "sessionReauthMethod": "SECURITY_KEY",
            "sessionLengthEnabled": true
          }
      }
    },
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "name": "Cloud Console"
          }
        }
      },
      "activeSettings": {
        "sessionSettings": {
            "sessionLength": "14400s",
            "sessionReauthMethod": "LOGIN",
            "sessionLengthEnabled": true
          }
      }
    }
  ]
}

Crea la richiesta POST nel seguente formato:

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

Sostituisci ORG_ID con l'ID dell'organizzazione Google Cloud .

Terraform

Per specificare le impostazioni della durata della sessione per Google Cloud SDK e la console Google Cloud , imposta l'argomento scoped_access_settings appropriato:

    resource "google_access_context_manager_gcp_user_access_binding" "gcp_user_access_binding" {
      organization_id = "ORG_ID"
      group_key = "GROUP_ID"
      scoped_access_settings {
        scope {
          client_scope {
            restricted_client_application {
              name = "Google Cloud SDK"
            }
          }
        }
        active_settings {
          session_settings {
            session_length = "3600s"
            session_length_enabled = true
            session_reauth_method = "SECURITY_KEY"
            use_oidc_max_age = false
          }
        }
      }
      scoped_access_settings {
        scope {
          client_scope {
            restricted_client_application {
              name = "Cloud Console"
            }
          }
        }
        active_settings {
          session_settings {
            session_length = "14400s"
            session_length_enabled = true
            session_reauth_method = "LOGIN"
            use_oidc_max_age = false
          }
        }
      }
    }

Sostituisci quanto segue:

  • ORG_ID: l'ID numerico dell'organizzazione Google Cloud.

  • GROUP_ID: l'ID gruppo non elaborato dell'API Cloud Identity o Google Workspace Directory. Non utilizzare un indirizzo email di gruppo o un nome della risorsa "groups/...". Passa invece l'ID non elaborato o utilizza trimprefix(google_cloud_identity_group.example.id, "groups/").

Sostituisci la durata predefinita della sessione di 16 ore per le applicazioni Google Cloud

A partire da giugno 2026, è stata introdotta una durata della sessione predefinita di 16 ore per un sottoinsieme di organizzazioni Google Cloud . Questa policy predefinita non è visibile nella Console di amministrazione Google e le organizzazioni Google Cloud interessate devono utilizzare l'API Gestore contesto accesso per eseguirne l'override per i propri utenti.

Per eseguire l'override di questa policy predefinita ed esentare queste applicazioni dal controllo della sessione (rendendo la durata della sessione effettivamente infinita), puoi creare un'associazione cloud con scopedAccessSettings dove sessionLengthEnabled è impostato su false sia per Google Cloud SDK sia per le applicazioni della console Google Cloud ("console Cloud").

gcloud

L'esempio seguente mostra la configurazione YAML per disattivare i controlli della sessione per queste applicazioni:

scopedAccessSettings:
- scope:
    clientScope:
      restrictedClientApplication:
        name: Google Cloud SDK
  activeSettings:
    sessionSettings:
      sessionLength: 0s
      sessionReauthMethod: LOGIN
      sessionLengthEnabled: false
- scope:
    clientScope:
      restrictedClientApplication:
        name: Cloud Console
  activeSettings:
    sessionSettings:
      sessionLength: 0s
      sessionReauthMethod: LOGIN
      sessionLengthEnabled: false

Crea o aggiorna l'associazione di accesso utilizzando questo file:

gcloud access-context-manager cloud-bindings create \
    --organization=ORG_ID \
    --group-key=GROUP_ID \
    --binding-file=BINDING_FILE_PATH

Sostituisci quanto segue:

  • ORG_ID: l'ID dell'organizzazione Google Cloud

  • GROUP_ID: l'ID univoco del gruppo Cloud Identity (ad esempio, l'ID di un gruppo che contiene tutti gli utenti a cui vuoi applicare questo override)

  • BINDING_FILE_PATH: il percorso del file di associazione

API REST

Esempio di corpo JSON della richiesta API:

{
  "groupKey": "GROUP_ID",
  "scopedAccessSettings": [
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "name": "Google Cloud SDK"
          }
        }
      },
      "activeSettings": {
        "sessionSettings": {
          "sessionLength": "0s",
          "sessionReauthMethod": "LOGIN",
          "sessionLengthEnabled": false
        }
      }
    },
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "name": "Cloud Console"
          }
        }
      },
      "activeSettings": {
        "sessionSettings": {
          "sessionLength": "0s",
          "sessionReauthMethod": "LOGIN",
          "sessionLengthEnabled": false
        }
      }
    }
  ]
}

Crea la richiesta POST nel seguente formato:

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

Sostituisci ORG_ID con l'ID dell'organizzazione Google Cloud .

Terraform

Per specificare che i controlli di sessione sono disattivati per Google Cloud SDK e la console Google Cloud , imposta l'argomento scoped_access_settings appropriato con session_length_enabled = false:

    resource "google_access_context_manager_gcp_user_access_binding" "gcp_user_access_binding" {
      organization_id = "ORG_ID"
      group_key = "GROUP_ID"
      scoped_access_settings {
        scope {
          client_scope {
            restricted_client_application {
              name = "Google Cloud SDK"
            }
          }
        }
        active_settings {
          session_settings {
            session_length = "0s"
            session_length_enabled = false
            session_reauth_method = "LOGIN"
            use_oidc_max_age = false
          }
        }
      }
      scoped_access_settings {
        scope {
          client_scope {
            restricted_client_application {
              name = "Cloud Console"
            }
          }
        }
        active_settings {
          session_settings {
            session_length = "0s"
            session_length_enabled = false
            session_reauth_method = "LOGIN"
            use_oidc_max_age = false
          }
        }
      }
    }

Sostituisci quanto segue:

  • ORG_ID: l'ID numerico dell'organizzazione Google Cloud.

  • GROUP_ID: l'ID gruppo non elaborato dell'API Cloud Identity o Google Workspace Directory. Non utilizzare un indirizzo email di gruppo o un nome della risorsa "groups/...". Passa invece l'ID non elaborato o utilizza trimprefix(google_cloud_identity_group.example.id, "groups/").