Zugriffsbedingungen für Uhrzeit und Tag konfiguriere

Mit dem Feature "Datums- und Uhrzeiteinschränkung" in Access Context Manager können Unternehmen Zugriffssteuerungen basierend auf Datum und Uhrzeit festlegen.

Bei der Bewertung eines Zero-Trust-Zugriffs ist es häufig erforderlich, den Nutzerzugriff auf Ressourcen auf bestimmte Tage und Uhrzeiten zu beschränken. Beispielsweise können Verschiebungs-Worker während ihrer Verschiebungszeiten nur auf Unternehmensressourcen zugreifen oder Nutzer können zwischen einer bestimmten Tageszeit einen vorübergehenden Zugriff erhalten.

Wenn Sie die Zugriffsebenenbedingung "Zeit" und "Tag" anwenden möchten, verwenden Sie die in der folgenden Tabelle aufgeführten Funktionen. Die Formate der Funktionen sind function(timezone).

Sie können timezone als UTC, feste Zeitzonen mit explizitem Stunden- und Minutenversatz zu UTC oder lange timezone-Namen wie Europe/Paris, CET oder US/Central angeben. Eine vollständige Auflistung finden Sie im Abschnitt Zeitzone der Definition der Common Express-Sprache.

Wenn Sie keine „Zeitzone” angeben, wird der Ausdruck standardmäßig auf UTC gesetzt.

Funktion Beschreibung Beispiel
getFullYear Rufen Sie die Zahl ab, die das aktuelle Jahr darstellt, z. B. 2020.

Ist es das Jahr 2020?

request.time.getFullYear("America/Los_Angeles") == 2020
getMonth Rufen Sie den Monat des Jahres ab. Die Monatswerte reichen von 0 bis 11, wobei 0 == Januar und 11 == Dezember.

Ist der Monat Januar?

request.time.getMonth("America/Los_Angeles") == 1
getDate Das Datum des Monats abrufen. Die Datumswerte reichen von 1 bis 31, wobei 1 der erste des Monats und 31 der 31. des Monats ist

Ist es der erste Tag des Monats?

request.time.getDate("America/Los_Angeles") == 1
getDayOfMonth Rufen Sie den Tag des Monats ab. Die Tageswerte reichen von 0 bis 30, wobei 0 der erste des Monats und 30 der 31. des Monats ist.

Ist es der erste Tag des Monats?

request.time.getDayOfMonth("America/Los_Angeles") == 0
getDayOfWeek Rufen Sie den Wochentag ab. Die Tageswerte reichen von 0 bis 6, wobei 0 für Sonntag und 6 für Samstag ist.

Ist es Montag?

request.time.getDayOfWeek("America/Los_Angeles") == 1
getDayOfYear Rufen Sie den Tag des Jahres ab. Die Tageswerte reichen von 0 bis 365, wobei 0 der erste Tag des Jahres und 365 der 366. Tag des Jahres ist.

Ist es der erste Tag des Jahres?

request.time.getDayOfYear("America/Los_Angeles") == 0
getHours Rufen Sie die Tageszeit ab. Die Stundenwerte reichen von 0 bis 23, wobei 0 um Mitternacht und 23 um 23:00 Uhr ist.

Ist es 19:00 Uhr?

request.time.getHours("America/Los_Angeles") == 19
getMinutes Rufen Sie die Minute der Stunde ab. Die Minutenwerte reichen von 0 bis 59, wobei 0 die erste Minute und 59 die letzte Minute der Stunde ist.

Ist es 19:30 Uhr?

request.time.getHours("America/Los_Angeles") == 19 && request.time.getMinutes("America/Los_Angeles") == 30
date Gibt den Zeitstempel zurück, der das auf Mitternacht (UTC) normalisierte Datum darstellt.

Aktuelle Zeit in UTC

request.time.date()
date(tz string) Gibt den Zeitstempel zurück, der das auf Mitternacht normalisierte Datum relativ zum Zeitzonenstring <tz> darstellt.

Aktuelle Uhrzeit in Pacific Time

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

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

timeOfDay Gibt den google.type.TimeOfDay zurück, der dem Zeitstempel in UTC zugeordnet ist.

Aktuelle Tageszeit in UTC, z. B. '09:30:00'

request.time.timeOfDay()
timeOfDay(tz string) Gibt den mit einem Zeitstempel verknüpften google.type.TimeOfDay und relativ zum Zeitzonenzonenstring <tz> zurück.

Aktuelle Tageszeit in pazifischer Zeit, z. B. '09:30:00'

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

(für Zeitstempel)

Gibt für einen bestimmten Zeitstempel True zurück, wenn der Zeitstempel zwischen dem Zeitpunkt „start” (einschließlich) und „stop” (ausschließlich) liegt.

„Start” und „stop” können type.Timestamp oder String sein, der in type.Timestamp konvertiert wird.

Ist der aktuelle Zeitstempel in PST zwischen 10. Januar 2020 00:00 Uhr (einschließlich) und 11. Januar 2020 00:00 Uhr (ausschließlich)?

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

(für TimeOfDay)

Gibt für einen bestimmten TimeOfDay True zurück, wenn die Uhrzeit zwischen dem „start” (einschließlich) und dem „stop” (ausschließlich) liegt.

„Start” und „stop” können type.TimeOfDay oder String sein, der in type.TimeOfDay konvertiert wird.

Ist die aktuelle Tageszeit in Pacific Time zwischen 09:30 Uhr (einschließlich) und 17:30 Uhr (ausschließlich)?

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

Die folgende Tabelle enthält Beispiele für die Verwendung von Zeit- und Datumseinschränkungen:

Beispielrichtlinie Ausdruck
So gewähren Sie Verschiebungs-Workern von Montag bis Freitag zwischen 9:00 Uhr und 17:00 Uhr Zugriff auf Ressourcen, ausgenommen der vierte Juli.

Option 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)

Methode 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')

Am 1. März 2020 zwischen 22:00 Uhr und Mitternacht temporären Zugriff auf Ressourcen gewähren.

Option 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

Option 2:

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

Hier einige Beispielausdrücke, die einige Funktionen verwenden, um bestimmte Zeiträume zu erfassen:

Bereich während der Geschäftszeiten angeben
Das Datums-/Uhrzeitformat lautet „HH:MM:SS” und folgt dem RFC 3339-Standard.

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')

Bestimmte Tage des Monats angeben, erste Woche
(Hinweis zur Unterstützung des alternativen Zeitzonenformats)

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

Bestimmte Zeiträume angeben, jährlich
Zum Beispiel für vierteljährliche Berichte.

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')