Они иерархичны в том смысле, что род, вид и особь иерархичны.
- Субъект - в контексте безопасности субъект - это любой объект, который запрашивает доступ к объекту . Это общие термины, используемые для обозначения объекта, запрашивающего доступ, и объекта, против которого сделан запрос. Когда вы входите в приложение, вы являетесь субъектом, а приложение - объектом. Когда кто-то стучит в вашу дверь, посетитель является субъектом, запрашивающим доступ, а ваш дом - объектом запроса.
- Принципал - Подмножество субъекта , которое представлено учетной записью, ролью или другим уникальным идентификатором. Когда мы дойдем до уровня детализации реализации, принципалы - это уникальные ключи, которые мы используем в списках контроля доступа. Они могут представлять пользователей, автоматизацию, приложения, соединения и т. Д.
- Пользователь - Подмножество принципала, обычно ссылающегося на человека-оператора. Различие со временем стирается, потому что слова «пользователь» или «идентификатор пользователя» обычно взаимозаменяемы с «аккаунтом». Однако, когда вам необходимо провести различие между широким классом вещей, которые являются принципалами, и их подмножеством, которые являются интерактивными операторами, управляющими транзакциями недетерминированным образом, «пользователь» - правильное слово.
Предмет / Объект наследуется от тех же терминов, что и в грамматике. В предложении субъект - это субъект, а объект - это то, над чем действовал. В этом смысле использование было вокруг еще до того, как были изобретены компьютеры. В контексте безопасности субъект - это все, что может сделать запрос. Как отмечалось выше, это не обязательно должно быть ограничено информационной безопасностью и поэтому является очень широкой классификацией. Интересно то, что субъект подразумевает объект. Без объекта нет субъекта.
Принципы - это то, к чему решают субъекты. Когда вы представляете свою кредитную карту, вы - субъект, а номер счета - основной. В других случаях ваш основной идентификатор пользователя или удостоверение личности, выданное штатом. Но принципы могут быть связаны со многими типами субъектов, которые не являются людьми. Когда приложения выполняют запросы на функции системного уровня, принципал может подписать подписанный модуль исполняемого кода, но даже в этом случае пользователь, управляющий запросом, все еще является субъектом.
Пользователь более конкретен, чем субъект или принципал в том смысле, что он обычно относится к интерактивному оператору. Вот почему у нас есть графический интерфейс пользователя, а не основной графический интерфейс. Пользователь - это экземпляр субъекта, который превращается в принципала . Один пользователь может разрешить любое количество участников, но ожидается, что любой участник разрешит одному пользователю (при условии, что люди соблюдают требование не предоставлять идентификаторы). В приведенном выше примере подписавшая сторона модуля исполняемого кода определенно не является пользователем, но она является действительным принципалом. Интерактивный оператор, пытающийся загрузить модуль, является пользователем.
Как отмечается в комментариях, даже авторитетные источники не согласны с этими условиями. Во время подготовки этого ответа я искал NIST, SANS, IEEE, MITER и несколько «квазиавторизированных» источников, таких как руководства по проверке безопасности. Ни один источник, который я нашел, который был бы, по крайней мере, квази-авторитетным, не охватывал все три термина, и все они значительно различались в их использовании. Это мое мнение о том, как следует использовать термины , но с практической точки зрения, когда вы просматриваете руководство в середине ночи, определения, как правило, соответствуют тому, что говорят продавцы или авторы. Хотелось бы надеяться, что ответы здесь предоставят достаточно информации для навигации по водам и анализа любого защищенного документа с использованием этих терминов.
John (human) SUBJECT > username_1 PRINCIPAL > password_1 USER
John (human) SUBJECT > username_1 PRINCIPAL > password_2 USER
John (human) SUBJECT > username_1 PRINCIPAL > smartcard_1 USER
John (human) SUBJECT > username_1 PRINCIPAL > cellphone_1 USER
Взгляните на мою карту концепций аутентификации :
источник
Я думаю, что терминология взята из JAAS .
источник
Субъект - это объект, который запрашивает услугу. Это может быть пользователь или процесс. Возможно, именно поэтому имя пользователя было выбрано вместо пользователя.
Когда субъект пытается получить доступ к услуге, субъект должен быть сначала аутентифицирован. Успешная аутентификация заканчивается загрузкой принципалов безопасности для этого субъекта. Например, в системе контроля доступа на основе ролей прошедший проверку (вошедший в систему) пользователь обычно имеет два принципала - userId и roleId. В таких системах привилегии (то есть кто и к чему имеет доступ) указываются как для ролей, так и для пользователей. Во время авторизации (т. Е. Проверки, должна ли быть разрешена запрашиваемая услуга), система безопасности проверит доступность для обоих участников.
Следовательно, с точки зрения авторизации принципалы являются фактическими объектами, доступ к которым разрешен или запрещен. Субъект - это просто пользователь / поток / процесс, который содержит некоторые принципы.
источник
Как объяснил T.Rob, субъект - это любая сущность, которая запрашивает доступ к объекту. Начиная с этого момента, я нашел комментарий к коду javax.security.auth.Subject, который я нашел ОЧЕНЬ полезным и простым для понимания:
«Субъекты могут потенциально иметь несколько идентификаторов. Каждая идентичность представлена как субъект внутри субъекта. Принципалы просто связывают имена с субъектом. Например, субъект, являющийся человеком, Алиса, может иметь два принципала: один, связывающий» Алиса Бар ", имя в ее водительских правах, для субъекта, а другой, который привязывает," 999-99-9999 ", номер на ее студенческом удостоверении личности, для субъекта. Оба принципала относятся к одному и тому же субъекту, хотя каждый имеет другое имя. "
Надеюсь, поможет.
источник
Это ссылка на приведенное ниже описание из документации Oracle JAVA SE.
источник
Согласно Рахулмохану, я думаю, что до Аутентификации является субъективной, а после Аутентификации ценовой, в отличие от этого, у струи может быть много
источник