微服務(wù)器怎么改變安全性 微服務(wù)serverless

Spring Cloud Security[微服務(wù)安全](一)初識(shí)Spring Cloud Security和OAuth2.0

在介紹Spring Cloud Security之前,我們先要介紹一下Spring Security。

成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都營(yíng)銷(xiāo)網(wǎng)站建設(shè)、網(wǎng)站重做改版、西湖網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5、商城系統(tǒng)網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為西湖等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

Spring Security是一套提供了完整的聲明式安全訪問(wèn)控制的解決方案。

Spring Security是基于Spring AOP和Servlet過(guò)濾器的,它只能服務(wù)基于Spring的應(yīng)用程序。

除常規(guī)認(rèn)證和授權(quán)外,它還提供 ACL,LDAP,JAAS,CAS 等高級(jí)安全特性以滿足復(fù)雜環(huán)境中的安全需求。

(注:在Spring Security中,Authority和Permission是兩個(gè)完全獨(dú)立的概念,兩者沒(méi)有必然的聯(lián)系。它們之前需要通過(guò)配置進(jìn)行關(guān)聯(lián)。)

安全方案的實(shí)現(xiàn)通常分為 認(rèn)證(Authentication) 和 授權(quán)(Authorization) 兩部分。

使用者可以使一個(gè) 用戶 , 設(shè)備 ,和可以在應(yīng)用程序中執(zhí)行某種操作的 其它系統(tǒng) 。

認(rèn)證一般通過(guò)用戶名和密碼的正確性校驗(yàn)來(lái)完成通過(guò)或拒絕。

Spring Security支持的主流認(rèn)證如下:

Spring Security進(jìn)行認(rèn)證的步驟:

++++++++++++++++++++++++++++++++++++++++++++++++++++++

++ 1. 用戶使用用戶名和密碼登陸

++

++ 2. 過(guò)濾器(UsernamePasswordAuthenticationFilter)獲取到用戶名

++ ???和密碼,將它們封裝成Authentication

++

++ 3. AuthenticationManager認(rèn)證Token(由Authentication實(shí)現(xiàn)類傳遞)

++

++ 4. AuthenticationManager認(rèn)證成功,返回一個(gè)封裝了用戶權(quán)限信息

++ ???的Authentication對(duì)象,包含用戶的上下文信息(角色列表)

++

++ 5. 將Authentication對(duì)象賦值給當(dāng)前的SecurityContext,建立這個(gè)用戶

++ 的安全上下文( SecurityContextHolder.getContext.setAuthentication() )

++

++ 6. 當(dāng)用戶進(jìn)行一些受到訪問(wèn)控制機(jī)制保護(hù)的操作,訪問(wèn)控制機(jī)制會(huì)依據(jù)

++ ???當(dāng)前安全的上下文信息來(lái)檢查這個(gè)操作所需的權(quán)限

++++++++++++++++++++++++++++++++++++++++++++++++++++++

Spring Security提供了一系列基本組件,如spring-security-acl, spring-security-cas, spring-security-oauth2等。

具體這里就不詳述了,讀者可以查看官網(wǎng)的介紹。

Spring Cloud Security是用于構(gòu)建微服務(wù)系統(tǒng)架構(gòu)下的安全的應(yīng)用程序和服務(wù),它可以輕松實(shí)現(xiàn)基于微服務(wù)架構(gòu)的統(tǒng)一的安全認(rèn)證與授權(quán)。

Spring Cloud Security相對(duì)于Spring Security整合了Zuul,F(xiàn)eign,而且更加完美地整合了OAuth2.0。

OAuth 2.0是用于授權(quán)的行業(yè)標(biāo)準(zhǔn)協(xié)議。

原理:

OAuth2是用戶資源和第三方應(yīng)用之間的一個(gè)中間層。

它把資源和第三方應(yīng)用隔開(kāi),使得第三方應(yīng)用無(wú)法直接訪問(wèn)資源,第三方應(yīng)用要訪問(wèn)資源需要通過(guò)提供 憑證(Token) 來(lái)獲得OAuth 2.0授權(quán)。

OAuth2的典型例子:

==============================================

== 微信公眾號(hào)授權(quán)提醒

== 頁(yè)面彈出一個(gè)提示框需要獲取我們的個(gè)人信息

== 單擊確定

== 第三方應(yīng)用會(huì)獲取我們?cè)谖⑿殴娖脚_(tái)中的個(gè)人信息

==============================================

OAuth的關(guān)鍵角色:

在用戶授權(quán)第三方獲取私有資源后,第三方通過(guò)獲取到的token等信息通過(guò)授權(quán)服務(wù)器認(rèn)證,然后去資源服務(wù)器獲取資源。

密碼模式中,資源擁有者負(fù)責(zé)向客戶端提供用戶名和密碼;

