Концепция того, как java-клиенты проходят аутентификацию на сервере JEE, например, weblogic, jboss и т. Д. - PullRequest
0 голосов
/ 15 декабря 2018

Я прошёл много документации, чтобы понять, каков стандартный (если есть) способ, которым java-клиент идентифицирует себя с приложениями, развернутыми в контейнере сервера, такими как weblogic, jboss и т. Д. После прочтения о JAAS & JNDIдокументация по аутентификации для weblogic, я могу понять поток, но никакая документация не отвечает на следующие запросы

  1. Являются ли JAAS и JNDI единственными доступными методами для аутентификации клиентов Java?

    • Насколько я понял, каждый сервер приложений может предоставлять свой собственный уровень абстракции для выполнения аутентификации, например, OPSS в weblogic, но в конечном итоге все они зависят от собственных методов аутентификации, доступных в инфраструктуре JEE. Укажите, если это предположение неверно.
  2. Путаница значительно усиливается, поскольку в некоторых статьях упоминается, что в JEE не существует защиты JAAS.Это также верно для java 7+?

    • В сетевой документации Oracle, через которую я проходил, четко указаны JNDI & JAAS в качестве стандартных подходов аутентификации, и даже доходит до указания JAAS как предпочтительногочерез аутентификацию JNDI.https://docs.oracle.com/cd/E28280_01/web.1111/e13711/fat_client.htm#SCPRG225/

1 Ответ

0 голосов
/ 20 декабря 2018

Вот пояснение, которое я получил на основании материалов, прочитанных за последние два дня.

Самое основное - все предоставленные серверы приложений предоставляют хранилище идентификаторов, в котором могут храниться пользователи и группы.Приложения могут ссылаться на это хранилище идентификаторов, как при его развертывании на сервере.

Вызывающий абонент или пользователь - это индивидуальное имя с именем, определенное в хранилище идентификаторов.https://dzone.com/refcardz/getting-started-java-ee?chapter=1

  • Как приложения выполняют аутентификацию?

На основе чистой среды JEE методы аутентификации могут быть классифицированы в зависимости от типаприложение, которое оно защищает:

  1. Аутентификация веб-приложения

    • Декларативное: мы используем либо дескрипторы развертывания, либо @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 людям, у которых нет опыта разработки.

...