<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 176, comments - 240, trackbacks - 0, articles - 7

        權(quán)限控制中,subject可能不會(huì)簡(jiǎn)單的對(duì)應(yīng)于userId, 而是包含一系列的security token或certificate, 例如用戶登陸地址,登陸時(shí)間等。一般情況下,這些信息在權(quán)限系統(tǒng)中的使用都是很直接的,不會(huì)造成什么問題。
        subject域中最重要的結(jié)構(gòu)是user和role的分離,可以在不存在user的情況下,為role指定權(quán)限。有人進(jìn)一步定義了userGroup的 概念,可以為userGroup指定role,而user從其所屬的group繼承role的設(shè)置。一般情況下,我不提倡在權(quán)限系統(tǒng)中引入 userGroup的概念。這其中最重要的原因就是它會(huì)造成多條權(quán)限信息傳遞途徑,從而產(chǎn)生一種路徑依賴, 并可能出現(xiàn)信息沖突的情況。一般user與group的關(guān)聯(lián)具有明確的業(yè)務(wù)含義,因而不能隨意取消。如果我們希望對(duì)user擁有的權(quán)限進(jìn)行細(xì)調(diào),除去 user從group繼承的某個(gè)不應(yīng)該擁有的權(quán)限,解決的方法很有可能是所謂的負(fù)權(quán)限,即某個(gè)權(quán)限條目描述的是不能做某某事。負(fù)權(quán)限會(huì)造成各個(gè)權(quán)限設(shè)置之 間的互相影響,造成必須嘗試所有權(quán)限規(guī)則才能作出判斷的困境,引出對(duì)額外的消歧策略的需求,這些都極大的限制了系統(tǒng)的可擴(kuò)展性。在允許負(fù)權(quán)限的環(huán)境中,管 理員將無法直接斷定某個(gè)權(quán)限設(shè)置的最終影響,他必須在頭腦中完成所有的權(quán)限運(yùn)算之后才能理解某用戶最終擁有的實(shí)際權(quán)限,如果發(fā)現(xiàn)權(quán)限設(shè)置沖突,管理員可能 需要多次嘗試才能找到合適方案。這種配置時(shí)的推理需求可能會(huì)增加配置管理的難度,造成微妙的安全漏洞,而且負(fù)權(quán)限導(dǎo)致的全局關(guān)聯(lián)也降低了權(quán)限系統(tǒng)的穩(wěn)定 性。我更傾向于將group作為權(quán)限設(shè)置時(shí)的一種輔助標(biāo)記手段,系統(tǒng)中只記錄用戶最終擁有的角色,即相當(dāng)于記錄用戶通過group擁有權(quán)限的推導(dǎo)完成的結(jié) 果, 如果需要權(quán)限細(xì)調(diào),我們直接在用戶擁有的角色列表上直接進(jìn)行。當(dāng)然,如果實(shí)現(xiàn)的復(fù)雜一些,權(quán)限系統(tǒng)對(duì)外暴露的接口仍然可以模擬為能夠指定 userGroup的權(quán)限。
       推理在面向?qū)ο笳Z言中最明顯的表現(xiàn)是繼承,所以有些人將subject域中的推理直接等價(jià)于role之間的繼承問題,這未必是最好的選擇。繼承可以形成非 常復(fù)雜的推理關(guān)系,但是可能過于復(fù)雜了(特別是直接使用sql語句無法實(shí)現(xiàn)樹形推理查詢)。按照級(jí)列理論,從不相關(guān)發(fā)展到下一階段是出現(xiàn)簡(jiǎn)單的序關(guān)系,即 我們可以說subject出現(xiàn)級(jí)別上的差異,高級(jí)別subject將自動(dòng)具有低級(jí)別的權(quán)限。一種選擇是定義roleRank,規(guī)定高級(jí)別role自動(dòng)具有 低級(jí)別role的權(quán)限,但考慮到user與role的兩分結(jié)構(gòu),我們也可以同時(shí)定義userRank和roleRank,規(guī)定高級(jí)別user自動(dòng)具有低級(jí) 別的role,而role之間不具有推理關(guān)系。在面向?qū)ο箢I(lǐng)域中,我們已經(jīng)證實(shí)了完全采用繼承來組織對(duì)象關(guān)系會(huì)導(dǎo)致系統(tǒng)的不穩(wěn)定,所以我傾向于第二種選 擇,即將role看作某種類似于interface的東西,一種權(quán)限的切片。為了進(jìn)一步限制這種推導(dǎo)關(guān)系,我們可以定義所謂的安全域的概念. security domain, 規(guī)定推導(dǎo)只能在一定的域中才能進(jìn)行。
       select user.userId, role.roleId
       from user, role
       where user.userRank > role.roleRank
       and user.domain = role.domain

       將權(quán)限控制一般需要施加在最細(xì)的粒度上,這在復(fù)雜的系統(tǒng)中可能過于理想化了。復(fù)雜的情況下我們需要進(jìn)行局部化設(shè)計(jì),即進(jìn)行某些敏感操作之前進(jìn)行一系列復(fù)雜 的權(quán)限校驗(yàn)工作。當(dāng)完成這些工作之后,進(jìn)入某個(gè)security zone, 在其中進(jìn)行操作就不再需要校驗(yàn)了。
       總的來說,權(quán)限系統(tǒng)采用非常復(fù)雜的結(jié)構(gòu)效果未必理想。很多時(shí)候只是個(gè)管理模式的問題,應(yīng)該盡量通過重新設(shè)計(jì)權(quán)限空間的結(jié)構(gòu)來加以規(guī)避。不過在一些非常復(fù)雜 的權(quán)限控制環(huán)境下,也許簡(jiǎn)單的描述信息確實(shí)很難有效的表達(dá)權(quán)限策略(雖然我從未遇到過),此時(shí)嘗試一下規(guī)則引擎可能比在權(quán)限系統(tǒng)中強(qiáng)行塞入越來越多的約束 要好的多。

    主站蜘蛛池模板: 日韩在线看片免费人成视频播放| 久久久久成人片免费观看蜜芽| 福利免费观看午夜体检区| 亚洲天天在线日亚洲洲精| 久久免费区一区二区三波多野| 亚洲AV综合色一区二区三区| 国产一区二区免费视频| 亚洲国产精品久久| 国产成人精品免费视| 狠狠色香婷婷久久亚洲精品| 噼里啪啦电影在线观看免费高清| 亚洲精品国产精品| 免费a级毛片大学生免费观看| 一级毛片免费观看不收费| 中文字幕亚洲日本岛国片| 热99RE久久精品这里都是精品免费 | 亚洲人妖女同在线播放| 我们的2018在线观看免费高清| 亚洲一区中文字幕| 波多野结衣视频在线免费观看| 亚洲午夜一区二区三区| 亚洲最大在线视频| 国国内清清草原免费视频99 | 污视频在线免费观看| 亚洲爆乳精品无码一区二区三区| 桃子视频在线观看高清免费视频 | 久久亚洲精品成人av无码网站| 亚洲高清视频免费| 国产精品亚洲精品久久精品 | 无码精品人妻一区二区三区免费| 亚洲色精品aⅴ一区区三区| 最近免费中文字幕mv电影| 亚洲成在人线在线播放无码| 亚洲裸男gv网站| 最近中文字幕电影大全免费版| 亚洲精品无码中文久久字幕| 亚洲区小说区激情区图片区| 成年人免费观看视频网站| 中文在线观看永久免费| 亚洲国产乱码最新视频| 国产亚洲免费的视频看|