SCP CF工作流程-SCP CF ABAP OData服务的服务任务-XSRF令牌验证失败

2020-08-16 10:38发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好社区,

我们正在研究一个PoC,其中涉及SCP CF环境中的工作流服务与SCP CF(steampunk)中的ABAP环境连接。 我们遇到了由于XSRF令牌验证失败而无法完成服务任务的失败。 本质上,SCP CF Workflow服务无法调用/重定向到SCP CF ABAP OData v2服务并完成测试DELETE操作

这是场景:

  1. 内置了一个简单的OData v2服务。 它位于以下相对路径:/sap/opu/odata/sap/YSBTABLE; v = 0001。 服务端点是/SDTable,包含两个记录。 我们希望删除这些记录之一,以测试服务任务。 我们提供记录的关键。
  2. 在服务任务的目标位置,我们将ABAP环境的主机放置在SCP CF中:https://guid-removed.abap-web.us10.hana.ondemand.com/我们与Infra团队分开维护了沟通安排,如SAP帮助文档中所述。 为了允许SCP CF ABAP和SCP CF工作流相互集成。
  3. #2中的主机与#1中的端点串联在一起,指向有效的OData v2服务。
  4. 在服务任务的路径中,我们已将信息放在#1中:/sap/opu/odata/sap/YSBTABLE; v = 0001/SDTable($ {context.key})
  5. 在HTTP方法中,我们选择了DELETE
  6. 在XSRF令牌的路径中,我们放置了相对路径:/sap/opu/odata/sap/YSBTABLE; v = 0001。 在ABAP OData服务中,对此端点的HEAD请求会生成带有相应Fetch标头的XSRF令牌。

在构建和部署此业务情景时,我们在提供的Portal应用程序中启动工作流实例,并完成用户任务以按顺序执行服务任务。 当服务任务"完成"时,它将以错误状态返回,并带有响应文本XSRF令牌验证失败,并且以上#4中的记录不会被删除。

<已解决有关配置不正确的目标的问题,已修复配置。 无法从HEAD Request>

生成XSRF令牌

Web IDE

工作流程

我们希望能帮助您理顺此配置。 如果您需要其他信息,请告诉我们! 预先谢谢你!

(35.0 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好社区,

我们正在研究一个PoC,其中涉及SCP CF环境中的工作流服务与SCP CF(steampunk)中的ABAP环境连接。 我们遇到了由于XSRF令牌验证失败而无法完成服务任务的失败。 本质上,SCP CF Workflow服务无法调用/重定向到SCP CF ABAP OData v2服务并完成测试DELETE操作

这是场景:

  1. 内置了一个简单的OData v2服务。 它位于以下相对路径:/sap/opu/odata/sap/YSBTABLE; v = 0001。 服务端点是/SDTable,包含两个记录。 我们希望删除这些记录之一,以测试服务任务。 我们提供记录的关键。
  2. 在服务任务的目标位置,我们将ABAP环境的主机放置在SCP CF中:https://guid-removed.abap-web.us10.hana.ondemand.com/我们与Infra团队分开维护了沟通安排,如SAP帮助文档中所述。 为了允许SCP CF ABAP和SCP CF工作流相互集成。
  3. #2中的主机与#1中的端点串联在一起,指向有效的OData v2服务。
  4. 在服务任务的路径中,我们已将信息放在#1中:/sap/opu/odata/sap/YSBTABLE; v = 0001/SDTable($ {context.key})
  5. 在HTTP方法中,我们选择了DELETE
  6. 在XSRF令牌的路径中,我们放置了相对路径:/sap/opu/odata/sap/YSBTABLE; v = 0001。 在ABAP OData服务中,对此端点的HEAD请求会生成带有相应Fetch标头的XSRF令牌。

在构建和部署此业务情景时,我们在提供的Portal应用程序中启动工作流实例,并完成用户任务以按顺序执行服务任务。 当服务任务"完成"时,它将以错误状态返回,并带有响应文本XSRF令牌验证失败,并且以上#4中的记录不会被删除。

<已解决有关配置不正确的目标的问题,已修复配置。 无法从HEAD Request>

生成XSRF令牌

Web IDE

工作流程

我们希望能帮助您理顺此配置。 如果您需要其他信息,请告诉我们! 预先谢谢你!

(35.0 kB)
付费偷看设置
发送
3条回答
Haoba3210
1楼 · 2020-08-16 11:19.采纳回答

要解决此问题,我们必须完成SCP CF ABAP环境的通信安排和通信场景的设置。 在创建通信方案和安排,发布它并在SCP CF ABAP中对其进行配置后,此问题自行解决。

可以在此处找到正确配置和完整性的步骤:

https://developers.sap.com/tutorials/abap-environment-business-service-provisioning.html#849af707-0005-4c45-aefe-cdf82c1a755b
https://developers.sap.com/tutorials/abap-environment-communication-arrangement .html

大简至美
2楼-- · 2020-08-16 11:19

嗨,Tobias,

谢谢您的评论! 到目前为止,我无法在SCP CF ABAP环境中使用GET请求获得CSRF令牌。 如上图所示,只有对服务端点的HEAD Request会返回CSRF令牌。

我们已经在SCP CF ABAP中配置了主体传播,但是到目前为止,对于此PoC,我们已经使用通讯协议用户作为基本凭据的目标进行了身份验证。

当我们尝试从浏览器(而不是工作流程)尝试链接时,是的,我们确实获得了浏览器登录弹出窗口,因此这也可能与"通讯安排用户"相关。 我们将继续对此进行深入研究。

SAP小菜
3楼-- · 2020-08-16 11:23

嗨,斯科特,

您能否检查使用GET方法时在浏览器中获取CSRF令牌是否有效? 另外,我会尝试使用curl之类的命令行工具进行调用,因为在您的浏览器中,现有的Cookie可能会使您基于这些cookie登录,而不是基于目的地中的凭据登录。

那么您是否已在Steampunk系统上的某些日志中检查了CP工作流的CSRF调用是否已成功认证?

(我不知道在Steampunk系统中是否可以这样做)

有时,如果登录失败,则会返回登录表单页面,"好像有一个用户可以 填写"。 在这种情况下,没有CSRF令牌的HTTP 200页面返回到CP工作流程,您将看到错误消息。

此致

Tobias

一周热门 更多>