1

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

简而言之:

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

问题

  • 为了实现我的目标,我实际上需要什么?
  • 我应该安装任何 XACML 的 Oracle 实现吗?它是免费的吗?
  • 其他 XACML 实现是否合适?我指的是 WSO2 Balana
  • 我应该使用哪些工具?
  • 我应该如何开始?

非常感谢

4

1 回答 1

3

你需要:

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

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

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 的一种简单方法。查看这篇文章那篇文章以获取提示。
于 2020-04-08T16:39:41.643 回答