客戶端根據(jù)用戶名和密碼箱認(rèn)證服務(wù)器申請(qǐng)令牌,正確后認(rèn)證服務(wù)器發(fā)放令牌。

客戶端請(qǐng)求參數(shù):

缺點(diǎn):

用戶對(duì)客戶端高度可信,必須把自己的密碼發(fā)給客戶端,存在被黑客竊取的隱患(不推薦)。

在授權(quán)碼模式中,客戶端是通過(guò)其后臺(tái)服務(wù)器與認(rèn)證服務(wù)器進(jìn)行交互的。

授權(quán)碼模式的運(yùn)行流程:

從以上圖中我們可以看到客戶端服務(wù)器和認(rèn)證服務(wù)器需經(jīng)過(guò)2次握手,客戶端服務(wù)器才能拿到最終的訪問(wèn)和更新令牌。

客戶端申請(qǐng)認(rèn)證的參數(shù):

服務(wù)器返回的參數(shù):

客戶端收到授權(quán)碼以后,附上重定向URI,向認(rèn)證服務(wù)器申請(qǐng)?jiān)L問(wèn)令牌。

客戶端申請(qǐng)令牌的參數(shù):

服務(wù)器返回的參數(shù):

如果訪問(wèn)令牌已經(jīng)過(guò)期,可以使用更新令牌申請(qǐng)一個(gè)新的訪問(wèn)令牌。

通過(guò)更新令牌申請(qǐng)?jiān)L問(wèn)令牌的參數(shù):

這兩種模式不常用,因此在這里就不多敘述了。

微服務(wù)架構(gòu) | 服務(wù)之間跨域問(wèn)題怎么解決?

當(dāng)前微服務(wù)拆分已經(jīng)成為趨勢(shì),大部分公司都對(duì)其軟件產(chǎn)品做微服務(wù)架構(gòu)調(diào)整。對(duì)產(chǎn)品先進(jìn)行業(yè)務(wù)、模塊拆分,大部分也進(jìn)行前后端分離的業(yè)務(wù)調(diào)整。

服務(wù)拆分不能避免的問(wèn)題那就是:請(qǐng)求跨域問(wèn)題,針對(duì)跨域問(wèn)題,先前專門(mén)做了資料整理

針對(duì)這些問(wèn)題可以查看 《SpringCloud 中跨域資源共享(cors)到底解決了什么?》

還有解決跨域問(wèn)題開(kāi)啟跨域資源共享(cors)后。

針對(duì)這系列問(wèn)題可查看 《微服務(wù)開(kāi)啟跨域資源共享(cors)后,真的會(huì)被攻擊么?》

閱讀CorsConfiguration源碼可以發(fā)現(xiàn)在CORS 配置中定義

基礎(chǔ)CorsConfiguration的定義可自定義跨域配置信息CorsConfig 實(shí)現(xiàn) CorsConfigurationSource

注意在配置時(shí)候引用注解@ConfigurationProperties為什么這里使用單一注解并沒(méi)有直接注入到Bean容器中?針對(duì)這問(wèn)題的分析可閱讀 《@

EnableConfigurationProperties 的工作原理》

配置信息CorsConfig基礎(chǔ)信息后實(shí)現(xiàn)getCorsConfiguration方法

定義Web線程攔截器為了,用于統(tǒng)一處理線程變量!同一個(gè)服務(wù)肯定不會(huì)出現(xiàn)跨域問(wèn)題。只有不同服務(wù)之間調(diào)用才會(huì)出現(xiàn)此類問(wèn)題。記得先前在分析 《怎樣在輸出日志中加入traceId 進(jìn)行鏈路追蹤》 和 《如何保證各個(gè)微服務(wù)之間調(diào)用的安全性?****》 對(duì)個(gè)服務(wù)之間RPC調(diào)用請(qǐng)求線程變量傳遞問(wèn)題。

本文主要微服務(wù)之間跨域問(wèn)題的解決方案,至于為什么會(huì)存在跨域問(wèn)題和跨域問(wèn)題開(kāi)啟后會(huì)有哪些攻擊模式

在上幾篇文章中已逐步分析,解決微服務(wù)跨域問(wèn)題主要分三步走

微服務(wù)網(wǎng)關(guān)安全

單體應(yīng)用場(chǎng)景下只需要考慮從外部進(jìn)來(lái)的請(qǐng)求是不是安全的,里面涉及到的服務(wù)之間相互的調(diào)用是不需要我們考慮安全的,但是在微服務(wù)場(chǎng)景下從訂單去調(diào)用物流的時(shí)候,是需要跨網(wǎng)絡(luò),從一個(gè)進(jìn)程進(jìn)入另一個(gè)進(jìn)程,所以需要考慮 服務(wù)之間的通信安全

對(duì)于一個(gè)服務(wù)來(lái)說(shuō),可觀測(cè)性是一個(gè)很重要的指標(biāo),可觀測(cè)性包含了三個(gè)方面的意義

