URL 仅在特定时间可访问 XACML

URL accessible at specific hours only XACML

我有一个棘手的问题(至少对我来说)要解决

简而言之:

  1. Web 服务器公开单个 URL(静态页面)
  2. URL 应该只能在上午 9 点到下午 5 点之间访问 (每天)
  3. 整个事情应该通过 XACML 来实现

问题

非常感谢

您需要:

  • 一个PEP(策略执行点)来拦截对服务器的请求。在您的情况下,您正在控制对 Web 服务器的访问。如果您使用的是 Java 网络服务器,例如Tomcat,你可以实现一个 Servlet 过滤器 PEP。
  • 一个 PDP(策略决策点)用于接收来自 PEP 的请求和 return 一个决策(允许或拒绝)。 Oracle 曾经 有一个名为 Oracle Entitlements Server (OES) 的 PDP 解决方案,但它已停止使用。现在你有几个选择
    • Balana,一个开源 XACML 引擎
    • AuthZForce,最新且可能是最完整的开源 XACML 3.0 PDP
    • Axiomatics,一种商业解决方案,可为您提供交钥匙 PDP、PEP 和策略编写(又名 PAP)
  • a PAP(政策管理/创作点):您需要编写您的政策。我通常使用 ,这是 XACML 易于阅读的 shorthand 表示法。

在您的情况下,政策如下所示:

policy allowOfficeHours{
    apply firstApplicable
    rule allowOfficeHours{
        target clause current_time>"09:00:00":time and current_time<"17:00:00":time
        permit
    }
}

行动计划

开始

  1. 从下载您选择的 PDP 开始。如果您需要免费,请转到 AuthZForce。您可以在此处使用 提问和标记问题。他们的主要架构师/开发人员在这里很活跃。
  2. 然后下载Eclipse 的ALFA 插件开始编写一些策略。
  3. 最后,使用AuthZForce的PEP SDK编写自己的PEP。查看 Java servlet 过滤器作为编写 PEP 的简单方法。查看此 post and that one 获取提示。