AuthZForce-PEP-IDM Всегда разрешать доступ, даже если у пользователя нет разрешения для определенного ресурса

Я создал пользователя и дал ему только одну роль. (Участник) В настоящее время эта роль не имеет разрешений ни на какие команды Http или пути. Это мой пользователь:

{
organizations: [1]
0:  {
website: ""
description: "AREAS"
roles: [1]
0:  {
name: "Member"
id: "09dc1bdba42c48de9e15e88816284cbc"
}-
-
enabled: true
id: "363ac390cfc94aa293e02547afa78256"
domain_id: "default"
name: "AREAS"
}-
-
displayName: "root"
roles: [0]
app_id: "aea8f4a70b87422cb48068db9f0c6aea"
email: "root"
id: "root"
}

Теперь, когда я пытаюсь выполнить запрос GET по адресу: http://localhost/parameters/search_tables/, для которого у этого пользователя нет разрешения, он тем не менее разрешает мне доступ и перенаправляет меня. Это журнал от прокси-сервера pep:

2015-11-13 14:55:53.446  - INFO: IDM-Client - Checking token with IDM...
2015-11-13 14:55:53.484  - INFO: AZF-Client - Checking auth with AZF...
2015-11-13 14:55:53.484  - INFO: AZF-Client - Checking authorization
to roles [ '09dc1bdba42c48de9e15e88816284cbc' ] to do  GET  
on  parameters/search_tables/ and app  aea8f4a70b87422cb48068db9f0c6aea
2015-11-13 14:55:53.508  - INFO: Root - Access-token OK. Redirecting to app...
Refused to set unsafe header "accept-encoding"
Refused to set unsafe header "cookie"

Мой файл конфигурации относительно авторизации:

config.azf = {
        enabled: true,
    host: '192.168.4.180',
    port: 8080,
    path: '/authzforce/domains/afb096b2-8951-11e5-980f-6bf3c4dac98a/pdp'
};
config.public_paths = [];

config.tokens_engine = 'oauth2';

Моя политика Папаниколау:

 <PolicySet PolicySetId="default" Version="1.0" 
PolicyCombiningAlgId="urn:oasis:names:tc:xacml:1.1:policy-combining-
algorithm:ordered-permit-overrides">
<Target />
 <Policy PolicyId="permit-all" Version="1.0" 
 RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.1:rule-combining-
 algorithm:ordered-permit-overrides">
<Target />
<Rule RuleId="permit-all" Effect="Permit" />
 </Policy>
 </PolicySet>

Как мне сформулировать свою политику PAP, чтобы включить уровень авторизации 2, чтобы использовать только http-команду и путь к ресурсу для авторизации?


person Milos Miletic    schedule 13.11.2015    source источник


Ответы (1)


По умолчанию Authzforce PAP разрешает все, если политика не добавлена. Проверьте, есть ли у вашего PAP правильная информация:

GET
/domains/{domainId}/pap/policySet

Изменить 1:

Чтобы иметь возможность подключиться к Authzforce, вам необходимо настроить некоторые параметры Authzforce в вашем экземпляре IdM:

  • ACCESS_CONTROL_URL в fiware-idm/horizon/openstack_dashboard/local/local_settings.py и
  • ACCESS_CONTROL_MAGIC_KEY at fiware-idm/horizon/openstack_dashboard/local/local_settings.py

Затем просто перейдите в IdM и проверьте, правильно ли настроены разрешения и роли. Иногда вам нужно «запустить» генерацию политики в IdM, перейдя в свое приложение -> управлять ролями и просто щелкнув «сохранить», чтобы запустить генерацию XACML.

person albertinisg    schedule 13.11.2015
comment
Да, похоже, моя политика разрешает все. Как должна выглядеть моя политика, если я хочу использовать авторизацию уровня 2 (только http-команда и путь к ресурсам) Я отредактировал свой вопрос, чтобы вставить мою pap-политику xml - person Milos Miletic; 13.11.2015
comment
С созданием ролей недостаточно, вам нужно добавить разрешения к каждому ресурсу, который вы хотите защитить. Без разрешений не будет никакого XACML (поскольку нет ресурсов для защиты) - я предполагаю, что вы используете IdM для управления ролями и разрешениями. - person albertinisg; 13.11.2015
comment
Хорошо, я создал разрешение GET на / parameters / search_tables / path и дал это разрешение роли администратора. Теперь я попытался получить доступ к этому ресурсу: localhost / parameters / search_tables с пользователем, у которого нет роли администратора: и это все еще позволяет мне. Есть ли дополнительный шаг? - person Milos Miletic; 13.11.2015
comment
Отображается ли это разрешение в Authzforce PAP? Если нет, то каким-то образом IdM не может ПОСТАВИТЬ XACML в Authzforce PAP. - person albertinisg; 13.11.2015
comment
Да, когда я проверяю политику pap на 192.168.4.180 : 8080 / authzforce / domains / по-прежнему говорит: разрешить все. Есть ли какая-то конфигурация для authzforce, в которой я должен указывать на свой idM? - person Milos Miletic; 13.11.2015
comment
Вы настраивали параметры Authzforce в IdM? иначе он никогда не узнает, где PUT политику. В файле fiware-idm/horizon/openstack_dashboard/local/local_settings.py вы должны изменить значение ACCESS_CONTROL_URL, а также в fiware-idm/horizon/openstack_dashboard/local/local_settings.py параметр ACCESS_CONTROL_MAGIC_KEY. - person albertinisg; 13.11.2015
comment
Давайте продолжим это обсуждение в чате. - person albertinisg; 13.11.2015