Liberty:安全快速概觀
為了讓您瞭解 Liberty 中安全的基本工作流程,這裡提供一些常見的安全詞彙詳細說明,並附有範例。
安全重要詞彙
- 鑑別
- 鑑別會確認使用者的身分。 鑑別最常見的形式是使用者名稱和密碼,例如,透過 Web 應用程式的基本鑑別或表單登入。 當使用者通過鑑別時,執行時期會以 Subject 物件來代表要求的來源。
- 授權
- 授權決定了使用者是否有權在系統內存取特定角色。 Java™ EE 模型利用主題、角色和角色對映來決定是否存取。
- 角色
- 角色是在 Java EE 應用程式內定義。 系統會預先定義一些角色,例如「管理者」角色。 其他角色由應用程式開發者來定義。 在 Java EE 中,會根據在主體應用程式內扮演的角色,來授與或拒絕角色的存取權。
- 主體
- 主題 (Subject) 既是一般詞彙,也是一個 Java 物件:javax.security.auth.Subject。 一般而言,主體一詞表示系統內作用中的實體,例如,系統的使用者,甚至是系統程序本身。
安全工作流程範例
下列範例示範在使用者要求存取資源時,如何套用安全。 比方說,使用者 Bob 想要存取 Servlet myWebApp。 請參閱Liberty 安全入門中的程式碼範例。
如果要存取 myWebApp Servlet,必須符合下列條件:
如果 Bob 無法登入系統,或 Bob 不在 testing 角色中,就會拒絕存取 Servlet myWebApp。
- Bob 必須能夠登入系統中,因為 Servlet 受到保護。
- Bob 必須在 testing 角色中,因為在部署描述子中使用 auth-constraint 元素,會使 Servlet 受到限制。
另一位使用者 Alice 可以登入系統中,因為 Alice 是有效使用者。 但 Alice 不在 testing 角色中。 當 Alice 登入時,會顯示一則 HTTP 403 錯誤(拒絕存取/禁止)。