您好,登錄后才能下訂單哦!
這篇文章主要講解了“ABAP Netweaver服務(wù)器的登錄方式是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“ABAP Netweaver服務(wù)器的登錄方式是什么”吧!
我們在事務(wù)碼SICF里隨便打開一個(gè)節(jié)點(diǎn),在標(biāo)簽頁Logon Data里發(fā)現(xiàn)Procedure這個(gè)字段,設(shè)置的默認(rèn)值為Standard,按F1可以查看幫助文檔。
文檔提到,當(dāng)Procedure設(shè)置為Standard時(shí),登錄驗(yàn)證將會通過下面的順序進(jìn)行:
(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
下面我們就通過一些具體的例子,來理解這些不同的登錄方式是如何進(jìn)行的。
例如直接在瀏覽器里打開某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內(nèi)容。然而我還觀察到了一些有趣的現(xiàn)象:地址欄里的http自動(dòng)被轉(zhuǎn)換成了https,同時(shí)工具HTTP Watch里觀察到了一個(gè)HTTP 307重定向。
這個(gè)從HTTP協(xié)議端口50078自動(dòng)重定向到HTTPS端口44378的行為,定義在事務(wù)碼SMICM的參數(shù)里:
也可以通過事務(wù)碼RZ11,查看參數(shù)icm/HTTP/redirect_0的值。
然而,此時(shí)我根本沒有指定任何用戶名和密碼,為什么我可以成功看到部署在ABAP Netweaver服務(wù)器上,需要通過登錄認(rèn)證后才能訪問的資源?
這就是標(biāo)準(zhǔn)登錄方式之一的Logon using SAP Logon Ticket (SSO-單點(diǎn)登錄)在起作用。
摘錄一段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開發(fā)者工具也行)觀察我訪問WSDL發(fā)起的HTTP請求,果然發(fā)現(xiàn)了一個(gè)名為MYSAPSSO2的cookie,這是我之前成功登錄服務(wù)器之后,服務(wù)器頒發(fā)給客戶端的logon ticket. 登錄成功之后,接下來每次再訪問同一服務(wù)器時(shí),瀏覽器都會自動(dòng)將該cookie設(shè)置到HTTP請求里,達(dá)到無需用戶顯式提供登錄信息,也能成功訪問服務(wù)器資源的目的。
當(dāng)我將這個(gè)MYSAPSSO2 cookie清除之后,再次訪問同一資源,又看到了久違的讓我輸入用戶名和密碼的彈出對話框。
這次輸入用戶名和密碼之后,再次看到了WSDL內(nèi)容,然而此次成功登錄,采用的方式不是之前的MYSAPSSO2 Logon Ticket,而是基于用戶名和密碼的Basic Authentication方式(下圖藍(lán)色高亮區(qū)域)。
注意到下圖綠色高亮區(qū)域的set-cookie:用戶成功登錄后,服務(wù)器頒發(fā)的MYSAPSSO2 cookie,通過HTTP響應(yīng)的set-cookie字段, 返回給瀏覽器。下一次瀏覽器再訪問該資源時(shí),會自動(dòng)在HTTP請求里帶上該cookie字段,又重新使用MYSAPSSO2 Logon Ticket的方式進(jìn)行登錄認(rèn)證了。
下面是幾種通過ABAP代碼來訪問Netweaver服務(wù)器資源時(shí),如何指定登錄認(rèn)證信息的例子。
SAPGUI里執(zhí)行上圖的ABAP代碼,會遇到一個(gè)彈出對話框,只有手動(dòng)輸入用戶名和密碼,該代碼才能順利取回資源。
如果添加一行代碼:
lo_http_client->propertytype_logon_popup = if_http_client=>co_disabled.
可以阻止用戶名和密碼輸入的對話框彈出,但此時(shí)服務(wù)器會直接返回HTTP 401 Unauthorized Error:
可以通過如下方式提供明文的用戶名和密碼:
也可以在事務(wù)碼SM59里創(chuàng)建一個(gè)類型為H:HTTP Connection to ABAP System的Destination:
將用戶名和密碼維護(hù)到這個(gè)Destination的Logon & Security頁面的對應(yīng)字段去:
然后基于這個(gè)Destination創(chuàng)建cl_http_client的實(shí)例。這種方式安全性比在代碼里直接明文指定用戶名和密碼要好一些。
當(dāng)然我也試過,將MYSAPSSO2的cookie值拷貝出來:
直接通過set_cookie方法設(shè)置給cl_http_client的實(shí)例,一樣可以成功訪問系統(tǒng)里的資源。
感謝各位的閱讀,以上就是“ABAP Netweaver服務(wù)器的登錄方式是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對ABAP Netweaver服務(wù)器的登錄方式是什么這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。