点击此处---> 群内免费提供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)
更新:对于对此感兴趣的任何人-我关闭了OSS票证,因为我们了解了如何设置REST轮询发送器:
我们必须改编"授权服务器URL"并同时使用"范围"。 通道现在正在工作,令牌已被目标服务器接受:
Hello Manoj,
对不起,我必须创建一个答案-注释"提交"按钮对我不起作用。
请注意,彼得
彼得,
您能否尝试更改参数以将访问令牌作为HTTP标头而不是查询参数发送给
我也想知道为什么在发送方REST池的情况下,SAP没有提供"附加参数"。/p>
我的情况与您的情况类似,但就我而言,它是接收者,这就是我现在可以正常使用的设置的方式。
Br,
Manoj
所以我们发现了Microsoft Azure期望" 令牌请求中的"资源"导致此问题。 根据Azure,"资源"应该在HTTP正文中而不是在查询字符串中发送。 我打开了OSS票证,SAP确认他们将为此提供补丁。 同时,我们将设置用于处理令牌的适配器模块。
Hello Manoj,
感谢您的帮助。 我现在在PO REST轮询通道中具有以下设置:
在邮递员中,我在GET中使用{{webapiurl}}。 该webapiurl在环境变量中设置。 我在POSTMAN中有一个按钮来手动请求新令牌,然后在我的GET调用中自动使用该按钮。
在PO中,令牌自动用于GET调用中,没有特殊设置。 我既不知道如何在POSTMAN中也不在PO中跟踪确切的HTTP标头。
你会知道我想念什么吗?
谢谢你,彼得
Hello Don Tan,
对不起,我的回答很晚。 我有以下内容:
授权服务器URL: https://login.microsoftonline.com/xxxxx.onmicrosoft.com/oauth2/v2.0/token
范围: https://test-che-xxxxx.crm4.dynamics.com/.default
我希望这对您有帮助,
彼得
嗨,彼得,
我与Microsoft Azure以及"资源"都有完全相同的问题。 您在"范围"字段中输入了什么? 是来自Auth Server URL的相同Microsoft登录URL,但没有tenantID吗?
一周热门 更多>