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.
|
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 "Start" e "stop" possono essere | 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 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:
|
Consenti l'accesso temporaneo alle risorse il 1° marzo 2020, dalle 22:00 a mezzanotte. | Opzione 1: Opzione 2:
|
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')