В составе ускорителя FINISH мы используем FIWARE KeyRock и Wirecloud. В настоящее время мы используем глобальный экземпляр лаборатории Fiware для расследования.
Мы хотим ограничить нашу систему, чтобы пользователи могли просматривать только данные, принадлежащие организациям, членами которых они являются.
Следующий поток кажется логичным, но поправьте меня, если я ошибаюсь:
- Пользователь входит в Wirecloud, и его направляют через экран входа в KeyRock.
- Виджет Wirecloud получает токен доступа из среды Wirecloud. Токен доступа был создан при входе пользователя в систему.
- Виджет Wirecloud выполняет поиск организаций и ролей, в которые входит пользователь. На основании этого он добавляет в свой запрос названия организаций.
- Виджет Wirecloud запрашивает веб-сервис (Orion или другой), используя только что созданный запрос.
- Мы помещаем прокси 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 на нашем собственном сервере?
Спасибо за любую помощь, Робин