溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ABAP Netweaver服務器的登錄方式是什么

發布時間:2021-12-29 16:49:18 來源:億速云 閱讀:179 作者:iii 欄目:服務器

這篇文章主要講解了“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服務器的登錄方式是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女