URL доступен только в указанные 1000 часов XACML - PullRequest
1 голос
/ 07 апреля 2020

У меня сложная проблема (по крайней мере, для меня), которую нужно решить

В двух словах:

  1. Веб-сервер, отображающий один URL-адрес (stati c page)
  2. URL должен быть доступен только с 9 утра до 5 вечера (каждый день)
  3. все это должно быть реализовано через XACML

Вопросы

  • Что на самом деле мне нужно для достижения sh моей цели?
  • Есть ли какая-либо Oracle реализация XACML, которую я должен установить? Это случайно?
  • Может ли подойти другая реализация XACML? Я ссылаюсь на WSO2 Balana
  • Какими инструментами мне следует пользоваться?
  • С чего мне начать?

Большое спасибо

1 Ответ

2 голосов
/ 08 апреля 2020

Вам потребуется:

  • PEP (точка применения политики), чтобы перехватить запрос к серверу. В вашем случае вы контролируете доступ к веб-серверу. Если вы используете веб-сервер Java, например Tomcat, вы можете внедрить PEP Servlet Filter.
  • PDP (точка принятия решения о политике), чтобы получить запрос от PEP и вернуть решение (либо Разрешение, либо Отрицать). Oracle раньше имел решение PDP под названием Oracle Сервер прав (OES), но оно было прекращено. В настоящее время у вас есть несколько вариантов
    • Balana, движок с открытым исходным кодом XACML
    • AuthZForce, новейшая и, возможно, наиболее полная открытая исходная кодия XACML 3.0 PDP
    • Axiomatics, коммерческое решение который предоставляет вам готовые PDP, PEP и авторизацию политик (также известный как PAP)
  • a 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 по вашему выбору. Если вам нужно бесплатно, то go для AuthZForce. Вы можете задать и отметить вопросы с помощью здесь. Их главный архитектор / разработчик активен здесь.
  2. Затем загрузите плагин ALFA для Eclipse, чтобы начать писать некоторые политики.
  3. Наконец, используйте PEP SDK от AuthZForce, чтобы написать свой собственный PEP. Посмотрите на Java фильтры сервлетов как на простое средство для написания PEP. Посмотрите этот пост и этот для советов.
...