在线观看av毛片亚洲_伊人久久大香线蕉成人综合网_一级片黄色视频播放_日韩免费86av网址_亚洲av理论在线电影网_一区二区国产免费高清在线观看视频_亚洲国产精品久久99人人更爽_精品少妇人妻久久免费

首頁 > 文章中心 > 正文

微服務認證授權方案分析

前言:本站為你精心整理了微服務認證授權方案分析范文,希望能為你的創(chuàng)作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。

微服務認證授權方案分析

信息化的高速發(fā)展推動了計算機應用架構的迭代演進,傳統(tǒng)單體應用項目的認證與授權方式已不適用于基于微服務架構的系統(tǒng)應用。本文提出了一種微服務架構下的認證授權方案,基于ApacheShrio整合Oauth2.0協(xié)議,實現(xiàn)獨立的微服務認證與授權中心;整合JWT作為認證令牌,增強系統(tǒng)的安全性、易用性。對于原有項目升級改造以及微服務應用構建開發(fā)均具備一定的參考價值。隨著網絡技術的發(fā)展、應用規(guī)模的不斷擴大,以及應用場景的日趨復雜化,計算機應用架構也在不斷演變,逐漸從單體應用架構演化出了微服務架構等更加有利于資源匹配的架構形式。隨之產生的問題是單體架構中的認證授權機制不能直接應用到微服務架構中,需要重新設計一種認證授權方案,使其符合微服務無狀態(tài)、資源分散、技術多樣性等特點。ApacheShrio作為單體應用中的主流安全框架,是一個強大易用的Java安全框架,提供了認證、授權、加密和會話管理等功能,可以為任何應用提供安全保障[1]。Shiro提供的接口使其具有靈活的擴展能力,具備擴展為微服務架構安全框架的可能性。Oauth2.0協(xié)議的出現(xiàn)則為開發(fā)人員提供了一整套適用于微服務架構的認證授權開發(fā)標準。本文基于上述技術,研究了單體項目和微服務認證授權的機制,提出一種微服務架構下的認證與授權方案。

1技術路線

1.1微服務微服務是一種軟件架構方案,通常由一組職責單一、具備自治性的獨立服務組成。服務之間由服務注冊、服務發(fā)現(xiàn)、網關、鏈路追蹤、熔斷機制等技術進行管理、維護。相較于單體項目,微服務架構具備以下優(yōu)勢:(1)彈性配置。微服務之間通過一些輕量級的通信機制進行通信,由于服務本身及網絡情況的不確定性,通信間的交互可能出現(xiàn)故障。由于微服務架構中的服務通常具備獨立職責且結構完整,而微服務應用程序的彈性也主要取決于微服務通信的可靠性。因此微服務提供了許多機制來保證微服務應用程序的彈性,其中包括超時、重試、斷路器、快速故障、隔板、事務、負載平衡,故障轉移和保證的交付等。(2)獨立擴展。在傳統(tǒng)單體項目中,對單一服務進行拓展時,由于系統(tǒng)間的服務耦合度高,導致系統(tǒng)整體也會受到影響。而微服務體系是由一組相對獨立的服務組成,可以指向性地針對特定服務進行單獨擴展,這樣就能根據(jù)實際需求合理分配資源到不同的服務中去,從而達到最佳的性能效果。(3)簡化部署。單體項目改版發(fā)布的難度隨其代碼規(guī)模的增長而增長,任何變動都需要整個項目重新部署。對于大體量項目來說,項目的重新部署以及處理可能產生的BUG都需要很高的成本,且具有很高的風險度。微服務由于互相之間相對獨立,單一微服務體量小易部署,即使產生BUG,也能夠快速回滾到之前的穩(wěn)定版本進行部署,對當前運行的其他程序影響不大。

1.2ApacheShiroApacheShiro是一種功能強大且易于使用的Java安全框架,它具有身份驗證、訪問授權、數(shù)據(jù)加密、會話管理等功能,可用于保護任何應用程序的安全[2]。Shiro主要由3個組件構成,分別為主體(Subject)、安全管理器(SecurityManager)和領域(Realm)。(1)主體。Subject是一個抽象概念,表示與程序交互的對象,是Shiro框架對外的核心對象。代表當前“用戶”,“用戶”一次不一定指的是人,也可以是其他應用程序、接口等。Subject作為對外接口,其中的交互操作實際都是由SecurityManager來完成。(2)安全管理器。SecurityManager是Shiro框架的核心組件。所有涉及系統(tǒng)安全的相關操作都會與SecurityManager進行交互,SecurityManager負責管理Shiro中的其他組件,協(xié)調各組件共同完成安全管理任務。(3)領域。Realm是安全信息數(shù)據(jù)源,內部封裝了通用數(shù)據(jù)源鏈接,用于作為安全驗證的參考數(shù)據(jù)。當進行授權、令牌獲取、令牌認證等操作時,Shiro通過配置的Realm查找相關的數(shù)據(jù)信息,Realm可以配置一個或多個。當Shrio默認提供的Realm無法滿足需求時,可以自定義領域實現(xiàn),形成定制化數(shù)據(jù)源。

