如何读写OAUTH访问令牌

2020-08-15 09:53发布

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

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


你好伴侣,

基本上,要求是从发送方REST轮询响应有效负载中获取访问令牌。

然后在运行时将访问令牌读写到NWA应用程序属性上。

这将帮助我避免多次API调用,并确实从应用程序属性中检索访问令牌,仅用于处理实际的业务接口。

请为此提供您宝贵的建议/意见。 还是有更好的方法来做到这一点。

期待。

非常感谢-Rajesh PS

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

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


你好伴侣,

基本上,要求是从发送方REST轮询响应有效负载中获取访问令牌。

然后在运行时将访问令牌读写到NWA应用程序属性上。

这将帮助我避免多次API调用,并确实从应用程序属性中检索访问令牌,仅用于处理实际的业务接口。

请为此提供您宝贵的建议/意见。 还是有更好的方法来做到这一点。

期待。

非常感谢-Rajesh PS

付费偷看设置
发送
14条回答
callcenter油条
1楼 · 2020-08-15 10:22.采纳回答

最后得到了一个OAuth标准解决方案,该解决方案可以按预期运行,并且确实不错。 这是在SAP PO 7.4 SPS16补丁15中实现的。

https://blogs.sap.com/2020/02/29/oauth-2.0-standard-solution-with-grant- 在ap-po-7.5中输入密码为最新更新/comment-page-1/#comment-497164

Cikesha
2楼-- · 2020-08-15 10:44

我从客户端通过使用PI REST轮询每20分钟轮询一次以获得访问令牌(因为访问令牌每30分钟过期一次),然后为发件人通信设置ATP。 频道每20分钟轮询一次新的访问令牌。

轮询输出如下:

{

" access_token":" eb1605ssdc5-f441-492b-978f-82b88a21ccb2",

"作用域":" givenName邮件随机数openid个人资料sn uid",

" token_type":"承载者",

" expires_in":1799

}

因此,一旦我获取了'access_token'并在ESR映射或自定义模块中,请调用自定义以使用访问令牌加载属性,并使用此访问令牌将其用于实际的业务接口调用。

# p#

嗨Rajesh,

请在下面的线程中检查此内容,这可能使您有所了解。

/img/questions/724549/passing-dynamic-oauth-token--api-key-in-header-of-.html

Bhaskar

clasier
3楼-- · 2020-08-15 10:31

嗨Rajesh,

您如何解决此问题。

我有完全相同的要求,并且需要您的帮助来解决此问题。

Haoba3210
4楼-- · 2020-08-15 10:29

您好,Rajesh,

能否请您详细分享此情况?

哎,真难
5楼-- · 2020-08-15 10:45

感谢Bhaskar。

但是我正在寻找某种自定义模块配置,以在运行时存储和检索访问令牌以及刷新令牌。

SAP砖家
6楼-- · 2020-08-15 10:27

Rajesh,

如果您的情况是(据我所知)

1.获取AccessToken(每30分钟过期一次)

2。 使用此AccessToken进行与API的实际数据交换,并且您不想调用1st tokenService(至少直到令牌到期)进行新的数据交换。

请分别找到以下评论:

[Option-01]

您可以设计直通方案(例如CONCUR Integrations)。 这将是SAPPO(单个堆栈)中的SOAP-to-REST(同步方案)。 在这里,您作为Web服务(WS)托管,将在ECC程序中使用。 该WS将依次与您的目标API交互。

在频道中使用变量(用于TargetURL,HTTP标头等,令牌)。

这些变量中的值应在调用代理类之前由报表程序填充。

您的ECC程序将根据您的businessData交换顺序多次调用相同的SAPPO服务,例如:

1。

第一个代表AccessToken(如果需要,此处为帧url,标题,TokenRequest,然后传递给代理。从Response,读取令牌)

2。 带有API的DataExchange 1(根据要求再次创建url,标头,请求,令牌等)

3。 具有API的DataExchange 2(根据要求再次创建url,标题,要求,令牌等)

这种顺序的数据交换可以使用相同的令牌至少持续30分钟。

[Option-02]

每隔25分钟从一个接口获取访问令牌,将其存储在ECCTable或带有DateTime Stamp的文件中。 其他接口(将与aPI进行数据交换)必须引用存储的令牌信息w.r.t。 它的触发时间和存储的令牌到期信息。

[Option-03]

在单一场景中,在REST-Receiver中,您每次使用数据传输都会消耗accesstoken API和第二数据交换API(如果不需要顺序数据传输)

或者使用博客链接中提供的以下JavaMap Program示例,其中调用了AccessToken API和2nd API进行数据交换,此处2nd API(函数名称SharePoint_WriteFile)可以循环调用多次

使用SAP PI Java Map在Sharepoint中发布pdf文件

感谢与问候,

Dilip

落灬小鱼
7楼-- · 2020-08-15 10:34

Hug Sugata,

这是场景:

我从客户端通过使用PI REST轮询每20分钟轮询一次以获得访问令牌(因为访问令牌每30分钟过期一次),然后为发件人通信设置ATP。 频道每20分钟轮询一次新的访问令牌。

轮询输出如下:

{

" access_token":" eb1605ssdc5-f441-492b-978f-82b88a21ccb2",

"作用域":" givenName邮件现时openid配置文件sn uid",

" token_type":"承载者",

" expires_in":1799

}

因此,一旦我获取了" access_token"并在ESR映射或自定义模块中,请调用自定义以使用访问令牌加载该属性,并使用此访问令牌将其用于实际的业务接口调用。

谢谢-Rajesh PS

一周热门 更多>