Моделирование политики XACML для динамической роли и атрибута - PullRequest
1 голос
/ 15 мая 2019

Я хочу написать политику / , которая будет проверять соответствие роли и атрибута пользователя роли и атрибуту для конкретного действия.

Роль пользователя и атрибуты, а также роль активности и атрибуты должны быть переданы в качестве входных данных в политику XACML для оценки.Ответ должен быть PERMIT, если роль и атрибут пользователя совпадают с ролью и атрибутами активности.

Например:

  • Активность: Просмотр сделок в долларах США на бирже NYSE.
  • Роль: трейдер
  • Атрибуты: «EXCHANGE», значение: «NYSE»
  • Атрибуты: «CURRENCY», значение: «USD»

Вход XACML-запроса 1

  • Имя: Джей
  • Роль: Трейдер
  • Атрибут: ОБМЕН: NYSE
  • Атрибут: ВАЛЮТА: USD

XACML-запрос 2

  • Имя: Джон
  • Роль: Трейдер
  • Атрибут: ОБМЕН: NYSE
  • Атрибут:ВАЛЮТА: GBP

XACML-запрос 3

  • Имя: Мат
  • Роль: Трейдер
  • Атрибут: ОБМЕН: NYSE

Атрибут является парой ключ / значение.

Ожидаемый вывод.

При оценке политики XACML для вышеуказанных запросов:

  • Джей должен получить разрешение и
  • Джондолжен получить "DENY".
  • Мэт должен получить разрешение, с обязательством "ВАЛЮТА" в долларах США.

Может кто-нибудь помочь мне с этой политикой?

Здесьэто политика ALFA, которая будет выполнять проверку RBAC, приведенную ниже

  namespace RBACPolicy {
    attribute activityRoles {
        id = "activity:role"
        type = string
        category = resourceCat
    }

    attribute userRoles {
        id = "subject:role"
        type = string
        category = subjectCat
    }

    policyset genericpolicy {
        apply denyOverrides

        policy genericpolicy_1 {
            apply denyOverrides

            rule rule1{
                permit
                    condition stringAtLeastOneMemberOf(activityRoles, userRoles)
            }
        }
    }
}

Спасибо Дэвиду за редактирование этого запроса в правильном формате.Я также хотел бы добавить еще один момент к этому вопросу.Пользователь может иметь несколько комбинаций атрибутов.Сэй Джей может торговать на NYSE с долларом США и FTSE на GBP.Таким образом, политика XACML должна оценивать комбинацию атрибутов.

  • Профиль пользователя
    • Имя: Джей
    • Роль: Атрибут трейдера: ОБМЕН: Атрибут NYSE: ВАЛЮТА: USD
    • Роль: Атрибут трейдера: ОБМЕН: FTSE Атрибут: ВАЛЮТА: INR

Запрос

Может ли Джей просматривать сделки на БФБ с INR?

...