TWI676912B - 程式介面安全防護與即時格式轉換系統及方法 - Google Patents
程式介面安全防護與即時格式轉換系統及方法 Download PDFInfo
- Publication number
- TWI676912B TWI676912B TW106139058A TW106139058A TWI676912B TW I676912 B TWI676912 B TW I676912B TW 106139058 A TW106139058 A TW 106139058A TW 106139058 A TW106139058 A TW 106139058A TW I676912 B TWI676912 B TW I676912B
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- conversion
- program interface
- data
- format conversion
- Prior art date
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本發明提供一種程式介面安全防護與即時格式轉換的方法及其系統,其係利用角色為基礎的存取控制,而依照遠端位址、超文件傳送協定方法、網址樣式等條件給予不同角色權限,若角色權限未被授權,則應用程式介面服務之存取將遭到攔截。另外,根據角色進行不同的鍵-值格式轉換,進而達到欄位級資料保護,對輸入與輸出格式給予以置換與隔離,使得應用程式介面服務能獲得保護。
Description
本發明是有關於一種應用程式介面(Application Programming Interface,API),且特別是有關於一種程式介面安全防護與即時格式轉換系統及方法。
在現代人的一天當中,各式各樣生活或工作大小事都可能透過網路互連來完成,因而促使許多企業積極開發並提供多樣化的應用程式介面(API)服務。雖然這些API服務功能與現有網站系統十分雷同,但卻因為了達成快速提供服務之目的,這些API通常不受保護,或是僅受基本的帳號密碼檢查來保護,從而造成未被授權的功能被有心人士存取使用。此外,為了全面確保所有API服務的安全,通常必須個別針對不同的API服務分別開發對應安全防護機制,不僅開發不易,維運成本更可能壓得業者喘不過氣。
有鑑於此,本發明提供一種程式介面安全防護與即時格式轉換系統及方法,透過角色權限機制管控,並搭配資料格式轉換,使API服務能受到多重防護。
本發明的程式介面安全防護與即時格式轉換系統,其包括網路單元、儲存單元及處理單元。網路單元接收超文件傳送協定(Hypertext Transfer Protocol,HTTP)標頭資料,而此HTTP標頭資料包括符記(token)。儲存單元記錄數個軟體單元。處理單元,耦接網路單元及儲存單元,且存取並載入儲存單元所記錄的那些軟體單元。那些軟體單元包括帳號權限管理單元、授權單元、鍵-值(key-value)格式轉換單元、以及鍵-值轉換代理連線單元。帳號權限管理單元依據符記取得對應角色權限。授權單元驗證符記是否合法,並將HTTP標頭資料比對角色權限以確認是否具有存取權限。而若具有存取權限,鍵-值格式轉換單元將此HTTP標頭資料之要求資料進行轉換。鍵-值轉換代理連線單元將轉換之該要求資料發送至應用程式介面提供系統。當鍵-值轉換代理連線單元接收到應用程式介面提供系統之回應時,鍵-值格式轉換單元轉換回應並透過網路單元傳送轉換之回應。
而本發明的程式介面安全防護與即時格式轉換方法,其包括下列步驟。自要求設備接收HTTP標頭資料,而此HTTP標頭資料包括符記。依據符記取得對應角色權限。將HTTP標頭資
料比對角色權限,以確認是否能將HTTP標頭資料之要求資料進行轉換。將轉換之要求資料發送至應用程式介面提供系統。當接收到應用程式介面提供系統之回應時,轉換回應並傳送轉換之回應至要求設備。
基於上述,本發明實施例利用角色為基礎的存取控制(Role-Based Access Control,RBAC),依據角色權限決定是否拒絕API服務之存取,並透過格式轉換對輸入及輸出資料之格式施予置換及隔離,使API服務受到保護。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
1‧‧‧程式介面安全防護與即時格式轉換系統
100‧‧‧處理單元
110‧‧‧要求設備
200‧‧‧儲存單元
201‧‧‧認證單元
202‧‧‧授權單元
203‧‧‧資料存取單元
204‧‧‧帳號權限管理單元
205‧‧‧反向代理對應管理單元
206‧‧‧鍵-值轉換規格管理單元
207‧‧‧鍵-值轉換代理連線單元
208‧‧‧無轉換代理連線單元
209‧‧‧鍵-值格式轉換單元
3‧‧‧資料庫
300‧‧‧網路單元
4‧‧‧應用程式介面提供系統
S210~S260、S301~S312‧‧‧步驟
圖1是依據本發明一實施例之通訊架構的示意圖。
圖2是依據本發明一實施例之授權單元的運作流程圖。
圖3是依據本發明一實施例之鍵-值格式轉換單元的運作流程圖。
圖1是依據本發明一實施例之通訊架構的示意圖。請參照圖1,此通訊架構包括程式介面安全防護與即時格式轉換系統1、資料庫3、應用程式介面提供系統4及一台或更多台要求設備
110。
程式介面安全防護與即時格式轉換系統1,且至少包括但不僅限於處理單元100、儲存單元200及網路單元300。
處理單元100可以是中央處理單元(CPU),或是其他可程式化之一般用途或特殊用途的微處理器(Microprocessor)、數位信號處理器(DSP)、可程式化控制器、特殊應用積體電路(ASIC)或其他類似元件或上述元件的組合。在本發明實施例中,處理單元100用以執行系統1的所有作業,且可存取並執行儲存單元200中記錄的軟體單元。
儲存單元200可以係任何型態的固定或可移動隨機存取記憶體(RAM)、唯讀記憶體(ROM)、快閃記憶體(flash memory)、傳統硬碟(hard disk drive)、固態硬碟(solid-state drive)或類似元件或上述元件的組合,並用以記錄認證單元201、授權單元202、資料存取單元203、帳號權限管理單元204、反向代理對應管理單元205、鍵-值轉換規格管理單元206、鍵-值轉換代理連線單元207、無轉換代理連線單元208、鍵-值格式轉換單元209等軟體單元、帳號密碼、符記(token)、角色權限、遠端位址、網址樣式(URI PATTERN)、轉換規格等相關資訊、檔案及資料。前述軟體單元、資料庫、檔案及資料待後續實施例再詳細說明。
網路單元300可以係支援光纖、乙太網路(Ethernet)等有線網路技術或Wi-Fi、行動通訊網路、WiMAX等無線網路的通訊收發器、晶片及電路,以連線至內部網路或網際網路。
需說明的是,系統1可作為單一獨立裝置(例如,閘道器、電腦主機或伺服器等),亦可能是將前述軟體單元分散或集中裝載於超過一台裝置上,本發明不加以限制。
資料庫3的實施態樣可參考儲存單元200,並可能是內建或外接(透過有線或無線且直接或間接連接方式)於系統1,且儲存服務資料或要求資料等各類型資料。
應用程式介面提供系統4可以是伺服器、電腦主機、工作站等裝置,且於本實施例中係作為提供應用程式介面服務的網路實體。
要求設備110可以係智慧型手機、平板電腦、個人電腦、智慧家電等可連網設備,並可連線至程式介面安全防護與即時格式轉換系統1,使要求設備110與網路單元300能相互通訊。於本發明實施例中,要求設備110係作為客戶端的設備。
前述係關於系統架構,而為了方便理解本發明實施例的操作流程,以下將舉諸多實施例詳細說明本發明實施例中程式介面安全防護與即時格式轉換系統1之運作流程。
本發明實施例大致分為三個主要部分;認證、無轉換呼叫及鍵-值轉換呼叫流程,以下將依序詳述各流程。下文中,將搭配圖1之通訊架構中的各項系統、元件及裝置說明本發明實施例所述之方法。本方法的各個流程可依照實施情形而隨之調整,且並不僅限於此。
認證流程:
處理單元100透過網路單元300取得某一要求設備110所提供之一組帳號密碼(例如,"account(帳號)":"帳號A","pswd(密碼)":"以base64編碼後之密碼"),認證單元201則接收前述帳號密碼,透過帳號權限管理單元204查詢帳號,並驗證帳號與密碼之正確性。而反應於驗證成功,認證單元201即依據時間戳記產生符記,並透過網路單元300發送此符記給要求設備110。其中,回傳客戶端之格式例如為:{"status(狀態碼)":200,"reason(狀態原因說明)":"OK","payload(資料欄位)":{"token(符記)":"","expired(符記有效期限)":""}}。由此可知,對應於不同帳號密碼的認證,系統1將會給予不同的符記,以作為後續服務存取之驗證憑藉。
需說明的是,前述帳號、密碼、格式僅作為範例說明,然於其他實施例中,應用本發明者可依據需求而調整。
無轉換呼叫流程(請搭配圖關於授權單元202的驗證流程):
首先,要求設備110將如前述認證流程所得之符記附帶於超文件傳送協定(Hypertext Transfer Protocol,HTTP)標頭資料中呼叫,而授權單元202可透過網路單元300取得前述HTTP標頭資料,並驗證此符記是否合法(步驟S210)。若不合法則拒絕要求設備所提出之服務要求;而若合法則帳號權限管理單元204即可依據符記取得對應角色權限(步驟S220)。授權單元202接著依據角色權限而利用角色與HTTP方法找出對應的多筆遠端位址
(REMOTE ADDRESS)及網址樣式(URI PATTERN)(步驟S230),並依序比對遠端位址是否符合網路掩碼(mask)範圍內(步驟S240);若不符則拒絕比對下一筆;若符合接著比對網址樣式,若網址樣式不符則拒絕比對下一筆,若符合則予以通過(即,存取權限受允許)。
舉例而言,比對網址樣式的格式包括:路徑樣式格式目錄1/目錄1.1/*/檔案,星號(*)表示可為任何字串但僅限此層目錄;目錄1/目錄1.1/**,雙星號(**)表示可為任何字串且可不限目錄深度;正則表示式格式目錄/{名稱:正則表示式}
而若HTTP標頭資料所發出要求的網址(URI)是允許存取權限的,則代理對應管理單元205取得對應的實際服務網址,且無轉換代理連線單元208經由此實際服務網址對應用程式介面提供系統4發出要求並將取得之資料透過網路單元300回傳給要求設備110。
鍵-值轉換呼叫流程:
首先,要求設備110將如前述認證流程所得之符記附帶於HTTP標頭資料中呼叫,而授權單元202可透過網路單元300取得前述HTTP標頭資料,並驗證符記之正確性。接著,帳號權限管理單元204取得可使用之角色權限。若經認證單元201驗證
所發出的要求URI是允許存取權限,則透過向代理對應管理單元205取得對應的實際服務網址,再交由鍵-值轉換代理連線單元207透過鍵-值格式轉換單元209將要求之資料格式進行轉換。鍵-值轉換代理連線單元207將轉換後的要求資料格式對應用程式介面提供系統4發出要求,並將自應用程式介面提供系統4所取得之回應再經由鍵-值格式轉換單元209將回傳之資料格式進行轉換,最後再透過網路單元300回傳轉換之回應給予要求設備110。而回傳至客戶端的鍵-值格式例如為,{"status(狀態碼)":200,"reason(狀態原因說明)":"OK","payload(負載的資)":{}}。
值得注意的是,關於鍵-值格式轉換單元209的運作流程可參照圖3,鍵-值格式轉換單元209會先依據腳色權限而向鍵-值轉換規格管理單元206取得轉換規格(步驟S301)。此轉換規格格式例如為:
initial為初始化定義,initial.init為若不存在則初始化,initial.overwrite為一律覆寫,initial.{init或overwrite}[*].jsonpath為用jsonpath選擇之欄位,initial.{init或overwrite}[*].value為給定之數值;roles為可用此轉換規格之角色可多個;specChain為轉換鏈,specChain[*].operation為作業方式,可用系統預設的作業方式也可以自行撰寫程式來定義作業方式,specChain[*].spec為作業方式內容,specChain[*].spec[*].@Override為標記覆寫相同名稱的
父動作名稱若不覆寫則此欄位可不寫,specChain[*].spec[*].name為動作名稱,specChain[*].spec[*].{動作}其中{動作}為由作業方式來定義,值為此動作所需要的參數。
鍵-值格式轉換單元209接著檢查要求設備110所屬的角色能否有權限進行格式轉換(步驟S302);若無權限則拒絕(步驟S303);若權限許可,則鍵-值格式轉換單元209將資料依據諸如前述轉換規格以遞迴式執行繼承之轉換鏈。鍵-值格式轉換單元209係先初始化資料(步驟S304),以取出轉換規格中的初始化資料到指定資料位置。鍵-值格式轉換單元209會取得父動作名稱之覆寫動作(例如,標記為@Override之動作)(步驟S305),並取得繼承之父轉換規格名稱(步驟S306),再確認父轉換規格名稱是否存在。若不存在此父轉換規格名稱,則執行步驟S309;若存在則由規格名稱(例如,"name")取得轉換規格定義(步驟S308)。接著,確認轉換鏈(例如,"specChain")是否有定義(步驟S309);若無定義,則回傳資料(步驟S310);若有定義則用覆寫動作取得父動作(步驟S311)(此步驟係在有父動作存在的情況下,如無則執行步驟S312)。最後,鍵-值格式轉換單元209即可將資料依照整理過後的轉換規格所定義之轉換鏈及動作以鏈次序進行轉換(步驟S312)。
值得注意的是,前述鍵-值格式可以係JSON(JavaScript Object Notation)、python、C#字典(Dictionary)等格式,本發明不加以限制。
綜上所述,針對API服務之授權存取權限,本發明實施
例係透過利用角色為基礎的存取控制(Role-Based Access Control,RBAC)依照使用端位址、HTTP方法、網址樣式等條件給予不同使用權限並實踐存取權限的控管。本發明實施例亦定義一種具繼承特性的自定義鍵-值描述語法來描述組成格式轉換機制之鏈式作業方式。此外,依據鍵-值格式轉換規格所描述之作業方式,再以遞迴方式執行繼承之轉換鏈。由於呼叫端(即,要求設備)帳號所屬的角色不同,可對應用程式介面提供系統提供的通用格式進行不同的鍵-值格式轉換,達成隱匿應用程式介面提供端系統的結構設計,並達到欄位級資料保護,更減少不必要的應用程式介面重複開發。此外,以上的授權/格式轉換...等管控機制,皆可透過系統管理的之應用程式介面,在系統運行階段中進行設定且無須重新啟動系統。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
Claims (9)
- 一種程式介面安全防護與即時格式轉換系統,包括:一網路單元,接收一超文件傳送協定(Hypertext Transfer Protocol,HTTP)標頭資料,其中該HTTP標頭資料包括一符記(token);一儲存單元,記錄多個軟體單元;以及一處理單元,耦接該網路單元及該儲存單元,且存取並載入該儲存單元所記錄的該些軟體單元,該些軟體單元包括:一帳號權限管理單元,依據該符記取得對應一角色權限;一授權單元,驗證該符記是否合法,並將該HTTP標頭資料比對該角色權限以確認是否具有存取權限;一鍵-值(key-value)格式轉換單元,若具有存取權限,將該HTTP標頭資料之要求資料進行轉換;以及一鍵-值轉換代理連線單元,將轉換之該要求資料發送至一應用程式介面提供系統,其中當該鍵-值轉換代理連線單元接收到該應用程式介面提供系統之回應時,該鍵-值格式轉換單元轉換該回應並透過該網路單元傳送轉換之該回應,其中該授權單元依據該角色權限而利用角色與HTTP方法找出對應的多筆遠端位址及網址樣式(URI PATTERN),並將該HTTP標頭資料依序比對該些遠端位址是否符合掩碼範圍內,且比對該些網址樣式,其中該網址樣式的格式包括一路徑樣式格式與一正則表示式格式。
- 如申請專利範圍第1項所述的程式介面安全防護與即時格式轉換系統,其中該些軟體單元更包括:一認證單元,透過該網路單元取得一組帳號密碼,驗證該帳號密碼,並反應於驗證成功而透過該網路單元發送該符記。
- 如申請專利範圍第1項所述的程式介面安全防護與即時格式轉換系統,其中該些軟體單元更包括:一反應代理對應管理單元,反應於該HTTP標頭資料係具有存取權限,取得對應之實際服務網址;以及一無轉換代理連線單元,向該實際服務網址發出要求,並將取得之資料透過網路單元發送。
- 如申請專利範圍第1項所述的程式介面安全防護與即時格式轉換系統,其中該些軟體單元更包括:一鍵-值轉換規格管理單元,依據角色權限提供一轉換規格;而該鍵-值格式轉換單元,將一資料依據該轉換規格以遞迴式執行繼承之轉換鏈。
- 如申請專利範圍第4項所述的程式介面安全防護與即時格式轉換系統,其中該鍵-值格式轉換單元自該轉換規格取得父動作名稱之一覆寫動作及繼承之一父轉換規格名稱,以該覆寫動作取代父動作,並依照整理過後的轉換規格所定義的轉換鏈及動作以鏈次序轉換該資料。
- 一種程式介面安全防護與即時格式轉換方法,包括:自一要求設備接收一HTTP標頭資料,其中該HTTP標頭資料包括一符記;依據該符記取得對應一角色權限;將該HTTP標頭資料比對該角色權限,以確認是否能將該HTTP標頭資料之要求資料進行轉換;將轉換之該要求資料發送至一應用程式介面提供系統;當接收到該應用程式介面提供系統之回應時,轉換該回應並傳送轉換之該回應至該要求設備,其中將該HTTP標頭資料比對該角色權限的步驟包括:依據該角色權限而利用角色與HTTP方法找出對應的多筆遠端位址及網址樣式;將該HTTP標頭資料依序比對該些遠端位址是否符合掩碼範圍內;以及比對該些網址樣式。
- 如申請專利範圍第6項所述的程式介面安全防護與即時格式轉換方法,其自該要求設備接收該HTTP標頭資料之前,更包括取得一組帳號密碼;驗證該帳號密碼;以及反應於驗證成功而發送該符記。
- 如申請專利範圍第6項所述的程式介面安全防護與即時格式轉換方法,其中將轉換之該要求資料發送至該應用程式介面提供系統的步驟包括:反應於該HTTP標頭資料係具有存取權限,取得對應之實際服務網址;以及向該實際服務網址發出要求,並發送取得之資料。
- 如申請專利範圍第6項所述的程式介面安全防護與即時格式轉換方法,其中將轉換之該要求資料發送至該應用程式介面提供系統之前,更包括:依據角色權限取得一轉換規格;以及將一資料依據該轉換規格以遞迴式執行繼承之轉換鏈。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106139058A TWI676912B (zh) | 2017-11-10 | 2017-11-10 | 程式介面安全防護與即時格式轉換系統及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106139058A TWI676912B (zh) | 2017-11-10 | 2017-11-10 | 程式介面安全防護與即時格式轉換系統及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201918921A TW201918921A (zh) | 2019-05-16 |
TWI676912B true TWI676912B (zh) | 2019-11-11 |
Family
ID=67347685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106139058A TWI676912B (zh) | 2017-11-10 | 2017-11-10 | 程式介面安全防護與即時格式轉換系統及方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI676912B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI370368B (en) * | 2005-04-01 | 2012-08-11 | Ibm | Method and system for a runtime user account creation operation within a single-sign-on process in a federated computing environment |
US9210557B2 (en) * | 2011-04-12 | 2015-12-08 | Yahoo! Inc. | SMS-initiated mobile registration |
-
2017
- 2017-11-10 TW TW106139058A patent/TWI676912B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI370368B (en) * | 2005-04-01 | 2012-08-11 | Ibm | Method and system for a runtime user account creation operation within a single-sign-on process in a federated computing environment |
US9210557B2 (en) * | 2011-04-12 | 2015-12-08 | Yahoo! Inc. | SMS-initiated mobile registration |
Also Published As
Publication number | Publication date |
---|---|
TW201918921A (zh) | 2019-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6207696B2 (ja) | 安全移動体フレームワーク | |
US10541806B2 (en) | Authorizing account access via blinded identifiers | |
EP3385873B1 (en) | Delegating authorization to applications on a client device in a networked environment | |
CN104021333B (zh) | 移动安全表袋 | |
US9401915B2 (en) | Secondary device as key for authorizing access to resources | |
WO2021232590A1 (zh) | 基于私有链的用户验证方法、装置、计算机设备及存储介质 | |
WO2023151354A2 (zh) | 数据传输方法、系统、第一端、中间网络设备及控制设备 | |
US11368462B2 (en) | Systems and method for hypertext transfer protocol requestor validation | |
US9350761B1 (en) | System for the distribution and deployment of applications, with provisions for security and policy conformance | |
US20150180850A1 (en) | Method and system to provide additional security mechanism for packaged web applications | |
US20130310002A1 (en) | Mobile Device Validation | |
CN107317816A (zh) | 一种基于客户端应用程序鉴别的网络访问控制方法 | |
US9154497B1 (en) | Maintaining accountability of a shared password among multiple users | |
WO2019240793A1 (en) | Access tokens with scope expressions of personal data policies | |
CN1610296B (zh) | 对信任确定实体安全地识别可执行码的方法 | |
TWI676912B (zh) | 程式介面安全防護與即時格式轉換系統及方法 | |
CN104243294A (zh) | 一种具有安全机制的PROFIBUS嵌入式Web网关 | |
US20220334869A1 (en) | Distributed Attribute Based Access Control as means of Data Protection and Collaboration in Sensitive (Personal) Digital Record and Activity Trail Investigations | |
CN104579741B (zh) | 业务管理系统 | |
US20180220477A1 (en) | Mobile communication system and pre-authentication filters | |
CN113766028A (zh) | 一种基于云端网络的内容版权加密溯源系统及方法 | |
CN110233816B (zh) | 一种工业数据资产授权管理方法及设备 | |
KR101288233B1 (ko) | 스카다 시스템에 있어서의 접근제어 장치 및 접근제어 방법 | |
TWI468979B (zh) | 整合門禁與資訊設備之保全系統與方法 | |
US20220222990A1 (en) | Voice activated real estate access control |