前面幾篇文章介紹了單點登錄的本質(zhì),包括cookie、session、重定向的基本概念,單點登錄的基本交互流程,cookie的重要性和安全問題。單點登錄能夠確保:必須通過身份驗證后,才能訪問網(wǎng)站,且訪問多個系統(tǒng)時,只需要登錄一次。
創(chuàng)新互聯(lián)是專業(yè)的尋甸網(wǎng)站建設(shè)公司,尋甸接單;提供成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行尋甸網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!一般系統(tǒng)都會有多個角色,不同角色可訪問的系統(tǒng)功能不同,通過給用戶分配不同角色,決定用戶可訪問的系統(tǒng)功能。
繼續(xù)介紹「單點登錄與權(quán)限管理」系列的第一部分:單點登錄與權(quán)限管理本質(zhì),本篇說說權(quán)限管理,主要從以下幾個方面介紹:
權(quán)限驗證的過程比較簡單,描述如下:
如何管理和分配用戶權(quán)限呢,一般會抽象出如下實體概念:
另外,為了方便權(quán)限管理,會單獨抽取一個服務(wù)「用戶中心」,統(tǒng)一管理用戶、角色和各個系統(tǒng)的權(quán)限菜單。權(quán)限菜單由各個子系統(tǒng)同步到「用戶中心」或者提供批量導(dǎo)入的功能,權(quán)限菜單標(biāo)識的規(guī)則要提前約定好,一致的菜單標(biāo)識有助于權(quán)限攔截的判斷。
簡單截取幾個我們項目中的頁面,加深下理解:
添加用戶時,需要選擇角色
添加角色時,需要選擇權(quán)限菜單
用戶擁有了訪問和操作某些數(shù)據(jù)的權(quán)限,但不代表可以訪問所有的數(shù)據(jù),可能只能訪問和操作自己的數(shù)據(jù),可能只能訪問和操作組內(nèi)的數(shù)據(jù),這是更細粒度的權(quán)限控制。
權(quán)限驗證的位置可能在前端、可能在后端。前端根據(jù)當(dāng)前用戶的權(quán)限,顯示不同的菜單項、操作按鈕,后端根據(jù)當(dāng)前用戶的權(quán)限,驗證操作的合法性,返回可訪問的數(shù)據(jù)集合,權(quán)限驗證位置也要考慮全面。
比如有這樣一個場景:有一個查詢訂單接口供外部調(diào)用,可根據(jù)訂單編號返回訂單詳情。
如果訂單編號有規(guī)則可尋,且后端不對訂單所屬人進行判斷,就可以查看其他人訂單的信息,所以,需要更細粒度的判斷,驗證訂單的所屬人。
另外可以通過角色、菜單權(quán)限2個粒度進行權(quán)限驗證:
<shiro:hasPermission name="permission1">
<h3>擁有permission1權(quán)限可以看到這里</h3>
</shiro:hasPermission>
<shiro:hasRole name="role">
<h3>擁有role角色可以看到這里</h3>
</shiro:hasRole>
為了讓用戶體驗足夠好,用戶無法操作的菜單項和操作按鈕不需要再顯示了,需要在前端進行驗證,比如添加用戶的操作:
<shiro:hasPermission name="user:add">
<a href='user/add'>添加用戶</a>
</shiro:hasPermission>
只有前端驗證也不行,可以通過模擬HTTP請求繞過前端訪問,后端也要進行驗證,shiro提供了攔截器進行統(tǒng)一處理。
Shiro是apache下的開源軟件,一個的安全框架,對用戶的身份和權(quán)限進行管理和驗證,看看官網(wǎng)對它的概述:
Apache Shiro? is a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and session management
本篇不會介紹Shiro的細節(jié),只是通過介紹Shiro的基本組件,對應(yīng)到權(quán)限管理的一般模型。
Shiro的基本架構(gòu)如下:
通過上面的介紹可以看出,Shiro的基本組件與總結(jié)的「一般模型」是對應(yīng)的,它幫助我們實現(xiàn)了整個用戶驗證、權(quán)限驗證、會話管理的流程,同時提供緩存管理、加解密封裝提高了性能和安全性,通過Realm插件的方式支持擴展,自定義實現(xiàn)類獲取用戶、權(quán)限數(shù)據(jù)。
以用戶身份認證為例,說明幾個組件的交互過程:
到此,系列第一部分「單點登錄與權(quán)限管理本質(zhì)」就介紹完了,通過5篇文章,把自己想說的本質(zhì)說完了,基礎(chǔ)概念肯定會有遺漏,后續(xù)部分學(xué)習(xí)、總結(jié)過程中,會不斷補充。
還原技術(shù)的本質(zhì),把復(fù)雜的技術(shù)、框架抽象來看,形成一個相對簡單、容易理解的視圖,能夠更好的理解、擴展、應(yīng)用它。
對于單點登錄,通過cookie、http重定向,可自動進行跳轉(zhuǎn)和身份驗證,達到登錄一次,可訪問多個子系統(tǒng)的效果。
對于權(quán)限管理,了解其一般的模型和驗證流程,加上成熟的實現(xiàn)框架,可以快速、全面、穩(wěn)定地實現(xiàn)它,并在此基礎(chǔ)上進行擴展。
另外,cookie、用戶的賬號權(quán)限信息很重要,要不斷積累安全方面的知識,提高其安全性。
接下來的第二部分主要是實踐,會仿照我們的系統(tǒng)做一個DEMO,利用CAS、Shiro框架實現(xiàn)單點登錄和權(quán)限管理。另外,會抽象出一個「用戶中心」,管理用戶、角色、權(quán)限菜單,各個子系統(tǒng)通過同步方式同步自己的權(quán)限菜單。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)頁名稱:單點登錄與權(quán)限管理本質(zhì):權(quán)限管理介紹-創(chuàng)新互聯(lián)
當(dāng)前URL:http://chinadenli.net/article16/cdpigg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、域名注冊、全網(wǎng)營銷推廣、網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容