【发布时间】:2016-06-20 18:03:22
【问题描述】:
作为 FINISH 加速器的一部分,我们使用 FIWARE KeyRock 和 Wirecloud。目前我们正在使用 Fiware labs 全局实例进行调查。
我们希望限制我们的系统,以便用户只能查看属于他们所属组织的数据。
以下流程似乎合乎逻辑,但如果我错了,请纠正我:
- 用户登录 Wirecloud 并被引导通过 KeyRock 登录屏幕。
- Wirecloud 小部件从 Wirecloud 环境中获取访问令牌。访问令牌是在用户登录时创建的。
- Wirecloud 小部件查找用户所属的组织和角色。基于此,它将组织名称添加到其查询中。
- Wirecloud 小部件使用它刚刚创建的查询来查询 Web 服务(Orion 或其他)。
- 我们将 Wilma PEP 代理置于 Wirecloud Widget 和 Web 服务之间,以验证用户是否是查询中组织的成员。
问题: 我们可以使用https://account.lab.fiware.org/user?access_token=XXXXXXXXXXX 调用从 KeyRock 查询用户信息。但根据 KeyRock Web 界面,这不包含有关用户所属组织的任何信息。组织元素是一个空数组。我们在 json 响应中获得了一堆角色,但它们都不是您从 KeyRock 的“管理您的组织成员”屏幕分配给用户的“成员”角色。
一些挖掘表明,在 Fiware 实验室上运行的 Keystone 实例包含这些信息(假设 Keystone 项目 = KeyRock 组织)。然而,KeyRock 提供的访问令牌在 Keystone API 上是无效的。我们使用的 API 可以在这里访问:http://cloud.lab.fiware.org:4730/v3/ 从 Keystone API 获取新的访问令牌不是我们想要的,因为这将是与 Wirecloud 获得的不同的访问令牌,这将需要某种代理重新登录并检索组织成员资格。这反而破坏了传递访问令牌的意义。
这似乎是 fiware labs 实例上 KeyRock API 中的一个错误。 或者我在这里错过了什么? 或者如果我们在自己的服务器上安装 keyrock,这个问题会神奇地消失吗?
感谢您的帮助, 罗宾
【问题讨论】:
-
虽然上面的评论允许我使用 Keystone API 直接从 Wirecloud 回避 KeyRock API,但它引出了我们是否应该使用 KeyRock API 的问题?
-
您找到解决方案了吗?我也得到一个空的组织列表。甚至组织的所有者也会收到一个空列表。
标签: fiware keystone fiware-wirecloud fiware-wilma