Configurazione delle condizioni di accesso di giorno e giorno

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

La funzionalità di limitazione di data e ora di Gestore contesto accesso offre alle aziende la possibilità di impostare i controlli di accesso in base alla data e all'ora.

Nel valutare l'accesso Zero Trust, è spesso necessario limitare l'accesso degli utenti alle risorse in giorni e orari specifici. Ad esempio, è possibile che i turni di lavoro siano autorizzati ad accedere alle risorse aziendali solo durante gli orari di turni, oppure agli utenti può essere concesso un accesso temporaneo tra una determinata ora del giorno.

Per applicare la condizione relativa al livello di accesso giornaliero e giornaliero, utilizza le funzioni elencate nella tabella seguente. Il formato delle funzioni è function(timezone).

Puoi specificare timezone come UTC, fusi orari fissi, offset espliciti di ore e minuti da UTC o nomi timezone lunghi come Europe/Paris, CET o US/Central. Per avere un elenco completo, consulta la sezione Fuso orario della definizione del linguaggio espresso Express.

Se non specifichi un 'fuso orario', l'espressione viene impostata su UTC per impostazione predefinita.

Funzione Descrizione Esempio
getFullYear Recupera il numero che rappresenta l'anno in corso, ad esempio 2020.

È l'anno 2020?

request.time.getFullYear("America/Los_Angeles") == 2020
getMonth Recupera il mese dell'anno. I valori dei mesi vanno da 0 a 11, dove 0 == gennaio e 11 == dicembre.

Il mese di gennaio è gennaio?

request.time.getMonth("America/Los_Angeles") == 1
getDate Recupera la data del mese. I valori delle date sono compresi tra 1 e 31, dove 1 è il primo del mese e 31 il 31 del mese.

È il primo giorno del mese?

request.time.getDate("America/Los_Angeles") == 1
getDayOfMonth Recupera il giorno del mese. I valori dei giorni sono compresi tra 0 e 30, dove 0 è il primo del mese e 30 è il 31 del mese.

È il primo giorno del mese?

request.time.getDayOfMonth("America/Los_Angeles") == 0
getDayOfWeek Recupera il giorno della settimana. I valori dei giorni sono compresi tra 0 e 6, dove 0 è domenica e 6 è sabato.

È lunedì?

request.time.getDayOfWeek("America/Los_Angeles") == 1
getDayOfYear Recupera il giorno dell'anno. I valori dei giorni sono compresi tra 0 e 365, dove 0 è il primo giorno dell'anno e 365 è il 366° giorno dell'anno.

È il primo giorno dell'anno?

request.time.getDayOfYear("America/Los_Angeles") == 0
getHours Recupera l'ora del giorno. I valori delle ore vanno da 0 a 23, dove 0 è mezzanotte e 23 è 23:00.

Sono le 19?

request.time.getHours("America/Los_Angeles") == 19
getMinutes Recupera il minuto dell'ora. I valori dei minuti vanno da 0 a 59, dove 0 è il primo minuto e 59 è l'ultimo minuto dell'ora.

Sono le 19:30?

request.time.getHours("America/Los_Angeles") == 19 && request.time.getMinutes("America/Los_Angeles") == 30
date Restituisce il timestamp che rappresenta la data normalizzata a mezzanotte UTC.

Ora corrente in UTC.

request.time.date()
date(tz string) Restituisce il timestamp che rappresenta la data normalizzata a mezzanotte relativa alla stringa del fuso orario <tz>.

Fuso orario del Pacifico.

request.time.date('America/Los_Angeles')

request.time.date('08:00')

timeOfDay Restituisci l'elemento google.type.TimeOfDay associato al timestamp in UTC.

Ora del giorno corrente in UTC, ad esempio '09:30:00'

request.time.timeOfDay()
timeOfDay(tz string) Restituisce il google.type.TimeOfDay associato al timestamp e relativo alla stringa TimeZone <tz>.

