Configura i controlli della sessione per la riautenticazione

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

Puoi applicare i controlli della sessione per:

  • Applica la riautenticazione frequente per gli utenti con privilegi: richiedi agli utenti con privilegi elevati, come i proprietari dei progetti e gli amministratori della fatturazione, di ripetere l'autenticazione più spesso.
  • Configura sessioni più lunghe per determinate applicazioni: consenti a determinate applicazioni, come quelle di AI basate sul contesto come Gemini, di avere durate delle sessioni più lunghe per preservare la grande finestra contestuale necessaria per prestazioni ottimali.

Definisci la durata della sessione e i metodi di riautenticazione

Puoi definire i controlli della sessione quando crei un binding di Gestore contesto accesso. Per ulteriori informazioni sui controlli della sessione, vedi Applicare criteri ai gruppi di utenti utilizzando i binding di accesso.

gcloud

  • Impostare i controlli della sessione predefiniti per tutte le applicazioni

    Utilizza il flag --session-length per impostare la durata della sessione. Il valore può variare da 0 a 24 ore. Specifica la durata utilizzando il formato della durata ISO 8601. Ad esempio, utilizza "12H30M5S" per impostare una sessione di 12 ore, 30 minuti e 5 secondi. Utilizza il flag --session-reauth-method per specificare il metodo di riautenticazione. Ad esempio, puoi impostare una durata della sessione di 30 minuti (30 m) e un metodo di riautenticazione LOGIN, PASSWORD o SECURITY_KEY.

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

  • Impostare 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

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

  • sessionLength è la durata della sessione compresa tra 0 e 24 ore. Il valore deve essere una stringa costituita da un numero intero compreso tra 0 e 86400, seguito immediatamente dalla lettera "s".
  • sessionReauthMethod può essere LOGIN, PASSWORD o SECURITY_KEY.
  • Utilizza scopedAccessSettings per definire i controlli della sessione specifici per l'applicazione. Per maggiori dettagli, vedi Definire le configurazioni per applicazioni specifiche.

Terraform

All'interno della risorsa di binding dell'accesso utente di Terraform Google Cloud, compila l'argomento session_settings per configurare i controlli generali della durata della sessione che si applicano a tutto il traffico utente:

  • session_length: la durata della sessione in secondi. Ad esempio, 900 secondi impostano la durata della sessione su 15 minuti. La "s" alla fine è obbligatoria.
  • session_length_enabled: imposta il valore su false per disattivare le impostazioni della sessione specificate.
  • session_reauth_method: il tipo di richiesta di 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 max_age OIDC facoltativo, specificato se le credenziali di autenticazione sono un token OAuth.

Considerazioni chiave per la definizione dei controlli delle sessioni:

  • Quando vengono risolte le impostazioni di controllo della sessione, viene utilizzato solo il binding di accesso creato più di recente che corrisponde alla richiesta.

Configurazione dei criteri di esempio

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 ignorare le impostazioni predefinite per applicazioni specifiche. Nell'esempio, abbiamo impostato un requisito di riautenticazione di due ore con SECURITY_KEY per l'applicazione con l'ID client SENSITIVE_APP_ID.

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

gcloud

Configurazione delle impostazioni:

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 \
    --level DEFAULT_ACCESS_LEVEL
    --session-length 18h \
    --session-reauth-method LOGIN

API

Corpo JSON:

{
  "groupKey": "GROUP_ID",
  "accessLevels": [
    "accessPolicies/POLICY_ID/accessLevels/DEFAULT_ACCESS_LEVEL"
  ],
  "scopedAccessSettings": [
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "clientId": "SENSITIVE_APP_ID"
          }
        }
      },
      "activeSettings": {
        "accessLevels": [
          "accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME"
        ],
        "sessionSettings": [
          {
            "sessionLength": "2h",
            "sessionReauthMethod": "SECURITY_KEY",
            "sessionLengthEnabled": true
          }
        ]
      }
    }
  ]

Richiesta di post:

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

Terraform

Per specificare una durata della sessione per le richieste di accesso degli utenti provenienti da "Chiave di gruppo" in tutte le app:

    resource "google_access_context_manager_gcp_user_access_binding" "gcp_user_access_binding" {
      organization_id = "{Organization ID}"
      group_key = "{Group Key}"
      session_settings {
        session_length = "1800s"
        session_length_enabled = true
        session_reauth_method = "LOGIN"
        use_oidc_max_age = false
      }

Per specificare una durata della sessione per le richieste degli utenti provenienti da un gruppo Google specifico che utilizza un'app specifica, ad esempio la console Google Cloud , inserisci un argomento session_settings nell'argomento scoped_access_settings in active_settings. Gli argomenti secondari all'interno di session_settings sono identici all'argomento di primo livello.

    resource "google_access_context_manager_gcp_user_access_binding" "gcp_user_access_binding" {
      organization_id = "{Organization ID}"
      group_key = "{Group Key}"
      scoped_access_settings {
        scope {
          client_scope {
            restricted_client_application {
              name = "Cloud Console"
            }
          }
        }
        active_settings {
          session_settings {
            session_length = "1800s"
            session_length_enabled = true
            session_reauth_method = "LOGIN"
            use_oidc_max_age = false
          }
        }
      }
    }