REST轮询:OAuth 2.0-令牌-401错误

2020-08-21 02:36发布

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

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


尊敬的专家,

我有一个场景REST发送方轮询-> PO 7.5-> IDoc接收器。

我的REST Sender适配器必须使用" OAuth 2.0 Grants类型流"连接到Microsoft CRM Dynamics 365。 我可以检索令牌,但是我的HTTP请求失败,错误401-未经授权。

使用Postman App,我可以进行连接。

我在SAP PO 7.5上的REST Polling Sender Adapter设置:

我使用XPI Inspector进行了追踪:

 HTTP_CLIENT:165请求:
 POST/*****.onmicrosoft.com/oauth2/token?resource=https://******.crm4.dynamics.com HTTP/1.1
 授权:基本MjdhO ******
 内容类型:application/x-www-form-urlencoded
 用户代理:SAP HttpClient v1.0
 主机:login.microsoftonline.com
 内容长度:29

 HTTP_CLIENT:165回复:
 HTTP/1.1 200 OK。

 HTTP_CLIENT:165回复:
 {" token_type":"承载者"," expires_in":" 3600"," ext_expires_in":" 0"," expires_on":" 1538140432"," not_before":" 1538136532",
 "资源":" 00000002-0000-0000-c000-000000000000",
 " access_token":" eyJ0eX *******

 HTTP_CLIENT:166请求:
 GET/api/data/v9.0/accounts?%24select=accountnumber&=eyJ0eX*******

 HTTP_CLIENT:166回复:
 HTTP/1.1 401未经授权..Cache-Control:私有
 内容类型:text/html
 服务器:Set-Cookie:ReqClientId = 5e5dc254-76d3-4580-aaf7-8c703338e195;
 expires =星期五,格林尼治标准时间2068年9月28日12:13:52; 路径=/; 安全;
 HttpOnlyWWW-Authenticate:承载authorization_uri = https://login.microsoftonline.com/db3ec******/oauth2/authorize,resource_id = https://******.crm4.dynamics.com/
 x-ms-service-request-id:44 *******
 REQ_ID:44 *******
 x身份验证票证:f66 ********
 Set-Cookie:ApplicationGatewayAffinity = 103f8 ********
 路径=/;域= *******。crm4.dynamics.com
 日期:2018年9月28日星期五12:13:52 GMT
 内容长度:49
 

对于我的令牌请求,我得到了200 OK。
我也得到了令牌,这很好。
但是我对帐户的HTTP请求:GET/api/data/v9.0/accounts? %24select = accountnumber&= eyJ0eX *******

正在收到401未经授权的回复!

我感觉我从令牌请求中收到的令牌未在我的HTTP请求中使用。 我最大的问号是HTTP标头:我在这里做错了。 谁知道如何设置HTTP标头?


谢谢你,
彼得

(28.2 kB)

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

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


尊敬的专家,

我有一个场景REST发送方轮询-> PO 7.5-> IDoc接收器。

我的REST Sender适配器必须使用" OAuth 2.0 Grants类型流"连接到Microsoft CRM Dynamics 365。 我可以检索令牌,但是我的HTTP请求失败,错误401-未经授权。

使用Postman App,我可以进行连接。

我在SAP PO 7.5上的REST Polling Sender Adapter设置:

我使用XPI Inspector进行了追踪:

 HTTP_CLIENT:165请求:
 POST/*****.onmicrosoft.com/oauth2/token?resource=https://******.crm4.dynamics.com HTTP/1.1
 授权:基本MjdhO ******
 内容类型:application/x-www-form-urlencoded
 用户代理:SAP HttpClient v1.0
 主机:login.microsoftonline.com
 内容长度:29

 HTTP_CLIENT:165回复:
 HTTP/1.1 200 OK。

 HTTP_CLIENT:165回复:
 {" token_type":"承载者"," expires_in":" 3600"," ext_expires_in":" 0"," expires_on":" 1538140432"," not_before":" 1538136532",
 "资源":" 00000002-0000-0000-c000-000000000000",
 " access_token":" eyJ0eX *******

 HTTP_CLIENT:166请求:
 GET/api/data/v9.0/accounts?%24select=accountnumber&=eyJ0eX*******

 HTTP_CLIENT:166回复:
 HTTP/1.1 401未经授权..Cache-Control:私有
 内容类型:text/html
 服务器:Set-Cookie:ReqClientId = 5e5dc254-76d3-4580-aaf7-8c703338e195;
 expires =星期五,格林尼治标准时间2068年9月28日12:13:52; 路径=/; 安全;
 HttpOnlyWWW-Authenticate:承载authorization_uri = https://login.microsoftonline.com/db3ec******/oauth2/authorize,resource_id = https://******.crm4.dynamics.com/
 x-ms-service-request-id:44 *******
 REQ_ID:44 *******
 x身份验证票证:f66 ********
 Set-Cookie:ApplicationGatewayAffinity = 103f8 ********
 路径=/;域= *******。crm4.dynamics.com
 日期:2018年9月28日星期五12:13:52 GMT
 内容长度:49
 

对于我的令牌请求,我得到了200 OK。
我也得到了令牌,这很好。
但是我对帐户的HTTP请求:GET/api/data/v9.0/accounts? %24select = accountnumber&= eyJ0eX *******

正在收到401未经授权的回复!

我感觉我从令牌请求中收到的令牌未在我的HTTP请求中使用。 我最大的问号是HTTP标头:我在这里做错了。 谁知道如何设置HTTP标头?


谢谢你,
彼得

(28.2 kB)
付费偷看设置
发送
17条回答
亦是此间程序员
1楼 · 2020-08-21 02:47.采纳回答

更新:对于对此感兴趣的任何人-我关闭了OSS票证,因为我们了解了如何设置REST轮询发送器:

我们必须改编"授权服务器URL"并同时使用"范围"。 通道现在正在工作,令牌已被目标服务器接受:

天桥码农
2楼-- · 2020-08-21 02:49

嗨,Simran,

听起来不错。 您能够使用SAP PI/PO进行发布?

关于彼得

jovirus
3楼-- · 2020-08-21 02:50

嗨彼得,

我能够发布通话。 有效载荷有问题。

非常感谢您的帮助!

此致

Simran

Aaron 3364
4楼-- · 2020-08-21 02:43

Simran Sandhu 我们也面临着 同样的问题,您能否提供CC配置快照,以便我们可以比较我们的配置并检查问题出在哪里。

哎,真难
5楼-- · 2020-08-21 02:40

Peter,

是的,使用PO 7.5 Receiver REST适配器。

问候

Simran

一周热门 更多>