CSRF令牌验证失败-403禁止通过PUT调用Hybris API_MKT_CONTACT_SRV

2020-09-18 01:48发布

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

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


人们好,

我有一个通过CAL设置的Hybris系统1709。 没有填充与Hybris相关的数据。 所以我试图创建一个联系人。

我正在使用API​​_MKT_CONTACT_SRV服务。

我正在使用标题中的X-csrf-token = fetch进行获取。

然后,我使用返回的x-csrf令牌使用PUT发布联系人:

http://myIP:myPort/sap/opu/odata/sap/API_MKT_CONTACT_SRV; v = 0002/联系人

这里是我正在使用的JSON,来自如何通过约翰内斯·赫林

 {
 " batchParts":{
 " batchChangeSet":{
 " batchChangeSetPart":{
 " method":" PUT",
 " ContactOriginData":{
 " ContactOriginData":{
 " LastName":" Test",
 " FirstName":" Tom",
 " EmailAddress":" JHI_001@test.com",
 " Country":" US",
 " ContactPostalCode":" 60611",
 " ContactOrigin":" SAP_ERP_CONTACT",
 " ContactID":" JHI_001",
 " CityName":"芝加哥",
 "出生日期":" 2000-12-13",
 " OriginDataLastChgUTCDateTime":" 0000-00-00T00:00:00"
 }
 }
 }
 }
 }
 }
 

我在这里传递了x-csrf令牌

响应头:

任何帮助将不胜感激。

谢谢

周杰伦

(91.3 kB)

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

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


人们好,

我有一个通过CAL设置的Hybris系统1709。 没有填充与Hybris相关的数据。 所以我试图创建一个联系人。

我正在使用API​​_MKT_CONTACT_SRV服务。

我正在使用标题中的X-csrf-token = fetch进行获取。

然后,我使用返回的x-csrf令牌使用PUT发布联系人:

http://myIP:myPort/sap/opu/odata/sap/API_MKT_CONTACT_SRV; v = 0002/联系人

这里是我正在使用的JSON,来自如何通过约翰内斯·赫林

 {
 " batchParts":{
 " batchChangeSet":{
 " batchChangeSetPart":{
 " method":" PUT",
 " ContactOriginData":{
 " ContactOriginData":{
 " LastName":" Test",
 " FirstName":" Tom",
 " EmailAddress":" JHI_001@test.com",
 " Country":" US",
 " ContactPostalCode":" 60611",
 " ContactOrigin":" SAP_ERP_CONTACT",
 " ContactID":" JHI_001",
 " CityName":"芝加哥",
 "出生日期":" 2000-12-13",
 " OriginDataLastChgUTCDateTime":" 0000-00-00T00:00:00"
 }
 }
 }
 }
 }
 }
 

我在这里传递了x-csrf令牌

响应头:

任何帮助将不胜感激。

谢谢

周杰伦

(91.3 kB)
付费偷看设置
发送
2条回答
CPLASF-自律
1楼 · 2020-09-18 02:52.采纳回答

杰伊,你好

https://blogs.sap.com/2018/04/02/how-to-import-contact- 数据通过odata服务到树汁混合动力营销/comment-page-1/#comments#comment-436002

  • /联系人仅支持GET方法。
    要创建新联系人或更新联系人,请使用ContactOriginData
  • 博客文章中的请求是使用CPI OData适配器的CPI示例。
    当启用页面处理时,CPI OData适配器会自动在适配器中转换为批处理请求。
  • 要创建联系人,请使用ContactOriginData和POST并在batchChangeSetPart中指定方法(PUT或PATCH)。
    直接向SAP Marketing Cloud OData Services请求的有效负载示例可在此处找到: https://help.sap.com/viewer/0f9408e4921e4ba3bb4805 -US/06526bdbae42455ba69a4aef0750561b.html

对于csrf验证错误。

通过响应,您将获得令牌和cookie。 两者都需要与请求一起提交。

