1

在全局 Wirecloud 实例中,我有一个使用此处提到的 KeystoneAPI 的小部件: https ://wirecloud.readthedocs.io/en/stable/development/object_storage_api/

到目前为止,一切都很好。

但是现在我想转移到 KeyRock 进行身份验证。我仍然想将令牌从我的 wirecloud 小部件传递到后端服务,例如也未连接到 KeyRock 的 Wilma PEP 代理。但是 KeystoneAPI 似乎与 Keystone 相关联(可能因此得名)。

是否可以从 Wirecloud 小部件访问 KeyRockAPI?小部件如何获取用户登录时使用的 KeyRock OAuth2 令牌?我找不到任何关于此的文档。

4

1 回答 1

0

WireCloud 不允许小部件和操作员读取分配给用户的 OAuth2 令牌,但它支持将令牌注入 HTTP 请求(如果它们通过 WireCloud 的代理)。此注入由几个 HTTP 标头控制,这是一个示例:

MashupPlatform.http.makeRequest(url, {
    requestHeaders: {
        "X-FI-WARE-OAuth-Token": "true",
        "X-FI-WARE-OAuth-Header-Name": "X-Auth-Token"
    },
    ...
});

您可以在FIWARE 学院课程中找到有关如何使用此功能的更多信息,更具体地说,请参见该3.1.8. Accessing third-party services using IdM tokens部分(考虑到该文档与您在评论中指出的相同,但采用 html 格式;))。

以评论形式回答其他问题:

  • 安装了 KeyRock 和 Wirecloud 的 docker 容器,尝试了 objectstorage 演示小部件,但未能检索到身份验证令牌。将问题追踪到 %idm_token% 没有被 python 代码填充,大概是在 plugins.py 中,因为它查找 'fiware' 的 AUTHENTICATION_BACKEND,而文档状态包括 'wirecloud.fiware.social_auth_backend.FIWAREOAuth2'。

    我建议你在 StackOverflow 中创建一个新问题来解决这个问题。请提供有关您的配置的更多详细信息。

  • 那么我来自wirecloud的身份验证令牌将绑定到该应用程序吗?如果是这样,除非我可以获得新的令牌,否则令牌对我自己的应用程序毫无用处。我在这里错了吗?

    是的,Mashup 门户是 Account 门户中的 17 号应用程序,WireCloud 获得的 OAuth2 令牌绑定到该应用程序。我无法预见该令牌是否对您的应用程序有用。此令牌可用于对用户进行身份验证,但 IdM 根据绑定到令牌的应用程序限制返回的信息(例如角色)。因此,显然,这种集成并不完美,但我们缺少 IdM 的一些集成功能以使其更有用。

于 2016-05-03T16:21:32.653 回答