資源描述:
《漫談權(quán)限系統(tǒng)系列之概述、目的和需求》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、一.?概述本文根據(jù)對(duì)中小型應(yīng)用系統(tǒng)的權(quán)限系統(tǒng)的需求進(jìn)行闡述,并對(duì)通常用于實(shí)現(xiàn)權(quán)限系統(tǒng)的兩種思想、技術(shù)策略以及技術(shù)實(shí)現(xiàn)方案進(jìn)行描述,比較其優(yōu)缺點(diǎn),同時(shí)對(duì)開(kāi)源類(lèi)型的產(chǎn)品進(jìn)行介紹,最后結(jié)合自己的實(shí)際經(jīng)驗(yàn)介紹自己的實(shí)現(xiàn)方案以及碰到的難點(diǎn)。本文并不是什么理論化的文章,完全是實(shí)戰(zhàn)型的總結(jié)和實(shí)戰(zhàn)的討論,至于理論請(qǐng)大家去參考更為專(zhuān)業(yè)的文章。二.?目的此文的編寫(xiě)作為自己對(duì)于權(quán)限系統(tǒng)進(jìn)行系統(tǒng)化的整理,畢竟權(quán)限系統(tǒng)是幾乎所有系統(tǒng)中都需要的,但一直以來(lái)由于在權(quán)限系統(tǒng)上并沒(méi)有什么通用的方案,所以幾乎是N多的人都實(shí)現(xiàn)了自己的一套,在此我也是拋磚引玉。三.?需求3.1.????
2、??描述這里對(duì)于需求的描述都是基于自己工作以來(lái)實(shí)際項(xiàng)目需求的經(jīng)驗(yàn)而綜合的,如有遺漏之處歡迎大家補(bǔ)充,不過(guò)也希望大家明白范圍,是指中小型系統(tǒng),至于大型的企業(yè)系統(tǒng)從來(lái)就沒(méi)做過(guò),我也無(wú)從提出需求。從一個(gè)實(shí)際的場(chǎng)景來(lái)描述一般中小型系統(tǒng)中涉及的權(quán)限需求吧,在通常的B/S系統(tǒng)中,首頁(yè)列出不需登錄可訪問(wèn)的信息,登錄后則根據(jù)用戶擁有的權(quán)限顯示相應(yīng)的菜單,在具體菜單對(duì)應(yīng)的模塊里根據(jù)用戶的權(quán)限顯示相應(yīng)權(quán)限的按鈕,同時(shí)顯示當(dāng)前用戶可訪問(wèn)的相應(yīng)的資源。非功能性的需求:l????????簡(jiǎn)便的授權(quán)方式。避免每增加一個(gè)用戶就要不斷的去授予N多的權(quán)限,避免相同權(quán)限的用戶還要去相
3、同的授予,提供出分組的功能。l????????權(quán)限的繼承。在上面提出分組的功能后考慮到組應(yīng)支持嵌套功能,即子組自動(dòng)繼承父組的權(quán)限,這樣授權(quán)時(shí)就更加簡(jiǎn)便了。l????????高性能。不能因?yàn)樾r?yàn)權(quán)限而嚴(yán)重影響到系統(tǒng)的性能。l????????安全性。除正常途徑方式訪問(wèn)系統(tǒng)的保護(hù)外,也需要避免通過(guò)非正常的途徑訪問(wèn)系統(tǒng)中受保護(hù)的資源。除了這些用戶通常直接提出的需求外,在實(shí)際的項(xiàng)目中通常還會(huì)有這些需求:l????????權(quán)限的排斥和包含。用戶在實(shí)際的使用后通常會(huì)提出這個(gè)需求,權(quán)限的排斥主要是指當(dāng)用戶擁有權(quán)限A時(shí)則不能同時(shí)再擁有權(quán)限B,這個(gè)在實(shí)現(xiàn)了權(quán)限繼承的系
4、統(tǒng)中尤為突出;權(quán)限的包含主要指當(dāng)用戶擁有權(quán)限A時(shí)自動(dòng)擁有了權(quán)限B,實(shí)際的例子是當(dāng)用戶擁有管理權(quán)限時(shí)自動(dòng)同時(shí)擁有訪問(wèn)權(quán)限。l????????系統(tǒng)資源權(quán)限的繼承。在對(duì)帶有分級(jí)性質(zhì)的資源進(jìn)行授權(quán)時(shí)子資源自動(dòng)繼承父資源的權(quán)限,這個(gè)在文檔管理類(lèi)型的系統(tǒng)中比較常見(jiàn),即目錄中的文檔自動(dòng)擁有目錄的權(quán)限。l????????系統(tǒng)資源權(quán)限的多種授予對(duì)象。通常系統(tǒng)的權(quán)限是授予到角色中,而對(duì)于系統(tǒng)資源的權(quán)限授予上用戶在使用后通常會(huì)提出需要授予到多種對(duì)象,除角色之外還需可授予給組織機(jī)構(gòu)或者具體的用戶。3.2.??????分析對(duì)需求中列出的場(chǎng)景進(jìn)行分析:l????????上下文
5、未登錄用戶、登錄用戶、管理用戶不同的界面等情況。l????????問(wèn)題如何識(shí)別是否為登錄用戶、管理用戶或未登錄用戶。l????????解決方案提供身份認(rèn)證功能,通過(guò)此功能標(biāo)識(shí)用戶身份。???????l????????上下文根據(jù)用戶擁有的權(quán)限顯示相應(yīng)的菜單,在具體菜單對(duì)應(yīng)的模塊里根據(jù)用戶的權(quán)限顯示相應(yīng)權(quán)限的按鈕。l????????問(wèn)題由于菜單或者按鈕都是通過(guò)觸發(fā)鏈接或命令的方式來(lái)實(shí)現(xiàn)其功能,那么在權(quán)限系統(tǒng)中需要做到的即可通過(guò)判斷用戶是否具有執(zhí)行此鏈接或命令的權(quán)限來(lái)實(shí)現(xiàn)對(duì)于菜單和按鈕的顯示的控制。這樣帶來(lái)的問(wèn)題就是如何判斷用戶是否擁有執(zhí)行某鏈接或命令的
6、權(quán)限以及如何根據(jù)此結(jié)果去隱藏菜單和按鈕的顯示。l????????解決方案提供校驗(yàn)用戶是否擁有執(zhí)行某鏈接和命令的權(quán)限的功能。提供控制菜單、按鈕顯示的功能。?l????????上下文顯示當(dāng)前用戶可訪問(wèn)的相應(yīng)的資源,有兩種情況,一種是全部顯示,一種是分頁(yè)顯示。l????????問(wèn)題如何判斷用戶可訪問(wèn)哪些資源,資源如何進(jìn)行分頁(yè)處理。l????????解決方案提供獲取用戶權(quán)限范圍內(nèi)的資源的功能,并提供全部獲取和分頁(yè)獲取兩種方式。?l????????上下文簡(jiǎn)便的授權(quán)方式。l????????問(wèn)題為提升用戶授權(quán)的簡(jiǎn)便性,將權(quán)限授予給角色或組,用戶只需要屬于這個(gè)角色
7、或組即可擁有相應(yīng)的權(quán)限。如何建立滿足需求的授權(quán)模型。l????????解決方案根據(jù)需求建立相應(yīng)的授權(quán)模型。?根據(jù)對(duì)需求的分析,可以得出權(quán)限系統(tǒng)需要做到如下的功能:l????????用戶身份認(rèn)證。l????????校驗(yàn)用戶是否擁有執(zhí)行某鏈接和命令的權(quán)限的功能。l????????控制菜單、按鈕顯示的功能。l????????獲取用戶權(quán)限范圍內(nèi)的資源的功能,并提供全部獲取和分頁(yè)獲取兩種方式。l????????建立相應(yīng)的授權(quán)模型。?在非功能性需求方面權(quán)限系統(tǒng)需要考慮如下幾個(gè)方面:l????????權(quán)限的繼承。l????????權(quán)限的排斥和包含。l??????
8、??高性能。l????????安全性。l????????系統(tǒng)數(shù)據(jù)的權(quán)限的繼承。l????????系統(tǒng)數(shù)據(jù)的多種授權(quán)對(duì)象的支