本發明涉及網絡安全,尤其涉及一種基于應用網關的統一認證鑒權的方法、設備和存儲介質。
背景技術:
1、隨著互聯網快速發展,一個公司往往會有多個不同的應用(包括網站、服務),這些應用通常需要用戶提供一些個人信息或賬號密碼進行登錄和使用。以往每個應用各自維護自己的賬號和權限,導致用戶在訪問不同應用時需要多次登錄,而管理人員對每個應用單獨做權限管理。為了保證用戶的安全和方便,統一認證和鑒權技術應運而生。有了統一認證,用戶只需要登錄一次即可訪問多個不同應用。管理人員也只需在一個統一的平臺進行權限管理。
2、現有的統一認證和鑒權技術往往需要集中到統一執行器(一般為網關)進行認證和鑒權,導致當用戶量和訪問量龐大時,會形成性能瓶頸,且應用之間的通信可以繞過統一執行器。
技術實現思路
1、本發明的目的是為了解決現有技術中存在的缺點,而提供了一種基于應用網關的統一認證鑒權的方法,包括以下步驟:
2、s1:在應用上部署應用網關,前端接收到訪問應用請求時發送給所述應用網關,所述應用網關攔截所述訪問應用請求,并識別所述訪問應用請求的接口類型;
3、s2:所述應用網關根據所述接口類型,通過調用中心控制器進行包括配置用戶權限和提供用戶統一登陸頁面在內的處理操作;
4、s3:所述應用網關根據處理結果進行權限鑒定,若權限鑒定成功,則將所述訪問應用請求代理到應用,實現訪問,若權限鑒定失敗,則前端返回用戶無權訪問。
5、優選地,所述應用網關攔截所述訪問應用請求,并識別所述訪問應用請求的接口類型,進一步包括:
6、s11:所述應用網關接收包括url路徑、請求方法、請求頭和請求體在內的所述訪問應用請求;
7、s12:所述應用網關通過查看所述url路徑、所述請求方法和請求體參數在內的信息識別接口是否為登錄接口、令牌token接口或其他接口。
8、優選地,在步驟s2中,所述應用網關根據所述接口類型,通過調用中心控制器進行包括配置用戶權限和提供用戶統一登陸頁面在內的處理操作,進一步包括:
9、若識別到所述訪問應用請求為所述登錄接口,則判斷登錄狀態,所述應用網關根據所述登錄狀態,通過調用所述中心控制器進行處理操作;
10、若識別到所述訪問應用請求為令牌token接口,所述應用網關提取所述請求體參數中的隨機碼,并根據訪問應用唯一id、密碼和隨機碼調用所述中心控制器的接口獲取所述令牌token,并將所述令牌token返回給前端;
11、若識別到所述訪問應用請求為其他接口,所述應用網關從所述訪問應用請求中提取所述令牌token,并根據提取結果進行處理。
12、優選地,所述應用網關根據所述登錄狀態,通過調用所述中心控制器進行處理操作,進一步包括:
13、若是未登錄狀態,返回所述前端,重定向訪問所述中心控制器的登錄頁面,用戶在所述登陸頁面通過包括賬號密碼認證、指紋認證、短信認證、ukey認證在內的方式進行登錄;
14、若是已登錄狀態,則無需再次進行登錄操作,所述中心控制器以參數形式附帶隨機碼和所述訪問應用唯一id生成所述訪問應用請求返回前端頁面,重定向到應用的申請token接口地址。
15、優選地,所述應用網關從所述訪問應用請求中提取所述令牌token,并根據提取結果進行處理,還包括:
16、若提取所述令牌token失敗,所述應用網關返回失敗信息,并返回前端頁面要求用戶登陸后操作;
17、若提取所述令牌token成功,所述應用網關驗證所述令牌token有效性。
18、優選地,所述應用網關驗證所述令牌token有效性,進一步包括:
19、所述應用網關解碼jwt?token的頭部,獲取加密算法以及密鑰id;
20、解碼jwt?token的載荷部分,獲取用戶名、所述隨機碼的頒發時間、有效期在內的信息;
21、驗證當前時間是否在有效期,如果不在有效期則驗證失敗;
22、根據所述密鑰id查詢本地是否有對應公鑰,如果沒有,則調用中心控制器接口獲取對應公鑰;
23、通過公鑰和加密算法驗證簽名部分,驗證成功則為成功,否則為失敗。
24、優選地,在步驟s3中,所述應用網關根據處理結果進行權限鑒定,進一步包括:
25、所述應用網關根據管理員在所述中心控制器配置的應用權限進行權限鑒定;
26、其中,管理員在所述中心控制器配置應用權限,包括:
27、所述中心控制器配置應用的接口,并限定訪問用戶和/或訪問應用;
28、通過接口組、用戶組、應用組在內的形式進行優化,減少管理員配置時間;
29、所述中心控制器將所述應用權限發到所述應用網關。
30、優選地,所述中心控制器將所述應用權限發到所述應用網關,進一步包括:
31、所述應用網關從所述令牌token中提取出用戶名和所述訪問應用唯一id;
32、根據所述用戶名、所述訪問應用唯一id、所述用戶權限、應用唯一id判定用戶是否有訪問該接口的權限;
33、其中,根據所述用戶名、所述訪問應用唯一id、所述用戶權限、應用唯一id判定用戶是否有訪問該接口的權限,包括:
34、根據所述用戶名和所述用戶權限判斷是否有訪問該接口的權限;
35、根據所述訪問應用唯一id和所述應用唯一id判斷是否有訪問該接口的權限,其中,若所述訪問應用唯一id不是所述應用唯一id,則判斷失敗;
36、若所述訪問應用唯一id和所述應用唯一id一致,則根據所述訪問應用唯一id對應的應用是否有訪問該接口的權限判斷是否有訪問該接口的權限。
37、基于相同的構思本發明還提供了一種計算機設備,包括存儲器和處理器,所述存儲器中存儲有計算機可讀指令,所述計算機可讀指令被所述處理器執行時,使得所述處理器執行如實施例中所述的基于應用網關的統一認證鑒權的方法的步驟。
38、基于相同的構思本發明還提供了一種存儲有計算機可讀指令的存儲介質,所述計算機可讀指令被一個或多個處理器執行時,使得一個或多個處理器執行如實施例中所述的基于應用網關的統一認證鑒權的方法的步驟。
39、與現有技術相比,本發明的有益效果是:
40、本發明通過在應用上部署應用網關,前端接收到訪問應用請求時發送給應用網關,應用網關攔截所述訪問應用請求,并識別訪問應用請求的接口類型,實現了不止能控制用戶的訪問權限,還可控制不同應用之間的訪問權限;
41、本發明的應用網關根據接口類型,通過調用中心控制器進行包括配置用戶權限和提供用戶統一登陸頁面在內的處理操作,實現了多個應用使用一套賬戶體系,用戶訪問多個應用只需登錄一次,管理員可以在一個平臺進行統一的權限配置;
42、本發明的應用網關根據處理結果進行權限鑒定,若權限鑒定成功,則將所述訪問應用請求代理到應用,實現訪問,若權限鑒定失敗,則前端返回用戶無權訪問,實現將認證和鑒權工作放到各個應用網關,減少了認證和鑒權壓力。