中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

如何理解SCPApplicationRouter-創(chuàng)新互聯(lián)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)如何理解SCP Application Router,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),九原企業(yè)網(wǎng)站建設(shè),九原品牌網(wǎng)站建設(shè),網(wǎng)站定制,九原網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,九原網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

    如何理解SCP Application Router

    簡(jiǎn)單解釋一下主要的參數(shù):

    Routes

    • source:可以是一個(gè)URL,也可以是一個(gè)正則表達(dá)式,定義了當(dāng)前的route是匹配什么樣的請(qǐng)求路徑

    • target: 當(dāng)前請(qǐng)求如何被重寫到目標(biāo)地址

    • destination: 當(dāng)前請(qǐng)求路由到manifest中的哪個(gè)目標(biāo)地址

    • authenticationType: 有三種選擇,xsuaa, none和basic,xsuaa和none分別代表了是否對(duì)當(dāng)前請(qǐng)求在App Router上做用戶安全認(rèn)證,下一節(jié)會(huì)具體介紹。Basic是和SAP HANA集成的時(shí)候提供默認(rèn)的安全驗(yàn)證支持。

    Destination

    • Name:用來跟xs-app.json中的destination配置相匹配

    • URL:目標(biāo)應(yīng)用程序真實(shí)的Clould Foundry地址

    • ForwardAuthToken: 如果請(qǐng)求中帶有oauth token,是否將oauth token轉(zhuǎn)發(fā)給目標(biāo)應(yīng)用程序. App Router也支持oauth token的部分校驗(yàn)功能,所以用戶也可以根據(jù)具體情況選擇不轉(zhuǎn)發(fā)oauth token,就在App Router端校驗(yàn)

    除了基本的路由功能,App Router還提供了豐富的Web應(yīng)用程序相關(guān)的功能支持,比如連接管理,session管理,擴(kuò)展http頭,跨域,Web Socket等等。

    App Router和SCP UAA的安全集成

    如上一節(jié)提到的,App Router在路由的時(shí)候提供了用戶的安全認(rèn)證支持。將路由的Authentication Type配置為xsuaa,App Router則會(huì)檢查前端發(fā)過來的請(qǐng)求是否帶有合法的session。如果沒有,App Router會(huì)將用戶導(dǎo)向SCP UAA的用戶認(rèn)證界面,當(dāng)用戶重新認(rèn)證成功之后,會(huì)生成新的合法session,并將此session返回給前端應(yīng)用程序。

    整個(gè)認(rèn)證的流程是是SCP App Router和SCP UAA協(xié)同完成的,SCP UAA是SAP對(duì)Cloud Foundry上提供的安全組件UAA (User Account and Authentication Service)的一個(gè)封裝,Cloud Foundry UAA是一個(gè)實(shí)現(xiàn)了標(biāo)準(zhǔn)Oauth 2.0協(xié)議的authorization server,SAP在此基礎(chǔ)上做了一些自定義的增強(qiáng),但是在接口上和原生的UAA保持了一致,這樣可以盡可能的對(duì)OAuth Client端程序提供兼容性。

    Cloud Foundry UAA官方文檔:

    https://docs.cloudfoundry.org/api/uaa/version/4.10.0/index.html#overview

    SCP標(biāo)準(zhǔn)的OAuth3.0流程:

    如何理解SCP Application Router

    如果熟悉OAuth3.0協(xié)議,從這張流程圖上很快就能看出App Router和UAA之間是通過Authorization Code Grant Flow來交互的,在交互過程中它們分別充當(dāng)了OAuth Client和OAuth Server的角色。

    關(guān)于OAuth3.0,請(qǐng)參見: https://oauth.net/2/

    看到這里您也許會(huì)問,為什么不是前端瀏覽器作為OAuth Client?除了安全性的考慮, App Router將OAuth流程對(duì)前端隱藏的另一個(gè)好處是,各種前端應(yīng)用程序不需要知道UAA上諸如Client ID, Client Secret的細(xì)節(jié),提供了更好的安全性。

    其次還有SAP在產(chǎn)品層面的考量,為了其標(biāo)準(zhǔn)的產(chǎn)品在UI技術(shù)上的一致性,包括SCP上的產(chǎn)品在內(nèi)大多數(shù)都是基于SAP UI5來構(gòu)建前端UI,而UI5又是基于HTML5技術(shù)而來,即這些產(chǎn)品都是基于瀏覽器的富客戶端應(yīng)用。如此一來,在標(biāo)準(zhǔn)的App Router里面實(shí)現(xiàn)OAuth3.0流程可以使SAP的各種前端應(yīng)用并不需要關(guān)注認(rèn)證流程的細(xì)節(jié)。如上圖所示,App Router在完成了認(rèn)證流程并最終拿到token之后,并沒有將token返回給瀏覽器端,而是在App Router上生成一個(gè)session,并且將session和token關(guān)聯(lián)起來,App Router在這里起到一個(gè)中介者的角色,對(duì)于前端統(tǒng)一用session進(jìn)行交互,對(duì)于后端統(tǒng)一用token進(jìn)行交互。

    SCP除了將標(biāo)準(zhǔn)的實(shí)現(xiàn)默認(rèn)支持瀏覽器端應(yīng)用程序外,作為一個(gè)開放的平臺(tái),當(dāng)然也支持移動(dòng)端原生應(yīng)用程序的集成,這里不作贅述,具體細(xì)節(jié)可以參考SCP的開發(fā)文檔。

    App Router上的session管理

    App Router上的session管理利用了Node.js的session-express框架,默認(rèn)將session緩存在instance memory中(下圖第79行):

    如何理解SCP Application Router

    然后采用session stickiness策略來保證在多實(shí)例部署的情況下,相同會(huì)話的請(qǐng)求會(huì)被發(fā)送到同一個(gè)實(shí)例上以保證會(huì)話能繼續(xù)進(jìn)行。

    Session Stickiness:

    https://stackoverflow.com/questions/10494431/sticky-and-non-sticky-sessions

    這樣做的好處是既利用了instance memory的高性能,也可以在一定程度上保證高可靠性。不過代價(jià)是犧牲了動(dòng)態(tài)伸縮的能力,一旦某個(gè)App Router實(shí)例上還有正在使用中的session,這個(gè)實(shí)例就不能被關(guān)閉。

    好在App Router使用的是開源的express-session框架,該框架并非只能將session存儲(chǔ)在instance memory中,在Node.js開源社區(qū)已經(jīng)提供了多種express-session的外部存儲(chǔ)方案。至少在技術(shù)上,可以將App Router提供的instance memory存儲(chǔ)替換為外部存儲(chǔ),而不需要做太多的定制化開發(fā),這樣一來多個(gè)App Router實(shí)例就可以共享同一套session存儲(chǔ)。

    App Router的可擴(kuò)展性

    只要說到SAP的產(chǎn)品,extensibility是一個(gè)不可避免的話題,這是由SAP的業(yè)務(wù)是面向企業(yè)級(jí)客戶這一特質(zhì)決定的。SAP也一直致力于從平臺(tái)到框架,再到上層的產(chǎn)品,盡可能多的給SAP客戶提供良好的可擴(kuò)展性。App Router同樣也不例外,因?yàn)橹苯邮褂昧薔ode.js的connect框架,這是一款本身就提供了豐富擴(kuò)展的中間件框架,可以通過可插拔的方式對(duì)Node.js的請(qǐng)求和響應(yīng)提供過濾和攔截,具體大家可以參考connect的主頁。

    App Router基于connect,當(dāng)然App Router的用戶就可以直接獲得connect提供的各種中間件,除此之外App Router還提供了自己的一些中間件:

    如何理解SCP Application Router

    是不是非常簡(jiǎn)單和直接?使用這些中間件而不需要修改原生App Router里面的代碼。

    這里不再對(duì)App Router上的各種中間件一一贅述。

    總結(jié)說來,App Router是一款設(shè)計(jì)簡(jiǎn)單,使用方便,提供了良好可擴(kuò)展性的反向代理組件,為廣大SAP用戶在SCP上開發(fā)應(yīng)用程序提供了更多的選擇和方便。

    上述就是小編為大家分享的如何理解SCP Application Router了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

當(dāng)前名稱:如何理解SCPApplicationRouter-創(chuàng)新互聯(lián)
鏈接URL:http://www.rwnh.cn/article22/cepicc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站收錄、網(wǎng)站改版做網(wǎng)站、標(biāo)簽優(yōu)化虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
苗栗市| 清远市| 肥西县| 彰武县| 长阳| 嘉义市| 兰西县| 仪陇县| 辽源市| 旺苍县| 门头沟区| 嘉义市| 上饶市| 绵阳市| 抚宁县| 灵台县| 凤台县| 原平市| 浦北县| 塘沽区| 宝鸡市| 阳新县| 义乌市| 布拖县| 通化县| 屏山县| 淮南市| 北安市| 军事| 连平县| 神木县| 沂水县| 广宁县| 射阳县| 营山县| 嘉善县| 太原市| 抚宁县| 响水县| 夹江县| 吉安县|