La funzionalità di limitazione di data e ora di Gestore contesto accesso offre alle aziende la possibilità di impostare i controlli dell'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 turnisti potrebbe essere consentito accedere alle risorse aziendali solo durante l'orario del loro turno oppure agli utenti potrebbe essere concesso l'accesso temporaneo in una determinata ora del giorno.
Per applicare la condizione del livello di accesso in base all'ora e al giorno, utilizza le funzioni elencate nella tabella seguente. Il formato delle funzioni è function(timezone)
.
Puoi specificare timezone
come UTC, fusi orari fissi che sono scarti orari e minuti espliciti dal UTC o nomi timezone
lunghi come Europe/Paris
, CET
o US/Central
. Per un elenco completo, consulta la sezione Fuso orario della definizione di Common Express Language.
Se non specifichi un "fuso orario", l'espressione viene utilizzata per impostazione predefinita su UTC.
Funzione | Descrizione | Esempio |
---|---|---|
getFullYear |
Recupera il numero che rappresenta l'anno in corso, ad esempio 2020. | È il 2020? request.time.getFullYear("America/Los_Angeles") == 2020
|
getMonth |
Recupera il mese dell'anno. I valori del mese sono compresi tra 0 e 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 del mese e 31 è il 31 del mese. |
È il primo 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 del mese? request.time.getDayOfMonth("America/Los_Angeles") == 0 |
getDayOfWeek |
Recupera il giorno della settimana. I valori del giorno vanno da 0 a 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 vanno da 0 a 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 sono compresi tra 0 e 23, dove 0 indica mezzanotte e 23 indica le 23:00. |
Sono le 19? request.time.getHours("America/Los_Angeles") == 19 |
getMinutes |
Recupera il minuto dell'ora. I valori dei minuti sono compresi tra 0 e 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>. | Ora attuale nel fuso orario del Pacifico.
|
timeOfDay |
Restituisce l'attributo google.type.TimeOfDay associato al timestamp in UTC. |
Ora corrente in 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 del giorno attuale nel fuso orario 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' (Avvia) e "interrompi" può essere | Il timestamp corrente, in PST, è compreso tra le ore 00:00 (inclusive) del 10 gennaio 2020 e le ore 00:00 (escluse) dell'11 gennaio 2020? 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 una stringa, che verrà convertita in type.TimeOfDay .
|
L'ora corrente 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 tabella seguente contiene esempi di come utilizzare le limitazioni di data e ora:
Norma di esempio | Espressione |
---|---|
Consenti ai turnisti 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, tra le 22:00 e mezzanotte. | Opzione 1: Opzione 2:
|
Di seguito sono riportate alcune espressioni di esempio che utilizzano alcune delle 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 sul supporto del formato fuso orario alternativo)
request.time.getDayOfMonth('America/Los_Angeles') < 7
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')