999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

分布式架構下權限認證方案的優化

2024-12-31 00:00:00劉家琳楊懌顏小芳孫悅趙亞偉
現代信息科技 2024年11期

摘" 要:隨著科技的快速發展,有越來越多的計算機應用開始采用分布式架構模式。然而,這種架構模式卻為應用程序權限體系的性能和安全帶來了新的挑戰。為此,文章提出一種全面的優化策略,采用多級緩存與分布式緩存相結合的方式來存儲會話數據,使用戶能夠在認證過程中快速、高效地獲取數據,并利用網關統一鑒權和AOP(面向切面編程)注解鑒權技術實現對不同微服務的訪問控制。實驗結果表明,在相同的用戶請求數量下,改進后的權限認證方案可顯著縮短系統的響應時間。這種優化策略通過減緩對底層數據庫的頻繁訪問,減輕了系統負擔,提升了系統的整體性能。

關鍵詞:分布式架構;多級緩存;分布式緩存;權限認證

中圖分類號:TP311" " 文獻標識碼:A" " 文章編號:2096-4706(2024)11-0167-05

Optimization of Permission Authentication Scheme under Distributed Architecture

LIU Jialin, YANG Yi, YAN Xiaofang, SUN Yue, ZHAO Yawei

(Hubei Normal University, Huangshi" 435002, China)

Abstract: With the rapid development of technology, more and more computer applications are adopting distributed architecture. However, this architecture brings new challenges to the performance and security of application permission systems. Therefore, this paper proposes a comprehensive improved strategy that combines multi-level caching and distributed caching to store session data, enabling users to quickly and efficiently obtain data during the authentication process. It also utilizes gateway unified authentication and AOP (Aspect Oriented Programming) annotation authentication technology to achieve access control for different microservice. The experimental results show that under the same number of user requests, the improved permission authentication scheme can significantly reduce the response time of the system. This improved strategy reduces the system burden and improves the overall performance of the system by slowing down frequent access to the underlying database.

Keywords: distributed architecture; multi-level cache; distributed cache; permission authentication

0" 引" 言

在當今日益復雜和多樣化的計算機應用環境中[1],分布式架構已成為構建高性能、高可擴展性和靈活性系統的首選方法。隨著企業的系統逐漸從單體應用遷移到分布式微服務體系,確保系統的安全性和用戶權限管理變得尤為重要[2]。權限認證體系作為信息安全的關鍵組成部分[3],不僅需要滿足用戶需求,還要保障系統的穩定性和可維護性。

1" 權限認證體系

單體應用的權限認證體系通常基于角色或權限級別來確定用戶或者角色是否具有訪問應用程序的資源的權限,在登錄時進行身份驗證,驗證成功則為用戶創建一個會話,這個會話用于在用戶與應用程序交互期間跟蹤他們的狀態。單體應用的這種權限認證通常是在應用程序內部實現的,這種會話管理方法也通常是基于服務器端的。而在分布式架構中,多個服務實例可能會處理來自同一用戶的請求,而傳統的會話管理方法通常假定會話狀態存儲在單一服務器上,這會導致不同實例之間的狀態不一致或者沖突。此外,由于傳統的會話管理依賴于單一的會話存儲,它無法輕松擴展以處理大量的用戶和請求。再者,在分布式架構中,用戶請求可能需要穿越多個服務實例,傳統的會話管理方法可能無法輕松在不同服務之間傳遞和共享會話信息[4]。

基于上述種種問題,單體應用的權限認證無法適用于分布式架構,需要一種更加復雜的會話管理機制來確保一致性和可擴展性[5]。當前分布式架構下的權限認證方法通常包括基于令牌的身份驗證、角色和權限的訪問控制以及一系列的安全協議和標準。這些方法在一定程度上確保了系統的安全性,但也存在一些潛在的不足之處,例如在密碼安全性和性能方面還存在改進空間[6]。在基于令牌的身份驗證方法中,用戶登錄后可能需要提供密碼來獲取令牌,因此密碼的安全性直接影響到令牌的安全性[7]。如果密碼存儲不安全或驗證不夠強大,那么令牌本身也會受到威脅。當大量用戶同時請求令牌或進行令牌驗證時,服務器的性能可能受到限制。此外,基于角色和權限的訪問控制方法也可能導致性能問題,因為在每個請求中需要檢查用戶的角色和權限。權限控制邏輯可能涉及多個角色、權限和資源的組合,使權限控制策略變得復雜,分散在不同服務或模塊中的權限控制邏輯可能導致管理和維護的挑戰。

這些不足之處并不局限于特定的權限認證方法,而是涵蓋了多種方法。由此提出了一種全面的優化策略來提高系統的安全性、性能和可維護性。在認證層面,使用Bcrypt的hash算法來對密碼進行加密保證密碼的安全性,BCrypt使用加鹽的方法對密碼進行加密,由于每次的鹽值不同且鹽的位置也不同,大大降低了密碼泄露的概率。使用緩存來保證系統的認證安全性,當大量的惡意請求頻繁登錄時,在緩存中記錄該用戶的登錄次數,超過規定的最大次數則對賬戶進行鎖定,以此來防止惡意的登錄請求導致系統崩潰。為了進一步優化用戶信息的存儲效率同時解決單體應用下權限認證的會話可擴展性的問題,采用多級緩存結合分布式緩存策略來存儲會話數據,以便多個服務實例可以共享并訪問相同的數據,確保用戶數據在認證過程中能夠快速、高效地獲取。在權限認證層面,引入了網關統一鑒權結合AOP(面向切面編程)注解鑒權技術,以實現對不同微服務的訪問控制。這種方式不僅簡化了權限管理的配置和維護,還增強了系統的整體可維護性。

2" 理論基礎

分布式架構下的權限認證構建在安全性、可擴展性和靈活性的基礎之上,旨在確保只有經過授權的用戶或服務可以訪問特定資源和執行相關操作。而當下常用基于Token的權限認證方案,這種方法使得用戶狀態無關緊要,因為每個請求都包含了所需的信息,可以解決單體應用下會話的狀態共享問題。SaToken是一個權限認證框架,它為開發人員提供了高效、便捷的權限認證解決方案。

2.1" 基于令牌的權限認證

基于令牌(Token)的認證是在分布式架構下常用的一種認證方式。該認證方式在用戶登錄成功后生成一個令牌,其中包含了用戶的標識信息和加密簽名[8]。這個令牌作為用戶身份的憑證,可以被存儲在客戶端,如瀏覽器的Cookie或本地存儲。在用戶與服務器交互時,令牌會被附加到請求中,服務器通過解析和驗證令牌的方式來識別用戶身份并授予相應的訪問權限。與傳統的會話認證相比,基于令牌的認證是無狀態的,不需要在服務器端存儲會話信息,從而提高了系統的性能和可擴展性;其次,令牌可以跨平臺傳遞,適用于不同的應用場景;此外,基于令牌的認證天然適應于分布式架構,無須維持會話狀態,增加了系統的靈活性和安全性。通過加密和簽名技術,令牌的安全性得到保障,有效防止了篡改和偽造。基于令牌的認證可以確保整個認證過程的可靠性和安全性。本文設計的分布式架構下的權限認證方案主要采用基于令牌的身份驗證方法。一旦用戶成功進行身份驗證,系統將為其生成一個令牌,該令牌包含用戶的基本信息。隨后,當用戶嘗試訪問其他服務時,系統會檢查用戶是否攜帶有效的令牌,只有在驗證通過的情況下,用戶才能成功訪問系統資源。

2.2" SaToken權限認證框架

SaToken(SpringBoot Shiro Token)是一個基于Spring Boot和Shiro的輕量級權限認證框架,旨在簡化Java Web應用的權限管理和認證開發。框架提供簡單易用的API,支持無侵入性集成,無狀態認證和多種認證方式,包括用戶名密碼認證、Token認證和單點登錄(SSO),同時具備靈活的權限控制和會話管理功能。通過加密和簽名,保障令牌安全性,適用于多終端,如Web應用、移動應用和API訪問。通過SaToken提供的API,采用粗細粒度結合的方法來更好地管理認證和權限控制。在粗粒度的驗證層面,使用網關的全局過濾器來驗證用戶的身份狀態。而在細粒度的驗證層面,我們可以配置網關與子服務結合,以在用戶訪問子服務時進行狀態驗證。此外,SaToken提供的注解能夠實現更細致的權限認證。在請求進入方法之前,系統會首先檢查用戶是否具備訪問該資源的權限,通過粗細粒度結合的方法實現更加精細化的權限控制。

3" 方案設計

在本小節中,將從軟件架構、優化策略、權限認證流程、多級緩存數據結構四個關鍵方面詳細介紹整個優化流程。

3.1" 軟件架構

權限認證主要包含登錄驗證和權限認證兩部分。整個方案的軟件架構如圖1所示。

網關集群主要負責接收、路由、管理和保護來自外部客戶端的請求以及將合法的請求轉發到系統內部的各個服務,確保一致性的訪問控制和認證。

認證中心(Auth)主要負責管理和維護用戶身份認證和權限授權的過程,為系統中的多個組件和服務提供統一的認證與授權機制,從而保障整個系統的安全性和可控性。

Nacos集群主要負責實現服務發現和配置管理的功能。SkyWalking主要用于對請求節點進行分析與監控,以確保系統的健康。

3.2" 優化策略

在權限認證中,主要依靠用戶在請求中攜帶的令牌(Token)來驗證其身份和狀態。在首次認證成功后,系統會頒發唯一令牌,其中包含用戶的身份信息和認證狀態。隨后訪問子服務時只需要驗證這個令牌,即可確認用戶的合法身份,避免了煩瑣的身份驗證過程。然而,隨著認證請求的增加,認證中心的負載也會增加,從而影響整個分布式架構的性能。為了解決這個問題,采取引入多級緩存結合分布式緩存的優化策略。在這個方案中,認證中心會將令牌和相關信息保存在當前請求和緩存中,從而提高訪問速度。為了減輕認證中心的負擔,避免頻繁進行完整的身份驗證,令牌在短時間內會被緩存。在實際訪問過程中,系統會首先檢查當前請求是否攜帶Token,以確認用戶身份,從而減少對認證中心的實時訪問。當前請求中的令牌失效時,系統會查詢分布式緩存,而不是直接訪問認證中心,以避免負載過大。

分布式緩存在認證過程中也起著重要的作用,在實際應用中,可能會遭遇頻繁的外部惡意登錄請求,通過引入分布式緩存來計算用戶登錄次數的方法就可以有效應對。在驗證用戶信息的過程中,使用分布式緩存來追蹤并計算登錄嘗試次數,系統可以迅速識別惡意請求并鎖定請求,從而確保認證流程的安全性,保護系統免受惡意攻擊,維護用戶數據的安全。

此外,為了保證權限認證系統的整體安全性,使用SaToken提供的內部服務外網隔離來避免外部請求繞過網關訪問資源。傳統的權限認證采用每個服務各自鑒權的方式,管理十分麻煩。因此系統采用網關統一鑒權,將請求路由到接口,再結合AOP注解鑒權來實現高效的權限管理。

3.3" 權限認證流程

客戶端通過賬號、密碼和驗證碼進行登錄請求,服務端的網關首先截獲請求,為了防止外部惡意請求繞過網關直接訪問系統資源。網關的轉發認證過濾器首先會進行統一鑒權,為請求添加令牌(sameToken)值,以便在后續的子服務中進行進一步的鑒權,驗證請求是否是從網關路由過來的。隨后,請求進入全局過濾器,用于驗證用戶的登錄狀態。若用戶未登錄且不在白名單內,將無法訪問子服務。此時,請求會被路由至認證中心。具體的權限認證流程如圖2所示。

認證中心首先對用戶信息進行校驗,通過使用Bycrypt的哈希算法來驗證用戶密碼的準確性。這種方法有效地預防了彩虹表攻擊和暴力破解法。若用戶多次錯誤輸入密碼,達到最大嘗試次數,其賬號將會被鎖定。在分布式緩存中,會存儲有關用戶賬號信息、登錄次數以及鎖定時間的數據。只有當鎖定時間過期后,用戶方可再次嘗試登錄。

用戶成功登錄后,服務端會為其分配唯一的Token值,并根據其角色分配相應的權限列表。隨后,系統會將該用戶信息存儲于多級緩存,分別在當前請求和分布式緩存中保留備份。在用戶再次向服務發起請求時,首先會檢查當前請求是否攜帶用戶的Token值,如果未攜帶,則會從分布式緩存中獲取并重新存儲在當前請求中。經過Token值的驗證后,系統可調用相應的接口方法。但是,在執行接口方法之前,系統會通過AOP注解再次進行權限驗證,僅有具備權限的用戶才能合法訪問系統資源。通過將網關統一鑒權與AOP注解鑒權結合使用,系統實現了高效率的權限驗證。這種做法避免了傳統方式在各子服務中分別進行權限認證的煩瑣步驟。

3.4" 多級緩存數據結構

傳統的認證授權系統主要由應用服務器和數據庫服務器組成,應用服務器負責接收客戶端發送的請求并進行處理,數據庫負責存儲認證信息并處理來自應用服務器的請求[9]。這種方法會導致整個系統出現性能瓶頸,當用戶請求量增大的時候,每次都需要查詢數據庫來驗證權限,這樣會增加響應時間降低吞吐量,同時也會有一些安全風險,如果應用服務器收到攻擊或者數據泄露,攻擊者可能會獲得對數據庫的訪問權限,從而導致安全風險。而基于令牌的權限認證系統會將身份驗證的授權邏輯與應用服務器分開,使得系統更加模塊化且易于管理,應用服務器只需要驗證令牌的有效性,身份驗證由專門的模塊來處理。由于令牌中包含了用戶的身份和授權信息,應用服務器無須每次都查詢數據庫來驗證權限。本文提出的多級緩存將用戶的信息在分布式緩存以及當前作用域中各存一份,當需要查詢用戶信息時,首先在當前作用域中查找,若查詢失敗,則在分布式緩存中查詢,在查詢成功之后再次將用戶信息存入當前作用域中,方便用戶進行與身份驗證相關的操作。

多級緩存的數據結構如圖3所示。

在緩存中,Token的數據結構包括以下字段:Token鍵值、Login UserId(當前登錄用戶ID)、Token Value(值)、Timeout(過期時間)、Active Timeout(有效過期時間)。其中,Timeout和Active Timeout都是預先設置的時間,兩者中任一時間到達,Token將失效。Timeout過期后的Token無法續簽,而Active Timeout在有效期內,只要用戶有操作,Token將自動續簽,確保其持續有效。兩者同時配置,任意一個過期都將要求用戶重新登錄,以確保用戶信息的安全性。設置當前請求和分布式緩存之間的多級緩存結構,以優化獲取登錄用戶信息的效率。若當前請求中沒有登錄用戶信息,系統將從分布式緩存中獲取,并在獲取后將信息存儲于當前請求,以便后續用戶賬戶操作的便捷性。

4" 性能測試結果對比

使用本文提出的改進策略之后,對原有系統和改進后的系統分別測試不同并發用戶數量的平均響應時間。測試環境如下(服務端配置):CPU:2.60 GHz,內存:16 GB,操作系統:Windows 11,Web容器:Tomcat7 [10]。

經過實驗驗證,實驗結果如圖4所示。

由于引入了多級緩存策略,在相同的用戶請求數量下,改進后的系統具有更快的平均響應時間,使得系統能夠更有效地管理和存儲已驗證用戶的權限信息。這一優勢隨著用戶請求數量的增加而更加顯著,改進后的系統在處理并發用戶數量增多的情況下表現更加出色,相較于原有系統,其響應時間的性能提升更為顯著。

多級緩存策略為分布式架構下的權限認證體系帶來了明顯的優勢,它通過當前作用域結合分布式緩存的方式有效地減輕了對數據庫的頻繁訪問壓力。系統在驗證用戶權限時無須每次都進行數據庫查詢,而可以快速從緩存中獲取所需信息,從而實現更短的響應時間。隨著用戶請求數量的增加,原有系統面臨數據庫響應時間逐漸增加的問題,因為數據庫負載不斷上升。改進后的系統在這種情況下更具競爭力,因為它能夠有效地維護緩存中的權限數據,減輕了數據庫的負擔,從而保持了更短的響應時間。

5" 結" 論

綜合以上實驗驗證,本研究旨在優化分布式架構下的權限認證體系。通過多級緩存策略,成功提升了系統性能,減少了對數據庫的訪問壓力。基于令牌的認證方式在分布式環境下表現出色,提高了系統的靈活性和性能,同時保持了安全性。但是也有一些挑戰,例如令牌處理可能需要更多資源。在實際應用中,需要進一步考慮緩存一致性和更新機制的問題。總體而言,本文提出的優化策略為構建高效、安全的分布式權限認證體系提供了有益思路,未來可以進一步探索更多技術手段以不斷優化系統性能和安全性。

參考文獻:

[1] 辛園園,鈕俊,謝志軍,等.微服務體系結構實現框架綜述 [J].計算機工程與應用,2018,54(19):10-17.

[2] 顧慧杰.基于微服務架構的用戶認證與授權技術的研究與應用 [D].北京:北京印刷學院,2022.

[3] 郭曉宇,阮樹驊.基于OAuth 2.1的統一認證授權框架研究 [J].信息安全研究,2022,8(9):879-887.

[4] 顧慧杰.基于微服務架構的用戶認證與授權技術的研究與應用 [D].北京:北京印刷學院,2022.

[5] 童敏,張黎娜,梁伍七.基于JWT的分布式系統認證授權機制設計和實現 [J].合肥師范學院學報,2022,40(3):7-10.

[6] 項武銘,鮑亮,俞少華.基于JWT的RESTful API角色權限驗證方案設計 [J].現代計算機,2018(34):82-85.

[7] 劉東,任海玲.基于差分隱私的大數據安全訪問權限認證仿真 [J].計算機仿真,2021,38(8):421-424+486.

[8] 陳超,段茹茹,陳勇,等.標識解析應用中數據權限的控制方法 [J].工業控制計算機,2023,36(4):61-62+65.

[9] 陳佳.一種基于JWT令牌認證的電力系統微服務認證授權方案 [J].電工技術,2021(16):151-154.

[10] 葉天琦.基于緩存技術的認證授權系統性能優化 [J].信息技術與標準化,2021(8):59-62.

作者簡介:劉家琳(1999—),女,漢族,湖北丹江口人,碩士在讀,研究方向:軟件工程;顏小芳(1999—),女,漢族,浙江溫州人,碩士在讀,研究方向:科學學科教學設計與實踐;孫悅(1999—),女,漢族,河南洛陽人,碩士在讀,研究方向:人工智能;趙亞偉(1997—),男,漢族,河南周口人,碩士在讀,研究方向:數據分析;通訊作者:楊懌(1979—),男,漢族,湖北黃石人,高級實驗師,碩士,研究方向:軟件工程、數據分析。

收稿日期:2023-10-25

主站蜘蛛池模板: 国产精品v欧美| 999精品色在线观看| 重口调教一区二区视频| 黄色在线不卡| 青青草91视频| 99视频在线免费看| 国产靠逼视频| 五月婷婷精品| 色婷婷亚洲十月十月色天| 老色鬼久久亚洲AV综合| 久久成人免费| 性色生活片在线观看| 亚洲六月丁香六月婷婷蜜芽| 福利一区三区| 欧美精品综合视频一区二区| 91成人精品视频| 国产在线精品网址你懂的| 欧美不卡二区| 喷潮白浆直流在线播放| 97国产成人无码精品久久久| 免费av一区二区三区在线| 男女男精品视频| 日韩欧美亚洲国产成人综合| 日本一本在线视频| 国产人人乐人人爱| A级全黄试看30分钟小视频| 久视频免费精品6| 中日无码在线观看| 凹凸精品免费精品视频| 97国产在线视频| 国产成人综合亚洲欧洲色就色| 欧美激情视频一区二区三区免费| 亚洲区一区| 日韩123欧美字幕| 欧美日韩福利| 国产精品无码翘臀在线看纯欲| 99人妻碰碰碰久久久久禁片| 97久久免费视频| 亚洲性日韩精品一区二区| 亚洲天堂福利视频| 亚洲第七页| 99在线免费播放| 久久精品人妻中文系列| 国产精品福利导航| 日韩天堂视频| 亚洲欧美另类视频| a毛片在线| 国产精品免费p区| 91精品国产综合久久不国产大片| 日本91在线| 四虎亚洲精品| 亚洲第一成人在线| 国产麻豆精品在线观看| aaa国产一级毛片| 视频二区中文无码| 57pao国产成视频免费播放| 欧美黄色a| 亚洲精品欧美日本中文字幕| 久久黄色视频影| 精品国产免费观看一区| 亚洲第一香蕉视频| 日本一区二区不卡视频| 久久综合九色综合97网| 国产黄在线免费观看| 国产精品第一区| 天天综合色网| 亚洲色成人www在线观看| 亚洲AV免费一区二区三区| 国产精品吹潮在线观看中文| 伊人中文网| 无码丝袜人妻| 日本久久网站| 美女免费精品高清毛片在线视| 真人免费一级毛片一区二区| 色一情一乱一伦一区二区三区小说| 久久超级碰| 亚洲国模精品一区| 亚洲精品成人片在线观看 | 国产女人在线视频| 九月婷婷亚洲综合在线| 欧美成人综合在线| 国产91丝袜|