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 的一些集成功能以使其更有用。