亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解權限系統的基本概念和架構

發布時間:2021-10-21 11:58:03 來源:億速云 閱讀:163 作者:iii 欄目:編程語言

本篇內容主要講解“如何理解權限系統的基本概念和架構”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何理解權限系統的基本概念和架構”吧!

授權流程

在授權流程中主要有三個部分,分別是資源管理,權限和策略管理,策略的執行。

先看下資源管理:

如何理解權限系統的基本概念和架構

首先我們需要創建一個資源服務器,然后在資源服務器中創建各種資源,最后對各種資源設置一些scope,scope就是跟資源相關的的一些可執行的操作。

什么是資源呢?資源可以是一個web頁面,一個RESTful資源,一個文件等等。

舉個例子,假如我們有一個圖書館資源服務器,圖書館有一個本《人月神話》的書,那么這本書就被稱作資源。接下來我們需要為這個資源定義一些可操作性的scope,或者說策略。比如說只有本校的學生才能夠借閱這本書。

當我們定義好資源之后,就需要對這些資源進行一些權限和策略的設置,這就需要進行權限和策略管理。

看下權限和策略管理的流程:

如何理解權限系統的基本概念和架構

首先是創建策略,然后定義權限,最后將權限和策略進行關聯。

策略就是定義的一些去訪問某些資源或者權限的操作,策略是和具體的權限是分離的,策略只制定了在什么情況下可以做(某些事情),或者在某些情況下不能做(某些事情),這些事情就是后面創建的權限。

比如說,擁有user角色可以做什么事情,就是一種策略。

策略定義好了,我們就可以創建權限了,權限很好理解,比如:借《人月神話》的書的權限。

我們把策略和權限組合起來就是:擁有user角色的,可以借《人月神話》這本書。

通用的策略有很多種,比如說基于屬性的訪問策略,基于角色的訪問策略,基于用戶的訪問策略,基于上下文的訪問策略,基于時間的訪問策略,基于規則的訪問策略或者其他的自定義策略等。

通常來說,基于角色的訪問策略role-based access control (RBAC)是最常用的。

我們把用戶賦予相應的角色,然后在訪問資源的時候根據不同的角色策略來執行不同的permission操作。

雖然RBAC非常有用,用途也非常廣泛,但是它還是有下面的幾個缺點:

  1. 資源和角色是強綁定的,如果我們對角色進行一些添加,刪除和修改操作,將會影響到所有相關聯的資源。

  2. 對于角色的修改則可能需要我們對代碼進行修改。

  3. 如果你的應用程序非常大的話,使用RBAC可能會出現一些錯誤。

  4. RBAC的靈活性不夠強,不能夠做到更加細粒度的權限控制。

最后,我們看一下策略的執行。

策略的執行就是真正的在資源服務器上執行相應的授權工作。一般來說我們在資源服務器中有一個 Policy Enforcement Point (PEP)來和授權服務器進行交互,根據授權服務器返回的授權信息來執行相應的資源操作。

權限系統的架構

先看一張權限系統的基本架構圖:

如何理解權限系統的基本概念和架構

其中有下面幾個關鍵組件:

  • PAP全稱是Policy Administration Point,它是一個權限管理的后臺頁面,我們需要這樣的一個后臺界面來配置和管理權限和資源。

  • PDP全稱是Policy Decision Point,它提供了一些決策策略,通過這些策略將授權請求發送到相應的位置,并根據請求的權限對策略進行相應的決策。

  • PEP全稱是Policy Enforcement Point,在不同的資源服務器中執行相應的策略。

  • PIP全稱是Policy Information Point,在判斷和決策策略的時候,可以從中獲取相應的屬性信息。

上圖中,Storage就是數據的存儲和分類,這里我們主要存儲resouce,scope,permission和policy這4種對象。

resource代表的是要訪問的對象,可以是一個或者多個對象的集合。比如說:web程序中的頁面等等。資源是受保護的對象,需要為資源配置一些權限。

每個資源都有一個唯一的標識符,可以代表一個資源或一組資源。 例如,你可以管理一個銀行帳戶資源,該資源代表并定義了所有銀行帳戶的一組授權策略。 但是,你也可以使用另一個名為Alice's Banking Account的資源,該資源代表由單個客戶擁有的單個資源,該資源可以具有自己的一組授權策略。

我們看一個resource的例子:

如何理解權限系統的基本概念和架構

上圖中,我們將不同的URI定義為resource。并給不同的resource起了唯一的名字。

Scope是對資源的一系列操作,比如你可以對資源進行讀,寫或者編輯,刪除操作,這些都可以被稱之為scope。當然,你也可以指定resource中的某個屬性作為scope。

然后就是Permission,權限將受保護的對象與是否授予訪問權限的策略相關聯。

比如我們有下面一個權限:

X CAN DO Y ON RESOURCE Z

x表示的是一個或者多個用戶,角色或者groups,或者是他們的組合。

Y表示的是對資源的一種操作。

Z就是資源了,比如/index頁面。

我們可以創建基于resource的permission:

如何理解權限系統的基本概念和架構

也可以創建基于scope的permission:

如何理解權限系統的基本概念和架構

Policy定義了要授予對象訪問權限必須滿足的條件。Policy并沒有指明要保護的對象,只是指定了訪問給定對象必須滿足的條件。

如何理解權限系統的基本概念和架構

比如上面的Policy,指定了什么樣的角色,針對什么樣的client,制定出來的什么樣的邏輯。

有了策略就需要一個Policy Provider,Policy Provider主要為我們提供特定策略類型的實現。

為了做好策略評估的工作,我們還需要一個策略評估引擎,通過這個engine來執行策略的評估工作。

除此之外,作為一個認證服務器,我們還需要對外提供認證服務,那么最好的辦法就是提供OAuth3或者OpenID Connect的token服務。

另外我們還需要一個Protection API,用于resource server和權限管理服務進行交互。

到此,相信大家對“如何理解權限系統的基本概念和架構”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

波密县| 同江市| 雷波县| 莱芜市| 花莲县| 朝阳区| 白城市| 田林县| 大悟县| 漳州市| 栾川县| 宁城县| 海淀区| 溆浦县| 灌南县| 华坪县| 凤阳县| 衡东县| 玉门市| 溧阳市| 会同县| 玛曲县| 铁岭市| 江口县| 调兵山市| 龙南县| 绥阳县| 广德县| 华池县| 阿鲁科尔沁旗| 阿拉善左旗| 航空| 上犹县| 宝山区| 武乡县| 三河市| 张家口市| 南和县| 宜兰市| 贺州市| 临沭县|