Fiware AuthZForce ошибка: "домен AZF не создан для приложения"

Я пытаюсь защитить Orion Context Broker, используя KeyRock idm, Wilma PEP-Proxy и AuthZForce PDP через Docker. На данный момент безопасность уровня 1 работает хорошо, и я могу запретить доступ не зарегистрированным пользователям, но я получаю эту ошибку на Вильме при попытке добавить уровень 2.

AZF domain not created for application <applicationID>

Вот моя конфигурация azf в файле config.js Вилмы:

config.azf = {
    enabled: true,
    protocol: 'http',
    host: 'azfcontainer',
    port: 8080,
    custom_policy: undefined
};

И вот как я устанавливаю конфигурацию контроля доступа на KeyRock:

# ACCESS CONTROL GE
ACCESS_CONTROL_URL = 'http://azfcontainer:8080'
ACCESS_CONTROL_MAGIC_KEY = None

Я создал пользовательские политики для Keyrock, но журналы AuthZForce не показывают никаких запросов от KeyRock или Wilma, поэтому на PDP не создается домен. Я проверил, что все контейнеры могут видеть и достигать друг друга, и что все порты работают. Я могу пропустить некоторые настройки.

Вот версии, которые я использую:

keyrock=5.4.1
wilma=5.4
autzforce=6.0.0/5.4.1

Этот вопрос тот же, что и "домен AZF, не созданный для приложения" AuthZforce, но моя проблема сохраняется даже с показанной конфигурацией AuthZForce GE.

1 ответ

Решение

Я обнаружил причину этой проблемы, которая возникает, когда AuthZForce не находится за прокси -сервером PEP и, следовательно, переменная ACCESS_CONTROL_MAGIC_KEY не изменяется (по умолчанию None).

Кажется, что горизонт читает оба параметра ACCESS_CONTROL_URL и ACCESS_CONTROL_MAGIC_KEY в openstack_dashboard/local/local_settings.py, когда ему нужно подключиться к AuthZForce. Теоретически, второй параметр является необязательным (он вводит заголовок "X-Auth-Token" для прокси-сервера PEP), но если horizon обнаруживает, что это None (значение по умолчанию в local_settings.py) или пустая строка, журнал показывает Предупреждение и немедленное возвращение из функции "policyset_update" в openstack_dashboard / fiware_api / access_control_ge.py. Таким образом, общение с AuthZForce никогда не происходит.

Самый простой способ решить эту проблему - написать текст в виде магического ключа в: openstack_dashboard/local/local_settings.py:

# ACCESS CONTROL GE
ACCESS_CONTROL_URL = 'http://authzforce_url:port'
ACCESS_CONTROL_MAGIC_KEY = '1234567890' # DO NOT LEAVE None OR EMPTY

Таким образом, будет сгенерирован заголовок 'X-Auth-Token', но он не должен влиять на связь, когда AuthZForce не находится за прокси-сервером PEP (заголовок просто игнорируется).

Примечание: не забудьте удалить кэшированный файл байт-кода "openstack_dashboard/local/local_settings.py c " при внесении изменений, чтобы обеспечить обновление новой конфигурации после перезапуска службы horizon.

PS: Я отправил запрос на получение https://github.com/ging/horizon с простой модификацией, которая решает проблему.

Другие вопросы по тегам