Wirecloud 中的 Oauth2
Oauth2 in Wirecloud
在运营商中实现 OAuth2 授权的最佳方式是什么?我们已经使用 PEP 代理保护我们的后端 API,我们需要一个有效的令牌。一旦用户登录,wirecloud 是否提供任何访问它的方法。类似于:
MashupPlatform.context.getOAuthToken()
我们尽量避免在运营商的逻辑中对用户凭证进行硬编码。
是的,
尽管您无法从 widgets/operators 读取 OAuth2 令牌,但您可以使用 WireCloud 的代理并将其配置为将 OAuth2 令牌注入到您的请求中。为此,您必须在提出请求时提供以下 headers:
X-FI-WARE-OAuth-Token
值应该是 true
X-FI-WARE-OAuth-Header-Name
是 header 的名称,它将被添加到带有 OAuth2 令牌的请求中,在您的情况下:X-Auth-Token
因为您正在使用 PEP代理(尽管 OAuth2 的正确 header 是 Authorization
)。
考虑到匿名用户没有有效的 OAuth2 令牌。此外,如果您是 运行 WireCloud 的自定义实例,则可以将其配置为支持多个身份验证后端。在这种情况下,某些用户不会与 IdM 帐户相关联。您可以通过 运行 以下代码检查当前登录的用户是否具有关联的 IdM 令牌:MashupPlatform.context.get('fiware_token_available');
还有实验支持使用仪表板所有者的 OAuth2 令牌,而不是使用当前登录用户的 OAuth2 令牌。为此,请使用 workspaceowner
值添加 X-FI-WARE-OAuth-Source
header。
示例:
MashupPlatform.http.makeRequest(url, {
requestHeaders: {
"X-FI-WARE-OAuth-Token": "true",
"X-FI-WARE-OAuth-Header-Name": "X-Auth-Token",
"X-FI-WARE-OAuth-Source": "workspaceowner"
},
...
});
未来的考虑:
在生产环境中,出于安全原因,应使用 https 提供使用 OAuth2 身份验证的服务。因此,如果最终 URL 使用 https 模式,我们正在考虑将检查添加到 WireCloud 代理中,以便仅注入 OAuth2 令牌。唯一的例外可能是与 WireCloud 在同一内联网中可用的服务。
在运营商中实现 OAuth2 授权的最佳方式是什么?我们已经使用 PEP 代理保护我们的后端 API,我们需要一个有效的令牌。一旦用户登录,wirecloud 是否提供任何访问它的方法。类似于:
MashupPlatform.context.getOAuthToken()
我们尽量避免在运营商的逻辑中对用户凭证进行硬编码。
是的,
尽管您无法从 widgets/operators 读取 OAuth2 令牌,但您可以使用 WireCloud 的代理并将其配置为将 OAuth2 令牌注入到您的请求中。为此,您必须在提出请求时提供以下 headers:
X-FI-WARE-OAuth-Token
值应该是true
X-FI-WARE-OAuth-Header-Name
是 header 的名称,它将被添加到带有 OAuth2 令牌的请求中,在您的情况下:X-Auth-Token
因为您正在使用 PEP代理(尽管 OAuth2 的正确 header 是Authorization
)。
考虑到匿名用户没有有效的 OAuth2 令牌。此外,如果您是 运行 WireCloud 的自定义实例,则可以将其配置为支持多个身份验证后端。在这种情况下,某些用户不会与 IdM 帐户相关联。您可以通过 运行 以下代码检查当前登录的用户是否具有关联的 IdM 令牌:MashupPlatform.context.get('fiware_token_available');
还有实验支持使用仪表板所有者的 OAuth2 令牌,而不是使用当前登录用户的 OAuth2 令牌。为此,请使用 workspaceowner
值添加 X-FI-WARE-OAuth-Source
header。
示例:
MashupPlatform.http.makeRequest(url, {
requestHeaders: {
"X-FI-WARE-OAuth-Token": "true",
"X-FI-WARE-OAuth-Header-Name": "X-Auth-Token",
"X-FI-WARE-OAuth-Source": "workspaceowner"
},
...
});
未来的考虑:
在生产环境中,出于安全原因,应使用 https 提供使用 OAuth2 身份验证的服务。因此,如果最终 URL 使用 https 模式,我们正在考虑将检查添加到 WireCloud 代理中,以便仅注入 OAuth2 令牌。唯一的例外可能是与 WireCloud 在同一内联网中可用的服务。