SAP PI/PO 使用OAuth 2.0 授权验证 ( REST Sender )

本文介绍了OAuth在PO中的应用,包括OAuth原理、RESTsenderCC设置、OAuth授权服务配置、获取和使用token以及后端管理,如重置和删除token。
摘要由CSDN通过智能技术生成

目录

一、引子

二、原理介绍

三、实战一下

1. 现有接口测试

2. REST sender CC 设置

3. OAuth授权服务配置

4. 接口测试:

4.1 获取token

4.2 调用业务接口

5. 后端管理

5.1 secret忘了,可以重新生成

5.2 删除过期token 或 删除指定token


一、引子

最近看到群里有小伙伴在问PO里怎么搞OAuth的登陆验证。突然想起REST adaptor里确实有一个checkbox是跟OAuth相关的,但一直也没怎么去研究过,就趁此机会搞一搞把。

二、原理介绍

OAuth原理其实蛮简单的,找了张图,能看得很清楚。概括性的讲,就是用户会被提供一个密钥。

1.用户在访问接口之前,需要先调用授权接口,传入密钥等参数,授权服务器会返回一个token。

2.用户在拿到token之后,方可正式访问业务接口,访问的同时传入step1拿到的token

至于NW内部的工作机制,看看下图基本就懂了。

三、实战一下

1. 现有接口测试

此时调用接口,会返回401授权错误

2. REST sender CC 设置

这里设置蛮简单的,只需要勾选对应的OAuth开关即可。(此时调用接口依然会报401 - Not Authorized)

3. OAuth授权服务配置

配置路径:

NWA->SOA->Monitoring->REST OAuth Server

值得注意的是老版本的NW不一定有这个菜单,需要先升级才会出现。

我这以前的7.50.22,没有这个菜单,BASIS直接升级到7.50.28之后就出现了。

创建客户端:

按照如下顺序进行操作,几个参数解释一下:

Client ID: 客户端名称,可以自定义命名规范

SAP NetWeaver User: 该用户是NW内部用来获取token的用户,可以用PO的标准用户

Secret: 客户端密码,这个很重要。生成后复制出来,需要提供给调用端的

Token Exporation: token有效期,默认3600秒。即调用端每次获取的token可以保持有效1个小时,这期间如果还需调用接口,直接用之前已获取的token就行了,不用再请求token了

Restrict to Specific Channels: 限制到指定接口,一般这个要勾上。表示该client仅对添加进来的指定接口才有效。

创建完之后,是这样的:

4. 接口测试:

4.1 获取token

调用地址是:http://:/RESTAdapter/OAuthServer

grant_type:client_credentials,固定值

client_id: 前一步“OAuth授权服务配置”中创建的客户端ID

client_secret:前一步“OAuth授权服务配置”中创建客户端ID时生成的密码

调用后拿到如下图的返回参数:

access_token: token,无需解释,调业务接口时要用

token_type: token类型,,调业务接口时要用

expires_in: token有效时常,此时间内token都有效,不用再获取token

4.2 调用业务接口

调用实际业务接口,在原来的基础之上,需要在header中增加参数:Authorization

Authorization = token_type + 空格 + access_token

根据4.1的返回消息,则为:Authorization = bearer UM0PZm8guF3Mvs9Q0xvJXdz3Bk5-Yxhqq-hiN3x

至此,算是测通了。

5. 后端管理

5.1 secret忘了,可以重新生成

5.2 删除过期token 或 删除指定token

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值