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 ricevuto l'accesso e se è richiesta una password completa, solo password o una chiave di sicurezza hardware.

Puoi applicare i controlli della sessione per:

  • Applicare una nuova autenticazione frequente per gli utenti con privilegi Richiedi agli utenti con privilegi elevati, come i proprietari dei progetti e gli amministratori della fatturazione, di eseguire nuovamente l'autenticazione più di frequente.
  • Configura sessioni più lunghe per determinate applicazioni Consenti a determinate applicazioni, come le applicazioni di AI basate sul contesto come Gemini, di avere durate delle sessioni più lunghe per preservare la grande finestra di contesto necessaria per prestazioni ottimali.

Definisci la durata della sessione e i metodi di riautenticazione

Puoi definire i controlli della sessione quando crei un'associazione di Gestore contesto accesso. Per informazioni dettagliate sui controlli della sessione, vedi Applicare criteri ai gruppi di utenti utilizzando le associazioni di accesso.

gcloud

  • Impostare i controlli della sessione predefiniti per tutte le applicazioni

    Utilizza il flag --session-length per impostare la durata della sessione e il --session-reauth-method per specificare il metodo di riautenticazione. Ad esempio, puoi impostare una durata della sessione di 30 minuti (30m) e un metodo di autenticazione di nuovo accesso LOGIN, PASSWORD o SECURITY_KEY.

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

  • Impostare controlli della sessione specifici per l'applicazione

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

API

Definisci i campi sessionLength e sessionReauthMethod all'interno di sessionSettings object nel corpo JSON della richiesta POST per creare o aggiornare un'associazione GcpUserAccessBinding. Utilizza scopedAccessSettings per definire i controlli della sessione specifici per l'applicazione. Per maggiori dettagli, vedi Definire configurazioni per applicazioni specifiche.

Considerazioni chiave per la definizione dei controlli delle sessioni:

  • Non puoi specificare la console Google Cloud utilizzando client_id. Per applicare i controlli delle sessioni per la console Google Cloud, definiscila come predefinita e poi crea eccezioni per altre applicazioni.
  • Per la risoluzione delle impostazioni di controllo della sessione viene utilizzata solo l'associazione di accesso creata più di recente che corrisponde alla richiesta.

Configurazione di criteri di esempio

Di seguito è riportato un esempio che mostra come creare un controllo sessione che richiede la re-autenticazione ogni 18 ore per impostazione predefinita 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 nei campi corrispondenti nel corpo JSON per la chiamata API) impostano il comportamento predefinito per tutte le applicazioni non definite esplicitamente in scopedAccessSettings.

Impostazioni specifiche per l'applicazione

La sezione scopedAccessSettings nel file YAML (o nel corpo JSON) consente di eseguire l'override delle 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.

gcloud

La configurazione delle impostazioni:

scopedAccessSettings:
  - scope:
      clientScope:
        restrictedClientApplication:
          client_id: SENSITIVE_APP_ID
    activeSettings:
      accessLevels:
        - accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
      sessionSettings:
        - sessionLength: 2h
          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": {
            "client_id": "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