Ошибка Fiware KeyRock API: членство в организациях не возвращается

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

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

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

  1. Пользователь входит в Wirecloud, и его направляют через экран входа в KeyRock.
  2. Виджет Wirecloud получает токен доступа из среды Wirecloud. Токен доступа был создан при входе пользователя в систему.
  3. Виджет Wirecloud выполняет поиск организаций и ролей, в которые входит пользователь. На основании этого он добавляет в свой запрос названия организаций.
  4. Виджет Wirecloud запрашивает веб-сервис (Orion или другой), используя только что созданный запрос.
  5. Мы помещаем прокси Wilma PEP между виджетом Wirecloud и веб-сервисом, чтобы проверить, является ли пользователь членом организаций, участвующих в запросе.

ПРОБЛЕМА: Мы можем запросить информацию о пользователе из KeyRock, используя https://account.lab.fiware.org/user?access_token=XXXXXXXXXXX вызов. Но он не содержит никакой информации об организациях, членом которых является пользователь согласно веб-интерфейсу KeyRock. Элемент организаций - это пустой массив. Мы получаем множество ролей в ответе json, но ни одна из них не является ролью «участников», которую вы назначаете пользователям на экране «Управление членами вашей организации» в KeyRock.

Некоторые поиски показали, что экземпляр Keystone, запущенный в лабораториях Fiware, содержит информацию (при условии, что проект Keystone = организация KeyRock). Однако токен доступа, предоставленный KeyRock, каким-то образом недействителен для Keystone API. Используемый нами API был доступен здесь: http://cloud.lab.fiware.org:4730/v3/ Получение нового токена доступа из Keystone API - это не то, что мы хотим, потому что это был бы другой токен доступа, чем полученный Wirecloud, что потребовало бы какого-то прокси для повторного входа в систему и получения членства в организации. . Это, скорее, побеждает точку передачи токена доступа.

Похоже, это ошибка API KeyRock в экземпляре fiware labs. Или мне что-то здесь не хватает? Или эта проблема волшебным образом исчезнет, ​​если мы установим keyrock на нашем собственном сервере?

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


person Robin    schedule 17.04.2016    source источник
comment
Я нашел здесь ссылку: ссылка / a> и образец виджета Wirecloud здесь: ссылка, позволяющая извлекать арендаторов (= проекты Keystone = организации KeyRock) из виджета Wirecloud. Я загрузил виджет в свой мэшап, и, хотя у меня не настроено хранилище объектов (что вызывает жалобы виджета), я могу видеть организацию, членом которой является мой пользователь.   -  person Robin    schedule 17.04.2016
comment
Хотя приведенный выше комментарий позволяет мне обойти API KeyRock непосредственно из Wirecloud, используя вместо этого API Keystone, возникает вопрос, должны ли мы вообще использовать API KeyRock?   -  person Robin    schedule 17.04.2016
comment
ты нашел решение? Я также получаю пустой список организаций. Даже владелец организации получает пустой список.   -  person Dalton Cézane    schedule 24.04.2017


Ответы (1)


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

person Álvaro Alonso    schedule 18.04.2016
comment
Спасибо за ответ Альваро. Это добавляет элемент заполненных организаций в account.lab.fiware.org/user?access_token= xxxx звонок. Однако мы ожидали, что элемент organization будет содержать данные после того, как мы добавили пользователей в качестве участников на вкладке members в пользовательском интерфейсе KeyRock. Вызов API / user не имеет той же структуры, что и пользовательский интерфейс, что очень сбивает с толку. Теперь мы обязаны добавить разрешение в дополнение к добавлению пользователя в организацию. Это может иметь смысл, но пользовательский интерфейс KeyRock не способствует пониманию. - person Robin; 19.04.2016
comment
Альваро, кнопка «Авторизовать» скрыта до тех пор, пока пользователь не запросит «Обновление сообщества» на экране «Настройки -› Статус учетной записи ». Как мы можем автоматизировать «Обновление сообщества» или обойти его для использования в нашей собственной установке. Или мы должны просто пойти дальше и изменить вызов [KeyRock server] / пользователя? Если да, то какой исходный файл нам следует искать? - person Robin; 08.05.2016