Ora attuale del giorno nel Pacifico, ad esempio '09:30:00'

request.time.timeOfDay('America/Los_Angeles')
between(start, stop)

(per timestamp)

Per un determinato timestamp, restituisci True se il timestamp è compreso tra tempo 'start' (inclusi) e 'stop' (escluso).

'Start' e 'stop' può essere type.Timestamp o stringa, che verrà convertita in type.Timestamp.

Il timestamp corrente, espresso in PST, tra le 00:00 del 10 gennaio 2020 (compreso) e l'11 gennaio 2020 alle 00:00 (esclusa)?

request.time.date('08:00') .between('2020-10-01T00:00:00+08:00', '2020-10-01T00:00:00+08:00')
between(start, stop string)

(per TimeOfDay)

Per un determinato TimeOfDay, restituisci True se l'ora della data è compresa tra 'start' (inclusa) e 'stop' (esclusa).

'Start' e 'stop' può essere type.TimeOfDay o stringa, che verrà convertita in type.TimeOfDay.

È l'ora attuale, nel fuso orario del Pacifico, tra le 09:30 (incluse) e le 17:30 (esclusa)?

request.time.timeOfDay('America/Los_Angeles').between('09:30:00', '17:30:00')

La seguente tabella contiene esempi su come utilizzare le limitazioni di data e ora:

Criterio di esempio Espressione
Consenti ai turni di accedere alle risorse dal lunedì al venerdì dalle 9:00 alle 17:00, eccetto il quarto luglio.

Opzione 1:

request.time.getDayOfWeek("America/Los_Angeles") >= 1 && request.time.getDayOfWeek("America/Los_Angeles") <= 5 && request.time.getHours("America/Los_Angeles") >= 9 && request.time.getHours("America/Los_Angeles") <= 17 && !(request.time.getMonth("America/Los_Angeles") == 6 && request.time.getDayOfMonth("America/Los_Angeles") == 3)

Opzione 2:

request.time.getDayOfWeek("America/Los_Angeles") >= 1 && request.time.getDayOfWeek("America/Los_Angeles") <= 5 && !(request.time.getMonth("America/Los_Angeles") == 6 && request.time.getDayOfMonth("America/Los_Angeles") == 3) && request.time.timeOfDay("America/Los_Angeles").between('09:30:00', '17:00:00')

Consenti l'accesso temporaneo alle risorse il 1° marzo 2020 dalle 22:00 alla mezzanotte.

Opzione 1:

request.time.getFullYear("America/Los_Angeles") == 2020 && request.time.getMonth("America/Los_Angeles") == 2 && request.time.getDayOfMonth("America/Los_Angeles") == 0 && request.time.getHours("America/Los_Angeles") >= 22 && request.time.getHours("America/Los_Angeles") <= 23

Opzione 2:

request.time.between('2020-03-01T23:00:00+08:00', '2020-03-02T00:00:00+08:00')

Di seguito sono riportati alcuni esempi di espressioni che utilizzano alcune funzioni per acquisire specifici intervalli di tempo:

Esprimi il tuo intervallo durante l'orario di apertura
Il formato data-ora è 'HH:MM:SS' e segue lo standard RFC 3339.

request.time.timeOfDay('America/Los_Angeles').between('09:30:00', '17:30:00')
request.time.date('America/Los_Angeles')
    .between('01-10-2020T00:00:00+08:00', '01-11-2020T00:00:00-07:00')

Esprimi il tuo nome in determinati giorni del mese
(Supporto del formato alternativo per il fuso orario)

request.time.getDayOfMonth('America/Los_Angeles') < 7

Esprimi intervalli di date specifici, annualmente
Ad esempio, per i rapporti trimestrali.

request.time.date('Asia/Hong_Kong').between(
    request.time.getFullYear('08:00') + '-12-15T00:00:00+08:00',
    request.time.getFullYear('08:00')+1 + '-01-01T00:00:00+08:00')