安全上下文基礎:用戶,主題和主體

1.概述

安全性是任何Java應用程序的基本組成部分。此外,我們可以找到許多可以處理安全問題的安全框架。此外,在這些框架中,我們通常使用一些術語,例如主題,主體和用戶。

在本教程中,我們將解釋安全框架的這些基本概念。另外,我們將顯示它們之間的關係和差異。

2.主題Subject

在安全上下文中,主題表示請求的來源。對像是獲取有關資源的信息或修改資源的實體。此外,主題還可以是用戶,程序,進程,文件,計算機,數據庫等。

例如,一個人需要授權對資源和應用程序的訪問以認證請求源。在這種情況下,這個人是一個主體。

讓我們看一下基於JAAS框架實現的示例:

Subject subject = loginContext.getSubject();

 PrivilegedAction privilegedAction = new ResourceAction();

 Subject.doAsPrivileged(subject, privilegedAction, null);

3.Principal

成功通過身份驗證後,我們將獲得一個填充的主題,該主題具有許多關聯的身份,例如角色,社會保險號(SSN)等。換句話說,這些標識符是principal,主題代表它們。

例如,一個人可能具有帳號主體(“ 87654-3210”)和其他唯一標識符,從而將其與其他主體區分開。

讓我們看看UserPrincipal並將其添加到Subject:

@Override

 public boolean commit() throws LoginException {

 if (!loginSucceeded) {

 return false;

 }

 userPrincipal = new UserPrincipal(username);

 subject.getPrincipals().add(userPrincipal);

 return true;

 }

4.用戶

通常,用戶代表訪問資源以執行某些動作或完成工作任務的人。

同樣,我們可以將用戶用作委託人,另一方面,委託人是分配給用戶的身份。 UserPrincipal是上一節中討論JAAS框架中用戶的一個很好的例子.

5.主題,Principal和用戶之間的區別

如上節所述,我們可以使用委託人來表示同一用戶身份的不同方面。它們是主題的子集,而用戶是指的是最終用戶或交互式運算符的主體的子集。

六,結論

在本教程中,我們討論了主題,Principal和用戶的定義,這些定義在大多數安全框架中都很常見。此外,我們展示了它們之間的區別。

相關推薦
7個雲計算中的隱私挑戰

雲的快速發展帶來了更多的靈活性,成本削減和產品可擴展性,但同時也面臨著巨大的隱私和安全挑戰。由於它是一個相對較新的概念,並且每天都在發展,因此存在一些未發現的安全問題,這些問題不斷蔓延,需要一經發現就應立即加以解決。在這裡,我們討論了雲計算中遇到的七大隱私挑戰:

2020年11月8日閱讀 113

如何成為前端開發人員?

如何成為前端開發人員?學習HTML,CSS和JavaScript 2. 熟悉前端框架, 與前端開發者社區聯繫

2020年11月14日閱讀 133

企業網絡安全工具的10種主要類型

企業安全性是一組技術,方法和策略,可幫助保護組織免受攻擊和任何其他未經授權的訪問。有很多方法可以使用高級工具和軟件應用程序檢測入侵和對手,這些工具可以全面檢查已安裝的網絡和應用程序。讓我們詳細了解企業安全軟件的主要類型:

2020年11月30日閱讀 138

成為雲工程師所需的技能

雲計算是按需提供的計算機資源,包括數據存儲和計算功能,所有這些都可以通過Internet獲得。這意味著用戶可以按需遠程訪問他們的平台,數據庫和軟件,從而降低了各個計算機的物理計算能力和內存。在採用雲計算概念之前,企業必須提供自己的基礎架構(例如數據中心)並分配資源,這會導致成本增加。

2020年12月4日閱讀 164

通過Keycloak使用自定義用戶提供程序

在本教程中,我們將展示如何向流行的開源身份管理解決方案Keycloak添加自定義提供程序,以便我們可以將其與現有和/或非標準用戶存儲一起使用。

2021年1月31日閱讀 355

核心Java中的行為模式

了解一些使用Java的最常見的行為設計模式。

2021年2月14日閱讀 93