Apache Shiro 安全框架入門系列—2-詳解核心術語

請務必花幾分鐘時間閱讀並理解這一點 - 這非常重要。

真的。 這裡的術語和概念在文檔中隨處可見,它將大大簡化您對Shiro和一般安全性的理解。

由於術語的使用,安全性可能非常困惑人。 通過闡明一些核心概念,我們將使生活更輕鬆,並且您會看到Shiro API是多麼好的體現它們的

•身份驗證(-Authentication,認證)

認證是驗證主體身份的過程 - 從本質上證明某人確實是他們所說的人。 當認證嘗試成功時,應用程序可以相信該主體保證是應用程序所期望的。

•密碼(Cipher

密碼是用於執行加密或解密的算法。 該算法通常依賴於稱為密鑰的信息。 並且加密因密鑰而異,所以如果沒有它,解密是非常困難的。

密碼有不同的變化。 分組密碼對通常具有固定大小的符號塊進行處理,而流密碼對連續的符號流進行處理。 對稱密碼使用相同的密鑰進行加密和解密,而非對稱密碼使用不同的密鑰。 如果不對稱密碼中的密鑰不能從其他密鑰中派生出來,則可以公開共享創建的公鑰/私鑰對。

•憑證(Credential

憑證是驗證用戶/主體身份的一條信息。 在驗證嘗試期間,一個(或多個)憑證與委託人一起提交,以驗證提交它們的用戶/主題實際上是關聯用戶。 憑證通常是非常秘密的事物,只有特定的用戶/主體會知道,例如密碼或PGP密鑰或生物特徵屬性或類似的機制。

這理念是,對於委託人而言,只有一個人會知道與該委託人"配對"的正確憑證。 如果當前用戶/主題提供與存儲在系統中的正確憑證匹配的正確憑證,則系統可以假設並相信當前用戶/主題真的是他們所說的那個人。 隨著更安全的憑證類型(例如生物特徵簽名>密碼),信任程度會增加。

•密碼學(Cryptography

密碼學是通過隱藏信息或將其轉化為無意義的方式來保護信息免受不當訪問的做法,因此沒有其他人可以閱讀。 Shiro專注於加密技術的兩個核心元素:使用公鑰或私鑰對電子郵件等數據進行加密的密碼,以及對密碼等數據進行不可逆加密的哈希散列(又名消息摘要)。

•哈希(Hash

散列函數是輸入源(有時稱為消息)的單向,不可逆轉換,它被編碼為散列值,有時也稱為消息摘要。 它通常用於密碼、數字指紋或帶有底層字節數組的數據。

•權限(Permission

權限的一些示例:

- 打開一個文件

- 查看'/ user / list'網頁

- 打印文件

- 刪除'jsmith'用戶等等

•主題(Principal

主題是應用程序用戶(主體)的任何標識屬性。 "標識屬性"可以是對您的應用程序有意義的任何內容 - 用戶名,姓,特定名稱,社會安全號碼,用戶ID等等。就是這樣 - 沒有什麼瘋狂的。

Shiro還引用了我們稱之為主體的首要的東西。 首要的主題是在整個應用程序中唯一標識主體的任何主題。 理想的主題原則是像用戶名或用戶標識這樣的東西,它是一個RDBMS用戶表主鍵。 在應用程序中,用戶(主體)只有一個主要的主題。

•領域(Realm

Realm是一個可以訪問特定應用程序的安全數據(例如用戶、角色和權限)的組件。 它可以被認為是特定安全性的DAO(數據訪問對象)。 Realm將這些特定於應用程序的數據轉換為Shiro可以理解的格式,因此無論存在多少數據源或數據如何針對特定應用程序,Shiro都可以提供單一易於理解的Subject編程API。

•角色(Role

這是比許多應用程序使用的隱式定義更具體的定義。 如果你選擇讓你的數據模型反映Shiro的假設,你會發現你將在控制安全策略方面擁有更多的權力。

•會話(Session

會話是一個有狀態的數據上下文,隨單個用戶/主體在一段時間內與軟件系統進行交互。 在主體使用應用程序時,可以從Session中添加/讀取/刪除數據,並且應用程序可以稍後在必要時使用此數據。 會話在用戶/主體退出應用程序或由於不活動而超時時終止。

對於那些熟悉HttpSession的人來說,一個Shiro會話可以達到同樣的目的,但Shiro會話可以在任何環境中使用,即使沒有可用的Servlet容器或EJB容器。

主體(Subject

主體只是一個奇特的安全術語,基本上意味著應用程序用戶的特定於安全性的"視圖"。 然而,主體並不總是需要反映人類 - 它可以表示調用應用程序的外部進程,也可以表示在一段時間內間歇性執行某些事情的守護進程系統帳戶(例如cron作業)。 它基本上是對應用程序做任何事情的任何實體的表示。——或者理解為程序的交互對象,包括而不限於用戶。

希望:提供文檔幫助

雖然我們希望這份文檔可以幫助您完成您使用Apache Shiro所做的工作,但社區始終在不斷改進和擴展文檔。 如果您想幫助Shiro項目,請考慮在需要的地方更正,擴展或添加文檔。 你提供的每一點幫助都會擴大社區,並改善Shiro。

提供文檔的最簡單方法是將其發送到用戶論壇或用戶郵件列表。

Apache Shiro 安全框架入門系列—2-詳解核心術語



分享到:


相關文章: