SAP DataServices-WebService授权

2020-09-05 04:27发布

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

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


你好

我已经在创建的存储库中创建了实时服务,并使用SAP Data Services Desginer/SAP Data Services管理控制台将其作为WebService发布。 我已经通过SOAPui测试了它,并且工作正常。

问题是,如何通过用户名和密码授权呼叫? 我想在从调用者到DataServices存储库的过程中增加某种程度的安全性。

是否可以设置以下授权:

用户名:Gama01

->能够在存储库1中调用WebService

用户名:Gama02

->可以在存储库2中调用WebService,但不能在存储库1中调用WebService吗?

第三方调用Web服务的第一步是LOGON(来自Connection_operations),它为调用者提供了一个会话ID(因为他使用的是用户名和密码),但是会话ID并不能帮助确保安全吗? ..因为他有一个会话ID,所以他可以调用任何Web服务。 (如果他知道名字,那就是安全问题)。

如何在数据服务级别上确保此安全? ..

最好的问候

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

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


你好

我已经在创建的存储库中创建了实时服务,并使用SAP Data Services Desginer/SAP Data Services管理控制台将其作为WebService发布。 我已经通过SOAPui测试了它,并且工作正常。

问题是,如何通过用户名和密码授权呼叫? 我想在从调用者到DataServices存储库的过程中增加某种程度的安全性。

是否可以设置以下授权:

用户名:Gama01

->能够在存储库1中调用WebService

用户名:Gama02

->可以在存储库2中调用WebService,但不能在存储库1中调用WebService吗?

第三方调用Web服务的第一步是LOGON(来自Connection_operations),它为调用者提供了一个会话ID(因为他使用的是用户名和密码),但是会话ID并不能帮助确保安全吗? ..因为他有一个会话ID,所以他可以调用任何Web服务。 (如果他知道名字,那就是安全问题)。

如何在数据服务级别上确保此安全? ..

最好的问候

付费偷看设置
发送
4条回答
何必丶何苦呢
1楼 · 2020-09-05 04:41.采纳回答

你好 Jan Kotrc

您可以尝试使用基于用户和他尝试访问的存储库定义的自定义规则来构建Web服务启动客户端。 您可以使用任何编程语言来构建Web服务启动客户端。

我最近用Java构建了一个程序,以使用Web服务启动BODS作业。

您可以定义以下提到的步骤

要求:

有2个存储库Rep-A和Rep-B,以及2个用户User-A和User-B。 用户A只能从Rep-A调用网络服务,而用户B只能从Rep-B调用网络服务

步骤:

  • Web服务启动客户端将接受UserId,存储库和Webservice作为输入进行调用
  • Web服务启动客户端使用WSDL使用User-A调用LogOn Web服务并获取会话ID
  • 现在定义一个简单的条件来验证用户和存储库
如果{UserId = User-A和Repository = Rep-A}
        从Rep-A启动Web服务

 其他
        退出并显示错误消息"用户A无法访问Rep……" 

使用SoapUI可能无法执行此操作。 您可以尝试使用任何编程语言来构建客户端。

我更喜欢Java,因为它已经具有多个内置库来处理Web服务。

谢谢

Vinayak

jovirus
2楼-- · 2020-09-05 04:45

正如您正确提到的,webservice客户端绝不应向客户公开任何敏感的细节,例如完整的WSDL,凭据。

祝你有美好的一天!

软件心理学工程师
3楼-- · 2020-09-05 04:42

你好,

如何在CMC中定义存储库上的用户安全性?

用户名:Gama01 >>只能访问Repository1,因此只能从Repository1调用Web服务。

天桥码农
4楼-- · 2020-09-05 04:58

你好,

这将限制对该用户的访问,该用户可以直接访问SAP Data Services Designer。 一切正常。

但是,如果您调用WebService,则只需要一个WSDL。

您可以在类似SOAPui的工具中测试调用(调用)此WebService。

将WSDL加载到SOAPui中时,您将获得WSDL携带的所有方法。.

要通过SAP数据服务成功调用Web服务并启用安全会话,您必须调用以下步骤:

从" Connection_Operations"组中:

1。 登录-输入用户名和密码,输出-您将获得SessionID!

在"实时服务"组中-您调用WebService

2。 WS_GetBPDetails(用于测试WebService的随机名称)-输入仅为SessionID! 输出-此WebService的目标是什么

来自" Connection_Operations"组:。

3。 注销-输入再次为SessionID,以关闭呼叫和SAP Data Services中的会话。

因此,从此过程中,我们可以看到USER-A仅具有存储库-A而不具有存储库B的登录权限。 用户B具有相同的权限,但已切换-拥有存储库B的权限,但没有存储库A的权限。

当用户A从存储库A调用Web服务时,他必须调用登录操作以获取SessionID,现在他拥有在存储库B中调用WebService所需的全部信息。

我有2个存储库,分别为USER-A和USER-B设置了授权。 如果我尝试使用USER-A直接访问存储库B,这意味着登录到SAP DS Designer(存储库B),我将不会获得授权,也无法进入存储库。 但是,如果我只想调用存储库中的WebService,我所需要的只是WSDL和SessionID的全名。 我将通过从存储库调用WebService来获取SessionID-我可以访问它,然后,如果我以某种方式知道WSDL的完整链接,则可以从每个存储库调用其他所有WSDL。

您对此有何看法?

我曾考虑为存储库设置更多的访问服务器(+ JobServer),以提高安全性。

最好的问候

一周热门 更多>