1.3JWTJsonWebToken(JWT)是一個基于RFC7519的信息傳遞協(xié)議,是為了在網絡應用環(huán)境間傳遞聲明而執(zhí)行的一種基于JSON的開放標準[3]。JWT是由點符號連接的3個部分組成,分別為標頭(Header)、載荷(Payload)和簽名(Signature),其中Header存儲了所使用的加密算法和Token類型;Payload是一個JSON對象,作為JWT的主體部分,官方規(guī)定了7個字段供開發(fā)者選用,也可以自定義字段和內容;Signature是對前2個部分的簽名,作用是防止數(shù)據(jù)篡改。這3個部分分別單獨進行Base64編碼后使用點符號拼接成完整的JWT。相比傳統(tǒng)的Session認證方式,基于Token的認證方式更適用于移動端和分布式,且更節(jié)約計算資源,具備支持跨域訪問、無狀態(tài)、適用于CDN、無需考慮CSRF等特性。

1.4Oauth2.0OAuth2.0是一個授權第三方服務訪問Web項目的安全協(xié)議。OAuth2.0將第三方應用與用戶的安全信息進行分隔,并且提供簡單、標準的實現(xiàn)方案來訪問應用中受保護的資源。該協(xié)議具備開放、靈活、簡單、安全等特點。OAuth2.0采用無狀態(tài)的認證授權方式,以令牌作為安全信息的載體,適用于多服務獨立部署的微服務架構。令牌基于Rest風格的API在服務間進行傳遞。1.5ApacheOltuApacheOltu是OAuth2.0協(xié)議基于Java語言的實現(xiàn),具有輕量、簡單、靈活等特點。ApacheOltu源碼包分為4個部分:(1)Issuer:生成授權碼和訪問令牌,刷新令牌;(2)Request:封裝授權碼請求和令牌請求的邏輯,并提供相應的校驗服務;(3)Response:封裝授權流程中的響應邏輯,提供生成不同響應結果的方法;(4)Validator:為Request提供校驗服務。

2方案設計

(1)微服務入口處理。微服務架構通常由API網關作為系統(tǒng)對外的唯一入口。因此網關可以整合令牌的初步認證。通過獲取請求中的令牌信息,并對信息進行解析、校驗等操作,實現(xiàn)身份認證以及部分授權功能。另外,網關需要設置白名單,即驗證碼、令牌獲取等請求不需要進行身份認證即可訪問。(2)獲取授權碼。當外部應用對服務發(fā)起授權碼請求時,網關通過判斷請求在白名單列表中,直接將請求轉發(fā)至認證中心。認證中心對用戶名密碼進行驗證,驗證通過后生成授權碼,并以重定向URL參數(shù)的形式返回給用戶。(3)令牌的選擇及獲取。方案采取無狀態(tài)認證授權方式,使用Token作為安全信息載體。為提高令牌的安全性、易用性、靈活性,采用JWT作為令牌實現(xiàn)。經由網關白名單釋放的令牌獲取請求到達認證中心。認證中心對請求中攜帶的授權碼驗證,驗證通過后生成驗證碼。(4)資源授權。當請求攜帶有效Token訪問服務時,網關通過對Token的解析,獲取身份信息及權限信息。并將信息重新加密后通過請求傳遞給資源中心,資源中心解密信息后,將信息存入安全上下文。資源中心根據(jù)上下文中的權限信息對請求進行授權并獲取資源,最終完成請求訪問流程。

3功能實現(xiàn)

網關整合令牌認證通過實現(xiàn)SpringCloudGateway的GlobalFilter實現(xiàn)對網關訪問請求的攔截,從中獲取令牌,并使用JWTStore進行解析,獲取權限信息及身份信息并進行身份認證。認證通過后,將安全信息編碼后添加到請求,通過FilterChain向后傳遞。4結語本文通過對ApacheShiro、JWT、微服務架構等技術的介紹與分析,提出了一種基于ApacheShiro的微服務認證授權方案。方案在保留Shiro原有特性的前提下,實現(xiàn)了對微服務架構的適配,具有高效率、高安全性、低耦合度、可擴展等特點。方案所實現(xiàn)的安全框架能夠完成認證授權在微服務架構中的完全覆蓋,同時也保留了一定的靈活性,讀者可以根據(jù)實際情況調整安全框架的有效范圍,從而找到應用整體的最佳運行效果。

引用

[1]時子慶,劉金蘭,譚曉華.基于OAuth2.0的認證授權技術[J].計算機系統(tǒng)應用,2012,21(3):260-264.

[2]梁清華,胡安明.ApacheShiro框架在Web系統(tǒng)的安全應用研究[J].電腦知識與技術,2021,17(6):52-53.

[3]范展源,羅福強.JWT認證技術及其在WEB中的應用[J].數(shù)字技術與應用,2016(2):114.

作者:林哲 單位:作者:單位:

文檔上傳者

相關期刊

家庭服務

部級期刊 審核時間1個月內

中華人民共和國人力資源和社會保障部

藥學服務與研究

省級期刊 審核時間1-3個月

海軍軍醫(yī)大學

藥學實踐與服務

統(tǒng)計源期刊 審核時間1-3個月

海軍軍醫(yī)大學

江都市| 射阳县| 大化| 平武县| 胶州市| 江陵县| 容城县| 五指山市| 台安县| 聊城市| 美姑县| 民和| 玛沁县| 孙吴县| 连州市| 合阳县| 于田县| 武乡县| 绥棱县| 台北市| 闻喜县| 延寿县| 化德县| 辽阳市| 桦甸市| 安平县| 吉林省| 原平市| 西青区| 泾源县| 宜君县| 金阳县| 巴马| 磐安县| 若羌县| 惠东县| 大石桥市| 南郑县| 余江县| 普兰县| 江阴市|