配置时间和日期访问条件

借助 Access Context Manager 的日期和时间限制功能,企业能够根据日期和时间来设置访问权限控制。

在评估零信任访问权限时,通常需要将用户限制为只能在特定日期和时间访问资源。例如,轮班工人只能在轮班期间访问公司资源,或用户仅能在一天的特定时间内获得临时访问权限。

如要应用时间和日期访问权限级别条件,请使用下表中列出的函数。函数的格式为 function(timezone)

您可以将 timezone 指定为 UTC,也就是相对于 UTC 的存在明确小时和分钟偏差的固定时区,也可以指定较长的 timezone 名称,例如 Europe/ParisCETUS/Central。如需完整列表,请参阅通用快捷语言定义的时区部分。

如果未指定 timezone,则表达式默认为 UTC。

函数 定义
getFullYear

检索表示当前年份的数字,例如 2020。

示例:是 2020 年吗?

request.time.getFullYear("America/Los_Angeles") == 2020

getMonth

检索一年中的月份。月份值介于 0 到 11 之间,0 == 1 月,11 == 12 月。

示例:是 1 月吗?

request.time.getMonth("America/Los_Angeles") == 1

getDate

检索该月日期。日期值介于 1 到 31 之间,1 是该月的第一天,31 是该月的 31 天。

示例:现在是该月的第一天吗?

request.time.getDate("America/Los_Angeles") == 1

getDayOfMonth

检索该月日期。日期值的范围是从 0 到 30,其中 0 表示该月的第一天,30 表示该月的 31 日。

示例:现在是该月的第一天吗?

request.time.getDayOfMonth("America/Los_Angeles") == 0

getDayOfWeek

检索该周日期。日期值的范围是从 0 到 6,其中 0 表示星期日,6 表示星期六。

示例:是星期一吗?

request.time.getDayOfWeek("America/Los_Angeles") == 1

getDayOfYear

检索一年中的某天。天值介于 0 到 365 之间,其中 0 表示一年的第一天,365 表示一年中的 366 天。

示例:是一年中的第一天吗?

request.time.getDayOfYear("America/Los_Angeles") == 0

getHours

检索该天中的时段。小时值的范围是从 0 到 23,其中 0 表示午夜,23 表示晚上 11 点。

示例:是晚上 7 点吗?

request.time.getHours("America/Los_Angeles") == 19

getMinutes

检索该小时的分钟段。分钟值的范围是从 0 到 59,其中 0 表示第一分钟,59 表示最后一分钟。

示例:是晚上 7:30 吗?

request.time.getHours("America/Los_Angeles") == 19 && request.time.getMinutes("America/Los_Angeles") == 30

下表举例说明了如何使用时间和日期限制:

政策示例 表达式
允许轮班工人在每周周一到周五上午 9 点至下午 5 点之间访问资源,但 7 月 4 日除外。

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)

允许从 2020 年 3 月 1 日晚上 10 点到午夜临时访问资源。

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