В качестве части ускорителя FINISH мы используем FIWARE KeyRock и Wirecloud. В настоящее время мы используем глобальный экземпляр лаборатории Fiware для исследования.Ошибка в программном обеспечении KeyRock API: членство в организациях не возвращается
Мы хотим ограничить нашу систему, чтобы пользователи могли просматривать только данные, принадлежащие организациям, членом которых они являются.
Следующая поток кажется логичным, но поправьте меня, если я ошибаюсь:
журналы- пользователя в Wirecloud и направляется через сито KeyRock входа.
- Виджет Wirecloud получает токен доступа из среды Wirecloud. Маркер доступа был создан, когда пользователь вошел в систему.
- Виджет Wirecloud просматривает организации и роли, в которых пользователь входит. Исходя из этого, он добавляет имена организаций в свой запрос.
- Виджет Wirecloud запрашивает веб-сервис (Orion или иначе) с использованием только что созданного запроса.
- Мы поместили прокси-сервер Wilme PEP между виджетами Wirecloud и веб-сервисом, чтобы подтвердить, что пользователь является членом организаций в запросе.
ПРОБЛЕМА: Мы можем запросить информацию о пользователях из KeyRock с помощью https://account.lab.fiware.org/user?access_token=XXXXXXXXXXX вызова. Но это не содержит информации об организациях, членом которых является пользователь в соответствии с веб-интерфейсом KeyRock. Элемент организации представляет собой пустой массив. Мы получаем кучу ролей в ответе json, но ни одна из них не является ролью «членов», которую вы назначаете пользователям из экрана «Управление членами вашей организации» в KeyRock.
Некоторое рытье показало, что экземпляр Keystone, работающий в лабораториях Fiware, содержит информацию (предполагая, что проект Keystone = организация KeyRock). Однако токен доступа, предоставляемый KeyRock, как-то недействителен в API Keystone. API, который мы использовали, был доступен здесь: http://cloud.lab.fiware.org:4730/v3/ Получение нового токена доступа из API-интерфейса Keystone не является тем, что мы хотим, потому что это будет другой токен доступа, чем Wirecloud, который потребует некоторого прокси-сервера для входа в систему снова и получить членство в организации. Это скорее поражает точку передачи токена доступа.
Это, кажется, ошибка в API KeyRock на экземпляре fiware labs. Или я что-то упустил? Или эта проблема волшебным образом исчезнет, если мы установим keyrock на нашем собственном сервере?
Спасибо за любую помощь, Робин
Я нашел ссылку здесь: [link] (https://forge.fiware.org/plugins/mediawiki/wiki/fiware/index.php/Application_Mashup_-_Wirecloud_-_User_and_Programmer_Guide# getTenants) и пример виджета Wirecloud: [link] (https://wirecloud.conwet.etsiinf.upm.es/slides/3.2.2_Using%20Object%20Storage.html#slide28), которые позволяют извлекать Арендаторов (= Проекты Keystone = Организации KeyRock) из виджета wirecloud. Я загрузил виджет в свой mashup, и хотя у меня нет настройки хранилища объектов (что заставляет виджет жаловаться), я могу видеть организацию, членом которой является мой пользователь. – Robin
Хотя приведенный выше комментарий позволяет мне обойти API KeyRock непосредственно из Wirecloud, используя вместо этого API Keystone, возникает вопрос, следует ли вообще использовать API KeyRock? – Robin
Вы нашли решение? Я также получаю пустой список организаций. Даже владелец организации получает пустой список. – Dalton