Configurazione delle condizioni di accesso di giorno e giorno

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.

Quando si valuta l'accesso Zero Trust, è spesso necessario limitare l'accesso degli utenti alle risorse a giorni e orari specifici. Ad esempio, ai lavoratori a turni potrebbe essere consentito l'accesso alle risorse aziendali solo durante gli orari del turno o agli utenti potrebbe essere fornito l'accesso temporaneo tra un determinato momento della giornata.

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

Puoi specificare timezone come UTC, fusi orari fissi con offset espliciti di ore e minuti rispetto al fuso orario UTC o nomi di timezone lunghi come Europe/Paris, CET o US/Central. Per una scheda completa, consulta la sezione Fuso orario della definizione del linguaggio Common Express.

Se non specifichi un fuso orario, per impostazione predefinita l'espressione sarà UTC.

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

È l'anno 2020?

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

È il mese di 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 giorno 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 del giorno 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 del giorno 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 del giorno 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 alla mezzanotte UTC.

Ora attuale nel fuso orario UTC.

request.time.date()
date(tz string) Restituisce il timestamp che rappresenta la data normalizzata a mezzanotte rispetto alla stringa TimeZone <tz>.

Ora attuale nel fuso orario del Pacifico.

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

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

timeOfDay Restituisce il google.type.TimeOfDay associato al timestamp in UTC.

Ora del giorno corrente nel fuso orario UTC, ad esempio "09:30:00"

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

Ora corrente del Pacifico, ad esempio "09:30:00"

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

(per il timestamp)

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

"Start" e "stop" possono essere type.Timestamp o stringhe, che verranno convertiti in type.Timestamp.

Il fuso orario corrente, in PST, è compreso tra le 00:00 (incluse) e le 00:00 del 10 gennaio 2020 (esclusi)?

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" (inclusi) e "stop" (esclusivi).

"Start" e "stop" possono essere type.TimeOfDay o stringhe, che verranno convertiti in type.TimeOfDay.

L'ora attuale del giorno, nel fuso orario del Pacifico, è compresa tra le 09:30 (incluse) e le 17:30 (escluse)?

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

La seguente tabella contiene alcuni esempi di come utilizzare le limitazioni relative a data e ora:

Norme di esempio Espressione
Consenti ai lavoratori che fanno i turni di accedere alle risorse dal lunedì al venerdì dalle 9:00 alle 17:00, ad eccezione del 4 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 a 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 riportate alcune espressioni di esempio che utilizzano alcune funzioni per acquisire intervalli di tempo specifici:

Esprimi l'intervallo durante l'orario di apertura
Il formato di data e 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')

Esprimere giorni specifici del mese, prima settimana
(nota il supporto per il formato di fuso orario alternativo)

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

Esprimi intervalli di date specifici, annuali
Ad esempio, per i report 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')