2016-04-17 5 views
3

В качестве части ускорителя FINISH мы используем FIWARE KeyRock и Wirecloud. В настоящее время мы используем глобальный экземпляр лаборатории Fiware для исследования.Ошибка в программном обеспечении KeyRock API: членство в организациях не возвращается

Мы хотим ограничить нашу систему, чтобы пользователи могли просматривать только данные, принадлежащие организациям, членом которых они являются.

Следующая поток кажется логичным, но поправьте меня, если я ошибаюсь:

журналы
  1. пользователя в Wirecloud и направляется через сито KeyRock входа.
  2. Виджет Wirecloud получает токен доступа из среды Wirecloud. Маркер доступа был создан, когда пользователь вошел в систему.
  3. Виджет Wirecloud просматривает организации и роли, в которых пользователь входит. Исходя из этого, он добавляет имена организаций в свой запрос.
  4. Виджет Wirecloud запрашивает веб-сервис (Orion или иначе) с использованием только что созданного запроса.
  5. Мы поместили прокси-сервер 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 на нашем собственном сервере?

Спасибо за любую помощь, Робин

+0

Я нашел ссылку здесь: [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

+0

Хотя приведенный выше комментарий позволяет мне обойти API KeyRock непосредственно из Wirecloud, используя вместо этого API Keystone, возникает вопрос, следует ли вообще использовать API KeyRock? – Robin

+0

Вы нашли решение? Я также получаю пустой список организаций. Даже владелец организации получает пустой список. – Dalton

ответ

1

вы должны следовать шагам объяснили here, но с использованием конкретной организации. Возможно, вы пропустили шаг «Авторизировать»

+1

Спасибо за ответ Альваро. Это добавляет заполненный элемент организации в вызов https://account.lab.fiware.org/user?access_token=xxxx. Однако мы ожидали, что элемент ** organization ** будет содержать данные после добавления пользователей в качестве участника на вкладке ** members ** в пользовательском интерфейсе KeyRock. Вызов API-интерфейса/пользователя не соответствует той же структуре, что и пользовательский интерфейс, что очень сбивает с толку. Теперь мы должны добавить разрешение в дополнение к добавлению пользователя в организацию. Это может иметь смысл, но интерфейс KeyRock не способствует пониманию. – Robin

+0

Alvaro, кнопка «Авторизовать» скрыта до тех пор, пока пользователь не запросит «Обновление сообщества» на экране «Настройки -> Состояние учетной записи». Как мы можем автоматизировать «Обновление сообщества» или обходить его для использования в нашей собственной установке. Или мы должны просто пойти и изменить [KeyRock server]/пользовательский вызов? Если да, в каком исходном файле мы должны смотреть? – Robin

 Смежные вопросы

  • Нет связанных вопросов^_^