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 token di sicurezza fisico.
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 eseguire nuovamente l'autenticazione più spesso.
- 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 la finestra contestuale di grandi dimensioni 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-lengthper impostare la durata della sessione. Il valore deve essere0so compreso tra 1 e 24 ore. Specifica la durata in ore. Ad esempio, utilizza "12h" per impostare una sessione di 12 ore. Utilizza il flag--session-reauth-methodper specificare il metodo di riautenticazione. Ad esempio, puoi impostare una durata della sessione di 3 ore (3h) e un metodo di riautenticazioneLOGIN,PASSWORDoSECURITY_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
scopedAccessSettingsin un file YAML per specificare i controlli della sessione per applicazioni specifiche utilizzandoclientId. 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 binding GcpUserAccessBinding.
sessionLengthè la durata della sessione in secondi, formattata come numero di secondi seguito das(ad esempio,3600s). Il valore deve essere0so compreso tra3600s(1 ora) e86400s(24 ore). Se impostato su0s,sessionLengthEnableddeve essere impostato sufalseo lasciato non impostato. Non puoi impostaresessionLengthsu0sesessionLengthEnabledsutrue.sessionReauthMethodpuò essereLOGIN,PASSWORDoSECURITY_KEY.- Utilizza
scopedAccessSettingsper 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, imposta 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,3600simposta la durata della sessione a 1 ora. Ilsalla fine è obbligatorio.session_length_enabled: imposta il valore su false per disattivare le impostazioni di sessione specificate.session_reauth_method: il tipo di richiesta di autenticazione utilizzato per aggiornare le credenziali. Le opzioni sonoLOGIN,PASSWORDoSECURITY_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.
Quando vengono definiti i controlli della sessione, per risolvere le impostazioni del controllo della sessione viene utilizzato solo l'associazione di accesso creata 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 per l'applicazione
La sezione scopedAccessSettings nel file YAML (o nel corpo JSON) 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.
Le impostazioni specifiche dell'applicazione in scopedAccessSettings sostituiscono completamente i controlli sessione predefiniti (globali). Se per un'applicazione è definita un'impostazione con ambito, i controlli della sessione predefiniti non vengono applicati a quell'applicazione.
Per escludere 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
Il seguente esempio mostra la configurazione delle impostazioni di 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' Google Cloud organizzazioneGROUP_ID: la chiave del gruppoBINDING_FILE_PATH: il percorso del file di bindingSESSION_LENGTH: la durata della sessione, ad esempio18h
API REST
Un 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 = "{Organization ID}"
group_key = "{Group Key}"
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 = "SENSITIVE_APP_ID"
}
}
}
active_settings {
session_settings {
session_length = "7200s"
session_length_enabled = true
session_reauth_method = "SECURITY_KEY"
use_oidc_max_age = false
}
}
}
}
Esempio di configurazione dei criteri per le Google Cloud applicazioni
Puoi configurare controlli di riautenticazione specifici per le applicazioni, ad esempio richiedendo SECURITY_KEY per Google Cloud SDK e LOGIN per la console Google Cloud . 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) consente di
ignorare le impostazioni predefinite per applicazioni specifiche. In questo esempio, abbiamo impostato 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 escludere determinate applicazioni dal controllo della sessione, imposta il campo
sessionLength su 0s o sessionLengthEnabled
su false. Il metodo sessionReauthMethod verrà ignorato.
gcloud
Il seguente esempio mostra la configurazione delle impostazioni di 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' Google Cloud organizzazioneGROUP_ID: la chiave del gruppoBINDING_FILE_PATH: il percorso del file di binding
API REST
Un 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 Google Cloud console, imposta l'argomento scoped_access_settings appropriato:
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 = "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
}
}
}
}
Ignorare la durata predefinita della sessione di 16 ore per le applicazioni Google Cloud
A partire da giugno 2026, è stata introdotta una durata predefinita della sessione di 16 ore per un sottoinsieme di Google Cloud organizzazioni. Questa policy predefinita non è visibile nella Console di amministrazione Google e le organizzazioni interessate Google Cloud devono utilizzare l'API Gestore contesto accesso per ignorarla per i propri utenti.
Per ignorare questa policy predefinita ed escludere queste applicazioni dal controllo delle sessioni (rendendo la durata della sessione effettivamente infinita), puoi creare un binding cloud con scopedAccessSettings in cui sessionLengthEnabled è impostato su false sia per Google Cloud SDK sia per le applicazioni della console Google Cloud ("Cloud Console").
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' Google Cloud organizzazioneGROUP_ID: la chiave del gruppo (ad esempio, un gruppo che contiene tutti gli utenti a cui vuoi applicare questo override)BINDING_FILE_PATH: il percorso del file di binding
API REST
Un 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 devono essere 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 = "{Organization ID}"
group_key = "{Group Key}"
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
}
}
}
}