应用程序可以从 Business Application Studio 访问外部 API,但不能从 Workzone Launchpad 访问外部 API

App can access external API from Business Application Studio but not from Workzone Launchpad

提问人:Athul Ram 提问时间:7/24/2023 最后编辑:Sandra RossiAthul Ram 更新时间:8/3/2023 访问量:158

问:

我正在尝试通过Cloud Foundry中的目标调用Microsoft图形API令牌检索端点。当我通过 AJAX Post 从 Business Application Studio 中的应用程序进行调用时,请求工作正常,并且返回了持有者令牌。

当我在 Workzone 启动板中运行相同的请求时,相同的请求失败:

403 禁止

在从托管应用程序路由器中的应用程序路径获取请求后,我尝试将其传递给请求。这在外部 API 请求的情况下无效吗?X-Csrf-Token

如何获取此特定请求?X-csrf-Token

destination configuration

403

SAPUI5 技术平台SAP 云代工SAP 业务应用工作室

评论


答:

0赞 ETZ 8/3/2023 #1

在 Workzone 启动板的上下文中,获取和传递 X-Csrf-Token 的过程可能与当前在 Business Application Studio 中执行的操作不同。X-Csrf-Token 用于防止跨站点请求伪造 (CSRF) 攻击,特定于 SAP 系统。

要在 Workzone 启动板中获取请求的 X-Csrf-Token,您需要对目标 URL 执行预检请求 (OPTIONS),服务器将在响应标头中使用 X-Csrf-Token 进行响应。然后,您可以从响应中提取令牌,并将其作为标头包含在后续的 AJAX POST 请求中。

下面是这些步骤的高级概述:

  1. 从 Workzone 启动板向 API 端点 URL 发出 OPTIONS 请求。
  2. 从响应标头中提取 X-Csrf-Token。
  3. 在对 Microsoft 图形 API 令牌检索终结点的后续 AJAX POST 请求中,将获取的令牌用作标头 (X-Csrf-Token)。

请记住处理在此过程中可能出现的任何身份验证或 CORS 相关问题。

注意:必须查看并理解正确处理 CSRF 令牌的安全隐患,以确保应用程序的安全性。