Вот пояснение, которое я получил на основании материалов, прочитанных за последние два дня.
Самое основное - все предоставленные серверы приложений предоставляют хранилище идентификаторов, в котором могут храниться пользователи и группы.Приложения могут ссылаться на это хранилище идентификаторов, как при его развертывании на сервере.
Вызывающий абонент или пользователь - это индивидуальное имя с именем, определенное в хранилище идентификаторов.https://dzone.com/refcardz/getting-started-java-ee?chapter=1
- Как приложения выполняют аутентификацию?
На основе чистой среды JEE методы аутентификации могут быть классифицированы в зависимости от типаприложение, которое оно защищает:
Аутентификация веб-приложения
Декларативное: мы используем либо дескрипторы развертывания, либо @annotations для указания этих активаторов аутентификации: a.Какие параметры использовать для рендеринга аутентификации, например, базовая (всплывающее окно браузера), пользовательская форма, SSL и т. Д. B.Какие ресурсы (шаблоны URL) требуют аутентификации и авторизации.с.Для каких пользователей или ролей (через группы) разрешена аутентификация или авторизация.
Программно Здесь мы используем методы безопасности () во встроенном интерфейсе HttpServletRequest.
Приложение (например, сервлет) вызывает следующие методы, чтобы инициировать аутентификацию из «неограниченного» ресурса.
a.запрос.Аутентификация: появляется окно входа для сбора учетных данных.
b.запрос.login: этот метод принимает логин / пароль без всплывающего окна
c.запрос.Выход из системы: Сбрасывает личность пользователя / вызывающего абонента
Также доступно несколько других методов, которые предоставляют более подробную информацию об аутентифицированном пользователе, например isUserInRole (находится ли он в заданной роли), GetRemoteUser (дает имя пользователя) и т. д.
EJB-аутентификация
Как проверяются EJB ??EJB также могут быть защищены так же, как веб-приложения.т.е. либо с декларативной, либо с программной безопасностью.Некоторые оговорки к этому утверждению, но они не имеют отношения к текущему обсуждению.
- Так зачем нам JAAS и что такое JAAS?
Чтобы оценить это, давайте разберемся с практическим сценарием для любого:
Приложение может иметь несколько требований к аутентификации, например, пароль, сертификат, аутентификация пользователей из нескольких областей безопасности, аутентификация по периметру и т. Д. Нужно ли так много кодадля каждого приложения и типа аутентификации?Теперь это может быть громоздким и сложным создавать и поддерживать код для аутентификации пользователей на основе этих различных требований технико-бизнеса.
Чтобы разрешить вышеуказанную ситуацию, должен быть подключаемый способ написания кода для аутентификации, в котором:разработчики будут нести ответственность только за упоминание (не кодирование), какой AuthenticationProvider должен использоваться, и за написание кода для вызова loginModule этого конкретного провайдера, который в конечном итоге имеет код для аутентификации данного пользователя / вызывающего абонента.
Эта структурапредоставления подключаемой аутентификации называется подключаемым модулем аутентификации в мире LDAP.«JAAS» - это Java-реализация платформы PAM.С помощью JAAS в приложение могут быть добавлены либо обновленные, либо дополнительные технологии аутентификации, без изменения кода приложения как такового.
После аутентификации JAAS также обеспечивает авторизацию.
JEE предоставляет библиотеки для реализации JAAS в приложениях!
- Реализуется ли JAAS одинаково на разных предприятияхсерверы приложений, такие как Weblogic, JBoss и т. д.
Ну, "Это может быть", "но обычно" не реализуется одинаково на разных серверах приложений.
Это связано с тем, что сервер приложений может предоставлять свои собственные библиотеки, которые можно использовать для реализации JAAS.
Надеюсь, это проясняет модель безопасности JEE людям, у которых нет опыта разработки.