Рубрики
Без рубрики

Основы контекста безопасности: Пользователь, Субъект и Принципал

Краткий обзор основных терминов, связанных с контекстом безопасности.

Автор оригинала: baeldung.

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 .