1. Обзор
Безопасность является фундаментальной частью любого приложения Java. Кроме того, мы можем найти множество систем безопасности, которые могут справиться с проблемами безопасности. Кроме того, в этих фреймворках мы обычно используем несколько терминов, таких как субъект, принципал и пользователь.
В этом уроке мы объясним эти основные концепции фреймворков безопасности . Кроме того, мы покажем их отношения и различия.
2. Тема
В контексте безопасности субъект представляет источник запроса. s ubject – это объект, который получает информацию о ресурсах или изменяет ресурсы . Кроме того, субъектом также может быть пользователь, программа, процесс, файл, компьютер, база данных и т. Д.
Например, человеку необходимо авторизовать доступ к ресурсам и приложениям для проверки подлинности источника запроса. В данном случае этот человек является субъектом.
Давайте рассмотрим наш пример, который реализован на основе фреймворка JAAS :
Subject subject = loginContext.getSubject(); PrivilegedAction privilegedAction = new ResourceAction(); Subject.doAsPrivileged(subject, privilegedAction, null);
3. Принципал
После успешной аутентификации у нас есть заполненный субъект со многими связанными удостоверениями, такими как роли, номер социального страхования(SSN) и т. Д. Другими словами, эти идентификаторы являются основными, и субъект представляет их.
Например, у человека может быть основной номер счета (“87654-3210”) и другие уникальные идентификаторы, отличающие его от других субъектов.
Давайте посмотрим, как создать User Principal после успешного входа в систему и добавить его в Subject:
@Override public boolean commit() throws LoginException { if (!loginSucceeded) { return false; } userPrincipal = new UserPrincipal(username); subject.getPrincipals().add(userPrincipal); return true; }
4. Пользователь
Как правило, пользователь представляет собой лицо, которое обращается к ресурсам для выполнения какого-либо действия или выполнения рабочей задачи.
Кроме того, мы можем использовать пользователя в качестве принципала, а с другой стороны, принципал-это идентификатор, присвоенный пользователю. Принципал пользователя является отличным примером пользователя в рамках JAAS , рассмотренных в предыдущем разделе .
5. Разница между Субъектом, Принципалом и Пользователем
Как мы видели в приведенных выше разделах, мы можем представлять различные аспекты идентичности одного и того же пользователя с помощью принципалов. Они являются подмножествами субъектов, а пользователи-подмножествами участников, которые ссылаются на конечных пользователей или интерактивных операторов.
6. Заключение
В этом учебном пособии мы обсудили определение субъекта, участника и пользователя, которые являются общими в большинстве систем безопасности. Кроме того, мы показали разницу между ними.
Реализацию всех этих примеров и фрагментов кода можно найти в проекте GitHub .