真正的人

可能是一個(gè) Web App 或者手機(jī) App,用戶會(huì)直接訪問(wèn)這些應(yīng)用

存儲(chǔ)資源的服務(wù)器

關(guān)于微服務(wù)架構(gòu)特點(diǎn)分析?

隨著互聯(lián)網(wǎng)的不斷發(fā)展,我們?cè)谶M(jìn)行服務(wù)器開(kāi)發(fā)組織架構(gòu)上通常會(huì)采用分布式架構(gòu)方法來(lái)進(jìn)行設(shè)計(jì)。今天,我們就一起來(lái)了解一下,微服務(wù)架構(gòu)都有哪些特點(diǎn)。

InfoQ:你近的QConSanFrancisco提出的一個(gè)關(guān)鍵前提是,組織如果要從單體大型應(yīng)用轉(zhuǎn)變?yōu)榛谖⒎?wù)的體系結(jié)構(gòu)就得要打破它們的龐大的整體流程。你能再進(jìn)一步解釋一下嗎?

RafaelSchloming:對(duì)于轉(zhuǎn)變?yōu)槲⒎?wù)本身,人們實(shí)際上并不怎么關(guān)心,他們真正關(guān)心的是提升特性的完成速度。為了提升特征的完成速度就必需做出改變,而微服務(wù)只是這種改變所產(chǎn)生的一個(gè)附屬物罷了。

對(duì)于組織來(lái)說(shuō)非常常見(jiàn)的一種情況是,當(dāng)他們發(fā)展到一個(gè)臨界點(diǎn),增加再多的人也不會(huì)提升特性的完成速度。當(dāng)這種情況發(fā)生時(shí),通常是因?yàn)榻M織用于產(chǎn)出特性的結(jié)構(gòu)和/或過(guò)程成為了瓶頸,而不是人員的數(shù)量。

當(dāng)一個(gè)組織遇到這種障礙,開(kāi)始調(diào)查為什么這些特性似乎花費(fèi)的時(shí)間遠(yuǎn)遠(yuǎn)超出了合理的資源,答案往往是,每個(gè)特性都需要太多不同團(tuán)隊(duì)的協(xié)調(diào)。

這會(huì)發(fā)生在兩個(gè)不同的維度上。你的人員可以按職能劃分為團(tuán)隊(duì):產(chǎn)品與開(kāi)發(fā)、質(zhì)保與運(yùn)維。你的人員也可以按組件劃分:例如,前端與領(lǐng)域模型、搜索索引和消息通知。當(dāng)單個(gè)特性需要跨多個(gè)不同的團(tuán)隊(duì)進(jìn)行協(xié)調(diào)時(shí),交付特性的控制因素是不同團(tuán)隊(duì)之間的溝通速度和效率。像這樣組織結(jié)構(gòu)的組織實(shí)際上是被一個(gè)龐大的整體過(guò)程所阻礙的,這個(gè)過(guò)程要求每個(gè)特性(在某種程度上)要有許多許多的組織來(lái)理解它。

InfoQ:那么如何解決這個(gè)問(wèn)題呢?

Schloming:為了把很多人用在一個(gè)問(wèn)題上,你需要把他們分成團(tuán)隊(duì),因?yàn)槿藗儾荒茉诜浅4蟮娜后w中有效地溝通。你這么做的時(shí)候,其實(shí)就是在做出一系列的權(quán)衡。你所營(yíng)造的是每支團(tuán)隊(duì)內(nèi)部具有高保真的溝通和協(xié)調(diào),而團(tuán)隊(duì)之間是低保真和相對(duì)較差的協(xié)調(diào)。

為改進(jìn)一個(gè)組織內(nèi)的特性完成速度,您可以將你的人組織成獨(dú)立的、跨職能的、自給自足的特性團(tuán)隊(duì),可以從頭到尾自主掌控一個(gè)完整的特性。這將以兩種方式提高特性的完成速度。先,由于不同的職能(產(chǎn)品、開(kāi)發(fā)、質(zhì)保和運(yùn)維)都圈定于一個(gè)特性內(nèi),你就可以自定義該特性區(qū)域的流程了,例如,IT培訓(xùn)分享對(duì)于一個(gè)沒(méi)有人正在使用的新特性,你的流程就不需要優(yōu)先考慮其穩(wěn)定性了。其次,由于該特性所需的所有組件都由同一個(gè)團(tuán)隊(duì)擁有,因此,要想趕緊推出一個(gè)特性,就可以進(jìn)行更快速有效的溝通和協(xié)調(diào)。

分享名稱:微服務(wù)器怎么改變安全性 微服務(wù)serverless
當(dāng)前鏈接:http://muchs.cn/article44/dohdgee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、小程序開(kāi)發(fā)、響應(yīng)式網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)