文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

ABAP Netweaver服务器的登录方式是什么

2023-06-03 18:29

关注

这篇文章主要讲解了“ABAP Netweaver服务器的登录方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ABAP Netweaver服务器的登录方式是什么”吧!

我们在事务码SICF里随便打开一个节点,在标签页Logon Data里发现Procedure这个字段,设置的默认值为Standard,按F1可以查看帮助文档。

ABAP Netweaver服务器的登录方式是什么

文档提到,当Procedure设置为Standard时,登录验证将会通过下面的顺序进行:

ABAP Netweaver服务器的登录方式是什么

(1) Logon using HTTP fields (2) Logon with SSL certificates (3) Logon using SAP Logon Ticket (SSO) (4) HTTP Basic Authentication (5) Logon using SAP user password (SAP RFC logon) (6) Logon using SAML (7) Logon using user data stored in the service

下面我们就通过一些具体的例子,来理解这些不同的登录方式是如何进行的。

例如直接在浏览器里打开某Web Service的WSDL url:

http://:50078/sap/bc/srt/wsdl/flv_10002A111AD1/bndg_url/sap/bc/srt/rfc/sap/zws_add/506/zjerry1/jerry1?sap-client=506

输入url敲回车,我能看到期望中的WSDL内容。然而我还观察到了一些有趣的现象:地址栏里的http自动被转换成了https,同时工具HTTP Watch里观察到了一个HTTP 307重定向。

ABAP Netweaver服务器的登录方式是什么

这个从HTTP协议端口50078自动重定向到HTTPS端口44378的行为,定义在事务码SMICM的参数里:

ABAP Netweaver服务器的登录方式是什么

也可以通过事务码RZ11,查看参数icm/HTTP/redirect_0的值。

ABAP Netweaver服务器的登录方式是什么

然而,此时我根本没有指定任何用户名和密码,为什么我可以成功看到部署在ABAP Netweaver服务器上,需要通过登录认证后才能访问的资源?

这就是标准登录方式之一的Logon using SAP Logon Ticket (SSO-单点登录)在起作用。

摘录一段SAP帮助文档里对Logon using SAP Logon Ticket (SSO)的说明:

Logon using SAP Logon Ticket (MYSAPSSO2 cookie field). If no logon data is transferred as form fields or header fields, the system then tries to log on using a logon ticket. To enable this, the cookie field MYSAPSSO2 must be set.

用HTTP Watch(Chrome开发者工具也行)观察我访问WSDL发起的HTTP请求,果然发现了一个名为MYSAPSSO2的cookie,这是我之前成功登录服务器之后,服务器颁发给客户端的logon ticket. 登录成功之后,接下来每次再访问同一服务器时,浏览器都会自动将该cookie设置到HTTP请求里,达到无需用户显式提供登录信息,也能成功访问服务器资源的目的。

ABAP Netweaver服务器的登录方式是什么

当我将这个MYSAPSSO2 cookie清除之后,再次访问同一资源,又看到了久违的让我输入用户名和密码的弹出对话框。

ABAP Netweaver服务器的登录方式是什么

这次输入用户名和密码之后,再次看到了WSDL内容,然而此次成功登录,采用的方式不是之前的MYSAPSSO2 Logon Ticket,而是基于用户名和密码的Basic Authentication方式(下图蓝色高亮区域)。

注意到下图绿色高亮区域的set-cookie:用户成功登录后,服务器颁发的MYSAPSSO2 cookie,通过HTTP响应的set-cookie字段, 返回给浏览器。下一次浏览器再访问该资源时,会自动在HTTP请求里带上该cookie字段,又重新使用MYSAPSSO2 Logon Ticket的方式进行登录认证了。

ABAP Netweaver服务器的登录方式是什么

下面是几种通过ABAP代码来访问Netweaver服务器资源时,如何指定登录认证信息的例子。

例1:ABAP代码里未提供任何登录认证信息

ABAP Netweaver服务器的登录方式是什么

SAPGUI里执行上图的ABAP代码,会遇到一个弹出对话框,只有手动输入用户名和密码,该代码才能顺利取回资源。

ABAP Netweaver服务器的登录方式是什么

如果添加一行代码:

lo_http_client->propertytype_logon_popup = if_http_client=>co_disabled.

可以阻止用户名和密码输入的对话框弹出,但此时服务器会直接返回HTTP 401 Unauthorized Error:

ABAP Netweaver服务器的登录方式是什么

例2:在ABAP程序里提供用户名和密码的几种方式

可以通过如下方式提供明文的用户名和密码:

ABAP Netweaver服务器的登录方式是什么

也可以在事务码SM59里创建一个类型为H:HTTP Connection to ABAP System的Destination:

ABAP Netweaver服务器的登录方式是什么

将用户名和密码维护到这个Destination的Logon & Security页面的对应字段去:

ABAP Netweaver服务器的登录方式是什么

然后基于这个Destination创建cl_http_client的实例。这种方式安全性比在代码里直接明文指定用户名和密码要好一些。

ABAP Netweaver服务器的登录方式是什么

当然我也试过,将MYSAPSSO2的cookie值拷贝出来:

ABAP Netweaver服务器的登录方式是什么

直接通过set_cookie方法设置给cl_http_client的实例,一样可以成功访问系统里的资源。

ABAP Netweaver服务器的登录方式是什么

感谢各位的阅读,以上就是“ABAP Netweaver服务器的登录方式是什么”的内容了,经过本文的学习后,相信大家对ABAP Netweaver服务器的登录方式是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