Как настроить прокси Fiware PEP WILMA для использования экземпляров Keyrock и Orion на моих собственных серверах

Я потратил большую часть дня, пытаясь настроить прокси-сервер Fiware PEP Wilma для защиты посреднического брокера Orion, который я запускаю на сервере разработки. Документация здесь: http://forge.fiware.org/plugins/mediawiki/wiki/fiware/index.php/PEP_Proxy_-_Wilma_-_Installation_and_Administration_Guide не ясна.

Вот моя установка:

  • Экземпляр Fiware Keyrock, работающий на сервере server1, порт 3000
  • PEP-прокси работает на сервере 1
  • Контекстный брокер Orion, работающий на сервере server2, порт 1026

В руководстве говорится, что нужно отредактировать скрипт config.js. Вот что я изменил (Stackru не позволяет мне вводить URL, поэтому замените http.. на http:)


config.account_host = 'http..//localhost:3000';

config.keystone_host = 'http..//server1';
config.keystone_port = 3000;

config.app_host = 'server2';
config.app_port = '1026';

config.username = '***** username of the user in Keyrock *****';
config.password = '***** password of the user in Keyrock *****';

Вот ошибка


~/fi-ware-pep-proxy$ node server.js express устарел app.configure: проверьте app.get('env') в операторе if server.js:30:5 Запуск прокси PEP. Аутентификация по трапецеидальному искажению... Ошибка при обмене данными по трапецеидальному искажению: getaddrinfo ENOTFOUND в errnoException (dns.js:37:11) в Object.onanswer [as oncomplete] (dns.js:124:16)


Мои экземпляры Orion и Keyrock запущены и работают. Я могу запросить их с помощью curl или браузера.

Я действительно понятия не имею, что я должен заполнять в config.js, чтобы настроить это.

4 ответа

Надеюсь, это поможет. Мы работаем над развертыванием некоторых универсальных инструментов, включая IdM, Wilma PEP и Orion, с использованием docker и docker-compose.

Эта среда, называемая Fiware-devguide-APP, фактически находится в стадии разработки, но вы можете протестировать среду (уже работающую), а также проверить нашу конфигурацию здесь.

Мы обновляем всю документацию!

Для этого у нас есть изображения здесь.

Docker и docker-compose требуются.

Если они у вас уже есть, чтобы запустить все приложения, интегрированные в Devguide, вам просто нужно клонировать репозиторий:

git clone https://github.com/Bitergia/fiware-devguide-app.git

А затем запустите docker-compose, используя .yml файл в fiware-devguide-app/docker/compose:

docker-compose -f docker-compose.yml up -d

Таким образом, у вас будут все контейнеры! Наконец, добавьте ip контейнера devguide (compose_devguide_1) в ваш /etc/hosts и вы сможете просмотреть его:)

Объяснение:

Мы прошли несколько конфигураций для этого. Я предполагаю, что вы заинтересованы в IdM и Wilma PEP, так что здесь идет то, что мы сделали:

  1. Мы установили IdM GE с нуля, предоставляя желаемых пользователей, роли и разрешения. Здесь вы можете найти то, что мы добавили на test_data метод:

Обратите внимание, что все эти условия могут быть выполнены также с использованием Keystone REST API

Также здесь вы можете найти Dockerfile, т.е. как он был установлен.

  1. Мы установили Authzforce для управления ролями, как описано в руководстве. Он понадобится вам, так как wilma-pep будет отправлять запросы PDP для проверки запросов к защищенному ресурсу.

  2. Наконец ОПТОСОЗ Вильма. Здесь вы можете найти файлы конфигурации.

Как это работает?

Здесь идет хитрость. Давайте предположим, что Env Authzforce (Контроль доступа), IdM, PEP Wilma, Orion (приложение, которое будет защищено) и devguide. Поскольку мы используем docker-compose, все эти шаги выполняются практически одновременно!:)

  1. В authzforce нам нужно создать домен как указано в документации, и мы делаем это здесь.

  2. Сам скрипт извлекает идентификатор домена и анализирует config.js Файл PEP Wilma в этой строке, используя правильный путь.

  3. config.js это просто:

    • account_host а также keystone_host находятся в том же контейнере "IDM". Docker-compose обрабатывает это, добавляя псевдонимы к /etc/hosts каждого контейнера, что делает процесс намного проще, и нам не нужно самим обрабатывать IP.
    • app_host а также app_port IP-адрес и порт приложения для защиты, в нашем случае это "Орион"!
    • config.username а также config.password, Мы создали пользователя pepproxy в положении, которое мы объясняли ранее, именно здесь. (Обратите внимание, что этот пользователь должен иметь domain roles назначен для того, чтобы работать, как здесь сделано).
    • И azf конфигурация, которая также содержит хост 'authzforce' и где путь анализируется, как описано выше.
  4. Добавление конфигурации authzforce в IdM и PEP (т.е. домен)

  5. Получите токен Oauth2, как описано здесь.

  6. Наконец, с этим токеном и всем запущенным, вы можете открыть compose_devguide_1, Он имеет различные ресурсы, которые могут быть доступны в зависимости от ролей, назначенных вами в IdM. Например, "user0@test.com" может получить доступ ко всем ресурсам, а другой - только к ресторанам.

Надеюсь, я был достаточно ясен.

Лучший!

Сейчас запросы от PEP напрямую не отправляются в IdM. Они используют Openstack-совместимый сервер (Keystone Proxy). Поэтому, если вы хотите использовать его, вы должны установить и этот компонент. В любом случае через две недели мы собираемся изменить это поведение.

Надеюсь это поможет

Новые версии готовы. Теперь вам нужны только Keyrock и PEP Proxy. Как объясняется здесь, валидации идут непосредственно в IdM. Надеюсь это поможет.

Мы устанавливаем среду Fiware на локальный компьютер; мы притворяемся, что у нас есть брокер контекста orion с экземпляром Keyrock idm. Мы понимаем, что нам нужно использовать Pep Proxy для проверки токенов запросов к брокеру контекста orion. Мы используем Keyrock IDM, поэтому нам интересно, можем ли мы сделать это или нет. Есть ли способ использовать их сейчас, не устанавливая ничего другого, или мы должны также установить прокси-сервер de keystone?

Это ключевой прокси, который мы нашли:

https://github.com/ging/fi-ware-keystone-proxy

Если это так; Как мы должны настроить pep прокси? Где мы должны поместить данные для подключения к ключевому идентификатору Keyrock и где мы должны указывать ключевую информацию?

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