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"并同时使用"范围"。 通道现在正在工作,令牌已被目标服务器接受:

compass1988
2楼-- · 2020-08-21 02:42

Hello Simran Sandhu,

您必须填写"范围"。 使用标签" REST URL"中具有的URL,例如 https://mytest.crm4。 dynamics.com
并添加" .default",因此看起来像这样:" https://mytest.crm4.dynamics.com/.default "。

这就是解决我问题的方法。

最好的问候,彼得

悠然的二货
3楼-- · 2020-08-21 02:44

嗨,彼得,

我有一个类似的场景,我想使用OAuth 2.0 Grants类型流程连接到D365 F&O系统。 我遇到以下错误:

服务器返回的代码:401

发生HTTP错误:未经授权

我尚未设置范围。 请您在下面查看我的配置:

何必丶何苦呢
4楼-- · 2020-08-21 02:47

你好西姆兰,

说实话,我不知道如何解决这个问题。 我记得我们为此工作了1周以解决。 我参加过许多与Dynamics 365顾问进行的电话会议,通读了文档等。我强烈建议与MS Azure/Dynamics顾问进行交谈。 另外,您是否尝试过与SOAP UI或Postman连接? 最好的问候,彼得

派大星 ヾ
5楼-- · 2020-08-21 03:01

谢谢您回复彼得!

我尝试在动态365 URL的末尾使用/.default。 但是然后我得到范围无效的错误。

此致

Simran

嗨,Simran,

请尝试使其与Postman 100%兼容,然后如Manoj所说,然后比较Postman和PI/PO的日志。 最好的问候,彼得

骆驼绵羊
7楼-- · 2020-08-21 02:44

嗨,彼得

是的,它与Postman一起使用。

从XPI_Inspector日志看来,该通道似乎已收到令牌。 但是在通过POST请求调用Dynamics URL时最终出现以下错误:

没有可用的审计密钥信息:发生HTTP错误:错误的请求

没有可用的审计密钥信息:服务器返回的代码:400

您以前见过吗?

此致

Simran

一周热门 更多>