La funzionalità di limitazione della data e dell'ora di Access Context Manager consente alle aziende 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, i lavoratori turnisti potrebbero essere autorizzati ad accedere alle risorse aziendali solo durante le ore del turno oppure agli utenti potrebbe essere concesso l'accesso temporaneo tra una determinata ora del giorno e un'altra.
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, fuso orario fisso con offset espliciti in ore e minuti rispetto a UTC oppure come 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", il valore predefinito dell'espressione è UTC.
Funzione | Descrizione | Esempio |
---|---|---|
getFullYear |
Recupera il numero che rappresenta l'anno corrente, 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 dei giorni sono compresi tra 0 e 6, dove 0 indica domenica e 6 indica 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 sono compresi tra 0 e 23, dove 0 indica mezzanotte e 23 indica le 23:00. |
Sono le 19:00? 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 attuale nel fuso orario 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 il 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 attuale, in PST, è compreso tra le 00:00 (incluso) del 10 gennaio 2020 e le 00:00 (escluso) 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:
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 delle funzioni per acquisire intervalli di tempo specifici:
Esprimere l'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')
Esprimere giorni specifici del mese, prima settimana
(Supporto delle note per il formato del fuso orario alternativo)
request.time.getDayOfMonth('America/Los_Angeles') < 7
Esprimere 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')