set-cookie→SAP_SESSIONID_E4T_100 = ZhvXja66yahG23SyyydcmPcLgySx1hHou4kCAAobqKg%3d; 路径=/; 安全; HttpOnly

x-csrf令牌→AGh8wYvtk8wGDRez5W6w-Q ==

示例POST请求

 POST/sap/opu/odata/sap/API_MKT_CONTACT_SRV/$ batch HTTP/1.1
 主持人:
 x-csrf令牌:AGh8wYvtk8wGDRez5W6w-Q ==
 内容类型:多部分/混合;边界=批处理
 Cookie:SAP_SESSIONID_E4T_100 = ZhvXja66yahG23SyyydcmPcLgySx1hHou4kCAAobqKg%3d

  - 批量
 内容类型:多部分/混合;  boundary = changeset_1


 --changeset_1
 内容类型:application/http
 内容传输编码:二进制


 PUT ContactOriginData(ContactID ='JHI_000',ContactOrigin ='SAP_HYBRIS_CONSUMER')HTTP/1.1
 接受:application/json
 Sap-Cuan-RequestTimestamp:'2018-06-01T13:00:00'
 Sap-Cuan-SourceSystemType:邮递员
 Sap-Cuan-SourceSystemId:EXT
 内容类型:application/json


 {
 " OriginDataLastChgUTCDateTime":" 2018-06-01T13:00:00",
 " CityName":"芝加哥",
 "国家":"美国",
 " EmailAddress":" DonDummy@test.com",
 " FirstName":" Don",
 " LastName":" Dummy",
 " IsConsumer":否,
 " IsContactPerson":是的,
 " Language":" EN",
 " MobileNumber":" + 49119201412191"
 }


 --changeset_1--
  - 批量 - 
  


希望这会有所帮助。

br

约翰内斯

派大星 ヾ
2楼-- · 2020-09-18 02:32

遇到此问题的任何人,请确保已在SAP系统上正确完成SSL设置。 默认情况下,您需要使用HTTPS才能使用x-csrf-token功能。 因此,您需要在客户端证书存储区中安装服务器证书。

如果要在不使用HTTPS和csrf令牌的情况下测试功能,只需在SICF中使用该服务,然后将〜CHECK_CSRF_TOKEN设置为0。


请查看SAP note摘录-1896961-SAP NetWeaver Gateway的HTTP/HTTPS配置

使用HTTP

 使用HTTP时CSRF令牌处理的必要设置

 为了保护跨站点请求伪造攻击(CSRF或XSRF),SAP NW Gateway还支持CSRF令牌处理,并在OData使用者(HTTP/HTTPS客户端)要求时返回CSRF令牌。 另一方面,此CRSF令牌也必须受到保护。 因此,默认情况下,仅在使用HTTPS时才发送此令牌。 默认设置:实例配置文件参数" login/ticket_only_by_https"设置为1。使用HTTP时,必须要求系统管理员将实例配置文件参数" login/ticket_only_by_https"设置为0。否则,SAP NW Gateway集线器系统会 不提供CSRF令牌,并且由于无效的CSRF令牌,下一个修改操作(如POST,PUT,MERGE或DELETE)将以HTTP状态代码403终止。

 确保此设置仅适用于内部测试系统,因为它存在很高的安全风险!

 停用"将HTTP重定向到HTTPS"以使用HTTP

 通常,如果出于安全原因将SAP NW Gateway集线器系统配置为支持SSL,则系统管理员还将其配置为自动将所有HTTP请求重定向到HTTPS,以完全保护系统。 重定向设置由实例配置文件参数" icm/HTTP/redirect_xx"完成。 如果要使用HTTP进行测试,则必须要求系统管理员删除此重定向设置。

 如上所述,请不要忘记将实例配置文件参数" login/ticket_only_by_https"设置为0。
 

此致

Jay

一周热门 更多>