簡體   English   中英

基於聲明的授權的目的是什么?

[英]What's the purpose of claims-based authorization?

我一直在閱讀Azure的訪問控制服務和基於聲明的授權一段時間,無論出於何種原因,我仍然沒有看到從基於角色/權限的授權轉變為基於聲明的模型背后的理由。 模型看起來與我類似(它們可能是),除了客戶端可以做和不能做的列表來自第三方並且被包含在某種令牌中,而不是來自某種類型的數據庫服務器必須查詢。 讓第三方(令牌發行人)參與的優勢是什么?

我完全理解將認證外包給第三方的優勢。 它允許應用程序不必一直創建新用戶,擔心存儲密碼等,只需將其推送到已經設置了基礎結構的其他服務。 它本質上是DRY的身份驗證原則。

但是,在我看來,同樣的邏輯不適用於授權。 每個應用程序都有自己必須保護的資源,因此也有自己的授權用戶執行某些操作的規則。 基礎設施看起來很簡單,每個應用程序都可以自己創建它(一個表將用戶映射到角色,可能還有另一個映射角色到權限),即使你想外包它,似乎基於聲明的模型正在做更復雜的事情。

我看到的唯一部分解釋來自於在WCF中構建基於聲明的安全模型 ,它為基於聲明的身份驗證提供了兩個主要優勢:更靈活,並且有人“保證”聲明中的信息是正確的。 你什么時候需要其中任何一個?

基於聲明的授權似乎越來越受歡迎,因此我認為必須有一些合理的理由; 我還沒弄明白那是什么。 有人可以提供一個具體的例子,說明基於聲明的auth比基於角色的工作更好,以及為什么它在這種情況下效果更好?

(編輯:我錯過了文章中列出的第三個好處:支持單點登錄/聯合。但是如果沒有獲得授權,身份驗證是否會自行處理?)

我想聯邦安全/基於聲明的系統帶來的好處的主要承諾是處理不同系統所需的面積減少一個。

想象一個網站,您有本地用戶使用Windows憑據進行身份驗證,一群使用用戶名/密碼的互聯網用戶,其他使用證書的用戶,以及另一組具有生物識別身份驗證的用戶。

在今天的系統中,您必須設置和處理所有不同類型的身份驗證方案及其不同的處理方式。 這可能會變得非常混亂。

聯合安全解決方案的承諾是為您處理所有這些雜務 - STS(安全令牌服務器)將為您處理所有不同類型的身份驗證系統,並向您提供有關呼叫者的統一且可信的聲明集 - 無論他到達你的網站的哪條路和哪條路。

當然,只需檢查並對一組索賠做出反應,而不是必須了解四個,五個,十個不同的和不同的身份驗證系統,這對我來說是一個非常有說服力的承諾!

基於聲明的授權的目的是允許基於布爾表達式的細粒度訪問控制,該布爾表達式評估訪問實體和資源的特征。 這減少或消除了配置組的需要。 與聯合身份一樣,聲明還為身份提供者提供了一種管理其用戶的工具,允許資源提供者阻止用戶訪問資產。

注意:聲明可以在單個企業中使用,並提供以下好處:

1)訪問授權和撤銷不需要配置或取消配置

2)因此變化是即時的

3)資源所有者可以定義訪問的范圍和要求,而不是讓管理員創建組管理組成員資格 - 這會將訪問控制決策移到最適合做出此類決策的人手中(數據所有者)

4)這導致需要的組更少,組中的成員更少

5)創建單個組以容納具有訪問權限的大型社區可能存在問題(例如,所有全職員工都可以閱讀人力資源政策) - 聲明可以避免此問題

6)審計更具信息性 - 授予或拒絕的原因顯而易見

7)聲明支持動態屬性,例如雙因素身份驗證,一天中的時間或網絡限制

還有很多原因,但會想到這些原因。 很快將有一個視頻在www.cionsystems.com展示這個(免責聲明 - 我在那里工作並錄制視頻 - 我仍然需要發布它)另外,作為參考,聲稱感知應用和平台包括SharePoint 2010,Windows 2012 (文件共享),Azure,許多SaaS服務(Facebook和Salesforce)

此外,通過聲明,您可以混合來自多個來源(例如Facebook和您當地的AD)等的信息 - 這一點越來越重要

不確定規則是否允許這樣做,但請隨時向我提出您的問題或意見。 我很樂意編輯帖子進行任何更正或添加相關信息。

聲明可以來自AD,數據庫表,SAML,OAuth,算法,XACML或任何其他可信提供商。 利用索賠需要一些工具包 - 應用程序和平台在這個領域迅速發展。

祝一切順利,

保羅

基於聲明的訪問控制還有助於構建基於屬性的訪問控制和基於策略的訪問控制。 如果您對可以根據其他屬性分配給用戶的一組預先約定的聲明進行標准化(例如,美國經理可以聲明U_M;歐洲經理可以聲明E_M)。 在基於屬性和基於策略的環境中,可以使用XACML實現細粒度授權(也稱為細粒度授權)。 在這種情況下,您可以獲得授權,該授權取決於用戶是誰(聲明),還取決於他們想要做什么(資源信息)以及在何種情況下(上下文)。

使用XACML的CBAC將允許您表達如下規則:

經理可以編輯自己創建的筆記,也可以記錄他們創建的直接報告。

基於角色的安全性是一種有限的安全模型授權是:

 Based on role membership only

基於聲明的安全性更靈活,更具表現力授權可以是:

  • 基於角色成員資格

    基於年齡

    基於地理位置

    基於帳戶余額

    根據大小

    基於預先定義的安全級別

    基於以上任意組合

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM