低程式碼如何構建支援OAuth2.0的後端Web API

OAuth2.0

OAuth 是一個安全協議,用於保護全球範圍內大量且不斷增長的Web API。它用於連接不同的網站,還支援原生應用和移動應用於雲服務之間的連接,同時它也是各個領域標準協議中的安全層。

(圖片來源網路)

接下來我們來仔細聊聊OAuth2.0是什麼,有什麼用處。

OAuth 2.0介紹

再說OAuth2.0之前,我們先聊聊OAuth。大家可以把它理解為OpenID的補充,但是服務內容完全不同。OAuth允許用戶授權第三方網站訪問他們存儲在其他網站伺服器上的資訊,而不需要分享他們的訪問許可或他們數據的所有內容。

OAuth2.0儘管是OAuth協議的延續版本,但並不向前兼容OAuth 1.0(即完全廢止了OAuth1.0)。OAuth 2.0更加關注客戶端開發的簡易性,通過批准組織在資源擁有者和HTTP服務商之間的交互動作來代表用戶,或者通過第三方應用代表用戶獲得訪問的許可權。同時為Web應用、桌面應用和手機,以及起居室設備提供專門的認證流程。

在這個過程中不需要應用去充當資源擁有者的身份,因為令牌明確表示了授予的訪問權。OAuth2.0令牌可以限制客戶端只能執行資源擁有者授權的操作。

雖然 OAuth2.0基本上不關心它所保護的資源類型,但它確實很適合當今的RESTful Web服務,也很適合Web應用和原生應用。從小型單用戶應用,到數百萬用戶的互聯網API,它都可以處理。在受控的企業環境中,它能對新一代內部業務API和系統訪問進行管理,在它所成長起來的紛亂複雜的web環境中,它也能遊刃有餘地保護各種面向用戶的API。

OAuth 2.0功能

(圖片來源網路)

OAuth2.0框架能讓第三方應用以有限的許可權訪問HTTP服務,可以通過構建資源擁有者與HTTP服務間的許可交互機制,讓第三方應用代表資源擁有者訪問服務,或者通過授予許可權給第三方應用,讓其代表自己訪問服務。

作為一個授權框架,OAuth2.0關注的是如何讓一個系統組件獲取另外一個系統組件的訪問許可權。在OAuth2.0的世界中,最常見的情形是客戶端應用代表資源擁有者(通常是終端用戶)訪問受保護資源。到目前為止,我們需要關心如下組件:

1.資源擁有者有權訪問API,並能將API訪問許可權委託出去。

2.受保護資源是資源擁有者有許可權訪問的組件,這樣的組件形式有很多,大多數情況下是某種形式的Web API,資源指的是這些API支援讀、寫和其他操作。

3.客戶端是代表資源擁有者訪問受保護資源的軟體。OAuth2.0中,只要軟體使用了受保護資源上的API,它就是客戶端。

說完了OAuth2.0,就要開始介紹我們今天要說的另一個主角——低程式碼。

低程式碼

這裡我們引用業內資深人士的話:”低程式碼是基於可視化和模型驅動理念,結合雲原生與多端體驗技術,它能夠在多數業務場景下實現大幅度的提效降本,為專業開發者提供了一種全新的高生產力開發範式。 另一方面,低程式碼能夠讓不懂程式碼的人,通過”拖拉拽”開發組件,就能完成應用程式的搭建。 從意義上講,低程式碼可以彌補日益擴大的專業技術人才缺口,同時促成業務與技術深度協作的終極敏捷形態”。

程式碼界的「兩低一高」即Low Code,Low Cost,High Efficiency(低程式碼、低成本、高效率),指的就是低程式碼開發平台帶來的便捷和高效,「追求最少的程式碼量,實現最多的業務功能」。這裡面比較難的是如何把握功能實現的靈活性和操作學習的簡易性的平衡。

低程式碼開發平台作為一種新型的開發工具,它的出現減少了程式碼編寫量,簡化了開發過程,縮短了開發周期,提高了開發效率,節省了開發成本。低程式碼開發平台可以幫助用戶更好的去設計並實現需求,用戶只需要關注業務邏輯,而不需要去關注程式碼編寫。普通用戶在接受簡單培訓後也能DIY出自己所需的各種管理軟體。

介紹完了兩個主角,現在就正式開始為大家介紹低程式碼如何支援OAuth 2.0。

低程式碼如何支援OAuth 2.0

低程式碼開發應用平台和其他系統的應用交互數據的時候,有以下兩種情況:

1、低程式碼應用從第三方系統中獲取數據(比如獲取淘寶,京東的數據)

2、第三方系統從低程式碼應用獲取數據(比如使用低程式碼開發了一個MES,現在有其他人希望獲取這個MES系統的數據)

在這裡需要注意: OAuth 2.0使用的憑證式(client_credentials)和密碼式(password)兩種。

首先需要授權設定,登錄管理門戶網站,然後單擊設置→Web安全性頁面,如下所示,管理員可以為每個第三部分配置客戶端標識符和密碼。

單擊添加客戶端授權按鈕,然後編輯授權類型、允許範圍和令牌生存期等。

憑證式實現

  1. 從用戶管理門戶網站(查看地址://gcdn.grapecity.com.cn/showtopic-87565-1-1.html

2、獲取client_credentials訪問令牌。

這是client_credentials授予類型請求參數列表:

調用結果

2.添加具有訪問令牌的用戶。(狀態:200 OK)

在步驟2中複製” access_token”值,並在” access_token”值之前插入” Bearer”,然後按如下所示將其添加到鍵” Authorization”的值中,並再次請求添加用戶。

調用結果

密碼式

1.從用戶管理網站獲取密碼訪問令牌(URL:http//xa-dd3-bks:22345/UserService/connect/token)。

這是密碼授予類型請求參數列表:

調用結果

2.添加具有訪問令牌的用戶。(狀態:200 OK)

在步驟4中複製” access_token”值,並在” access_token”值之前插入” Bearer”,然後按如下所示將其添加到鍵” Authorization”的值中,並再次請求添加用戶。

調用結果

這樣我們就順利實現了使用低程式碼順利支援OAuth2.0。

如果大家對更多在線Demo感興趣的話,可以訪問:

//www.grapecity.com.cn/solutions/huozige/demo/inventory