
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
23.02.2013, 19:31:31
|
|||
|---|---|---|---|
|
|||
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
Можно ли прикрутить к JAAS ораклинные таблицы? чтобы кредентиалы проверялись из таблицы, равно как и доступы? Т.е. при аутентификации сервлет обращается в СУБД там сравнивает пароли, а дальше идет авторизация веб страниц, на которые он может обращатсья также из таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.02.2013, 21:52:14
|
|||
|---|---|---|---|
|
|||
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
marlis82Можно ли прикрутить к JAAS ораклинные таблицы? чтобы кредентиалы проверялись из таблицы, равно как и доступы? Т.е. при аутентификации сервлет обращается в СУБД там сравнивает пароли, а дальше идет авторизация веб страниц, на которые он может обращатсья также из таблицы? JAAS на столько общий и абстрактный API, что там можно что угодно прикрутить. Но привязка к БД, по-моему у каждого сервер по-смоему сделана. GlassFish http://docs.oracle.com/javaee/6/tutorial/doc/glxgo.html Tomcat http://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/realm/JDBCRealm.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.02.2013, 22:02:14
|
|||
|---|---|---|---|
|
|||
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
Вот по этой ссылке небольшое упражнение, оно правда про OpenShift, но для примера там показано как сделать JAAS своими руками, база подойдет любая ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2013, 13:56:37
|
|||
|---|---|---|---|
|
|||
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
Спасибо за отзывы. Картина проясняется. Есть 2 варианта реализации: 1. Авторизация в oracle и доступ к ресурсам через Гранты СУБД. Но в таком случае возможно ли для каждого пользователя создать одно соединение к базе и соотвественно убивать его при выходе сессии на стороне аппликейшна. 2. Авторизация средствами аппликейшна но база пользователей будет уже не базой реальных пользователей СУБД простой таблицей с паролями и правами. Соотвественно в таком случае для определения прав на те или иные объекты в базе будет написана процедура в СУБД которой необходимо передавать каждый раз при обращении к ресурсам пользователей логин пользователя. Возможна ли такая реализация? Что предпочтительнее в плане безопасности? И конечно же в таком случае, случае неиспользования JAAS возникает необходимость ставить фильтры на каждую страницу для определения доступно ти для текущего юзера. Дайте совет. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2013, 15:49:29
|
|||
|---|---|---|---|
|
|||
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
marlis82Что предпочтительнее в плане безопасности?Второе. Конкретно в пророке "create user" требует, как минимум, логина system. Конкретно в жар-птице "gsec -add" требуете sysdba. Даже если предположить, что у вас есть эти права, рулить пользователями базы из веб-приложения - плохая идея. Так что "второе, плюс set role". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2013, 17:44:55
|
|||
|---|---|---|---|
|
|||
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
Ну а если предположить что юзеров будет заводить адекватный админ БД, из аплликейшна будет доступ только к табличкам юзеровским, а заведение пользователей будет проходить под грифом совершенно секретно. :) Учитывая что при втором варианте в системе уже будет общий пользователь jdbc с правами на инсерт апдейт делете на все таблички, я думаю второй вариант менее защищен, не так ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2013, 19:18:59
|
|||
|---|---|---|---|
|
|||
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
marlis82Учитывая что при втором варианте в системе уже будет общий пользователь jdbc с правами на инсерт апдейт делете на все таблички, я думаю второй вариант менее защищен, не так ли?"Как закажете". Наиболее простой и потому типичный вариант: веб-пользователь является владельцем схемы. В Oracle такому пользователю надо явно выдавать права на создание таблиц и т.п., но права на выбор, изменение записей и удаление записей/объектов у него есть. Как у владельца. Более сложный, но и более правильный вариант предполагает существование, как минимум, двух пользователей: "владельца" и "работника". "Владелец" используется для обновления, бэкапа и т.п. служебных вещей. "Работник" используется веб-приложением. Этому пользователю явно или через роли выдаются права на объекты владельца и защищённость становится ровно такой, как у схемы "пользователи СУБД". Минусы. Если требуется прописать стопитцот прав на стопитцот объектов - это придётся сделать; Каждое подключение придётся начинать магическим заклинанием "alter session set current schema имя_схемы". Как минимум; Некоторые права нельзя выдать через роль и их придётся назначать явно или (как-то) оборачивать в (хранимые) процедуры; В разных СУБД будут разные особенности такой двухпользовательской системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2013, 19:28:14
|
|||
|---|---|---|---|
|
|||
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
Конечно схема будет владелец - для накатывания патчей в субд (имеется ввиду пл скл), и работник инсерт апдейт делете на объекты типа таблицы, плюс екзекьют на процедуры функции и прочее.0 Насчет 100500 прав это не страшно, главное целостность и безопасность системы. НО опять же, при реализации по второму варианту, где хранить данные? в контексте сессии? В джиндае? в контексте аппликейшна? И каким образом вылавливать текущего пользователя? Писать жава код в пл/скл (из тех же соображений безопаности)? Как определять пользователя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.02.2013, 21:25:06
|
|||
|---|---|---|---|
|
|||
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
Реализовывать безопасность на уровне базы данных при наличии сервера приложений - для этого должны быть веские причины, например, наличие клиентов, имеющих прямой доступ к базе. Лет 15 назад это было оправдано, поскольку применялась классическая клиент-серверная технология, для современного j2ee приложения - накладненько, имеются другие средства, тот же JAAS. Это имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.02.2013, 08:40:13
|
|||
|---|---|---|---|
|
|||
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
Добрый день, marlis82! > Есть 2 варианта реализации: > 1. Авторизация в oracle и доступ к ресурсам через Гранты СУБД. Но в > таком случае возможно ли для каждого пользователя создать одно > соединение к базе и соотвественно убивать его при выходе сессии на > стороне аппликейшна. Это убивает многие вещи, стандартные для AS- пул коннектов, JMS будет работать непонятно как и т.п. > 2. Авторизация средствами аппликейшна но база пользователей будет уже не > базой реальных пользователей СУБД простой таблицей с паролями и правами. Да, логично. > Соотвественно в таком случае для определения прав на те или иные объекты > в базе будет написана процедура в СУБД которой необходимо передавать > каждый раз при обращении к ресурсам пользователей логин пользователя. > Возможна ли такая реализация? Не надо. На каждую операцию делается @RolesAllowed. При логине заполняем (есть пример в jboss'е) имена доступных ролей из таблицы БД. И далее проверка прав идёт без обращения к БД. При этом эти же права можно использовать для формирования интерфейса- т.е. недоступные операции пользователю либо не показываются, либо помечены соответствующим образом. > И конечно же в таком случае, случае неиспользования JAAS возникает > необходимость ставить фильтры на каждую страницу для определения > доступно ти для текущего юзера. Да. Если идти в AS "процедурно/датабазным" путём то грабли обязательно стукнут по лбу. -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.02.2013, 09:44:33
|
|||
|---|---|---|---|
|
|||
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
Спасибо за полезные ответы. Идем по пути 2. Есть вопрос. Я правильно понял - сначала настраивается JAAS только не по пользователям, а по ролям, таким образом ролевые доступы прописываются в конфиг файле, дальше при логине пользователя, ему маппится определенная роль, имеющаяся в СУБД и соответственно в JAAS. В таком случае нет необходимости каждый раз ставить фильтры на новые страницы? Как это реализовать? Как использовать @RolesAllowed? Есть ли ссылка краткая по использованию? Используем Weblogic в качестве апп. сервера, а среда разработки JDeveloper. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.02.2013, 10:08:11
|
|||
|---|---|---|---|
|
|||
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
Добрый день, marlis82! > Я правильно понял - сначала настраивается JAAS только не по > пользователям, а по ролям, таким образом ролевые доступы прописываются в > конфиг файле, дальше при логине пользователя, ему маппится определенная > роль, имеющаяся в СУБД и соответственно в JAAS. В таком случае нет > необходимости каждый раз ставить фильтры на новые страницы? Не совсем. Пользователю сопоставляется набор ролей. На каждую операцию даются права одной (ну или нескольким) ролям. Пользователя и список ролей можно связывать через "группы ролей" к примеру. > Как это реализовать? Как использовать @RolesAllowed? Есть ли ссылка > краткая по использованию? Да полно. Гугл весь пестрит ссылками. По сути на реализацию метода пишешь Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. И так далее. Потом в таблицах пишешь список ролей ("Entity1.put.new" и т.п.), рядом список логинов, таблицу групп ролей и связку операторов и групп. Админ настраивает группы, даёт операторам права на группы, а в логин-модуле ты по списку групп получаешь роли и пишешь их в методе, реализующем LoginModule.commit в Subject. Подробности- это зависит от сервера. Я только с jboss знаком. > Используем Weblogic в качестве апп. сервера, а среда разработки JDeveloper. Среда разработки не важна вообще, а Weblogic я не знаю. В жбоссе список ролей заполняется так (что-то общее, что-то придётся переделать). Список ролей- просто массив строк roleList, полученный как-то... Subject subject - то, что передаётся в LoginModule.initialize Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.02.2013, 11:11:43
|
|||
|---|---|---|---|
|
|||
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
ivanraРеализовывать безопасность на уровне базы данных при наличии сервера приложений - для этого должны быть веские причины, например, наличие клиентов, имеющих прямой доступ к базе. У нас например есть такое требование со стороны безопасности, что разграничение прав доступа должно дублироваться на каждом из уровней, при том, что у пользователей есть доступ только до AS. GKS_Samara> Есть 2 варианта реализации: > 1. Авторизация в oracle и доступ к ресурсам через Гранты СУБД. Но в > таком случае возможно ли для каждого пользователя создать одно > соединение к базе и соотвественно убивать его при выходе сессии на > стороне аппликейшна. Это убивает многие вещи, стандартные для AS- пул коннектов, JMS будет работать непонятно как и т.п. Proxy authentification, не? marlis82, почитайте плз authentication vs authorization, есть стойкое ощущение, что не чувствуете разницу между этими терминами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.02.2013, 11:44:24
|
|||
|---|---|---|---|
|
|||
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
Добрый день, just_vladimir! >> Реализовывать безопасность на уровне базы данных при наличии сервера >> приложений - для этого должны быть веские причины, например, наличие >> клиентов, имеющих прямой доступ к базе. > > У нас например есть такое требование со стороны безопасности, что > разграничение прав доступа должно дублироваться на каждом из уровней, > при том, что у пользователей есть доступ только до AS. А чем оно обосновано? Или они просто не понимают сути происходящего? >> Это убивает многие вещи, стандартные для AS- пул коннектов, JMS будет >> работать непонятно как и т.п. > Proxy authentification, не? Это когда при каждой операции сессии даются права, соответствующие пользователю? Мне думается, это приведёт к фантастическим тормозам. -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.02.2013, 12:54:39
|
|||
|---|---|---|---|
|
|||
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
GKS_Samara>> Реализовывать безопасность на уровне базы данных при наличии сервера >> приложений - для этого должны быть веские причины, например, наличие >> клиентов, имеющих прямой доступ к базе. > > У нас например есть такое требование со стороны безопасности, что > разграничение прав доступа должно дублироваться на каждом из уровней, > при том, что у пользователей есть доступ только до AS. А чем оно обосновано? Или они просто не понимают сути происходящего? Формально - нормативными документами организации. А так высокая секретность -> высокая цена ошибки приводящей к утечке. Пример, криво написанное приложение затесалась уязвимость на sql-injection (или любая другая, не важно как такое получилось, за всем не уследишь, нет идеальных технологий/продуктов, не имеющих уязвимостей, что-нибудь, где-нибудь да найдется), то должна сработать защита на следующем уровне. GKS_Samara>> Это убивает многие вещи, стандартные для AS- пул коннектов, JMS будет >> работать непонятно как и т.п. > Proxy authentification, не? Это когда при каждой операции сессии даются права, соответствующие пользователю? Мне думается, это приведёт к фантастическим тормозам. Ну может думаться по разному ;-) А так, экономия на спичках, т.к. прибавка к накладным расходам на операцию константная (конечно же не для случая, когда у вас тыс/млн запросов в секунду). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.02.2013, 13:16:47
|
|||
|---|---|---|---|
|
|||
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
just_vladimirУ нас например есть такое требование со стороны безопасности, что разграничение прав доступа должно дублироваться на каждом из уровней, при том, что у пользователей есть доступ только до AS. Просто интересно, как решили вопрос с коннектами, ведь по сути надо чтобы приложение подключалось к базе от имени пользователя, стандартные пулы тут неприменимы: - новый коннект на каждый запрос - коннекты хранятся в сессии / самодельный пул (и сколько же одновременно работающих пользователей) - похерили это требование ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.02.2013, 13:29:19
|
|||
|---|---|---|---|
|
|||
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
ivanrajust_vladimirУ нас например есть такое требование со стороны безопасности, что разграничение прав доступа должно дублироваться на каждом из уровней, при том, что у пользователей есть доступ только до AS. Просто интересно, как решили вопрос с коннектами, ведь по сути надо чтобы приложение подключалось к базе от имени пользователя, стандартные пулы тут неприменимы: - новый коннект на каждый запрос - коннекты хранятся в сессии / самодельный пул (и сколько же одновременно работающих пользователей) - похерили это требование Приводил выше один из вариантов - proxy authentification в случае Oracle (вроде как в топике речь о нем идет), в DB2 это будет trusted context, в кратце суть сводится к тому, что пул держится под неким технологическим пользователем, в контекст которого проставляется конечный пользователь. Можно и свои велосипеды изобретать в виде нескольких пулов, каждый пул будет соответствовать определенной роли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.02.2013, 13:38:40
|
|||
|---|---|---|---|
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
marlis82Есть 2 варианта реализации: есть ещё, при вменяемых админах, авторизация в доменах \ LDAP Когда большая сеть организации и в оракле есть Глобальные роли AFAIK Код: java 1. Там возможен пул, права хранятся вне БД и там уже взрослые решения от Оракле и взрослая безопасность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.02.2013, 13:39:42
|
|||
|---|---|---|---|
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
just_vladimirproxy authentification да. Я про неё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.02.2013, 13:59:31
|
|||
|---|---|---|---|
|
|||
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
Добрый день, just_vladimir! > Формально - нормативными документами организации. А так высокая > секретность -> высокая цена ошибки приводящей к утечке. Пример, криво > написанное приложение затесалась уязвимость на sql-injection (или любая > другая, не важно как такое получилось, за всем не уследишь, нет > идеальных технологий/продуктов, не имеющих уязвимостей, что-нибудь, > где-нибудь да найдется), то должна сработать защита на следующем уровне. Понятно. Нам, пока, к счастью такое требование не выставляют. > Ну может думаться по разному ;-) А так, экономия на спичках, т.к. > прибавка к накладным расходам на операцию константная (конечно же не для > случая, когда у вас тыс/млн запросов в секунду). В целом- у этого подхода есть накладные расходы. Т.е. лишний уровень безопасности оплачивается более дорогим железом (плюс к лишнему коду). -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.02.2013, 08:51:22
|
|||
|---|---|---|---|
|
|||
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
GKS_Samara Спасибо большое, а можно ли доступ закрывать на уровне бизнес компонент (EJB, sessB, ADF)? just_vladimir Уж поверьте есть представление насчет ААА:) Вопрос про контроль в несколько ступеней, количество пользователей (активных и айдл), на скорости как это отражается? Petro123 LDAP не совсем то, все таки хочется держать пользователей все таки в СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.02.2013, 10:30:37
|
|||
|---|---|---|---|
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
marlis82LDAP не совсем то, все таки хочется держать пользователей все таки в СУБД.тебе хочется или админам? Обычно у них не БД а куча систем и они хотят LDAP. Когда приоритет несколько уровне, то о скорости не говорят. Она не критична. Ну, ....может быть долгий коннект один раз утром.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2013, 08:19:00
|
|||
|---|---|---|---|
|
|||
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
Petro123 Разрабатываемый продукт Хотел поинтересоваться: 1. Насколько надежно хранить в контексте сессии данные по пользователю? Планируется загонять данные (логин например и номер сессии в оракле возможно для аудита) в Https_session для дальнейшей работы (чтобы возможно в будущем фильтровать данные на уровне СУБД тоже). 2. Хотелось бы дополнительно прикрутить туда доступ по сертификатам (Х.509). Лучше прикрутить дополнительный модуль authenticator от weblogic или ест еще варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2013, 10:50:07
|
|||
|---|---|---|---|
С праздником мужики. Вопрос по JAAS |
|||
|
#18+
marlis82, 1. Надёжнее чем что? Больше хранить и негде, лишь это было на защищённом сервере. По первости корзину покупателя хранили в куках на клиенте). Потом уже перенесли на сервер, чтобы юзвер сумму не менял) 2. А у тебя хранилище сертификатов есть. AFAIK ставится спец сервер под них в сетке + керберос и т.д. Это больше вопрос топологии сети у заказчика и админства. Без них стрёмно разрабатывать с нуля. авторЧтобы сделать сертификат X.509 доступным для Windows Communication Foundation (WCF), в коде приложения необходимо указать имя хранилища сертификатов и его расположение. В некоторых случаях идентификатор процесса должен иметь доступ к файлу, который содержит закрытый ключ, связанный с сертификатом X.509. Чтобы получить закрытый ключ, связанный с сертификатом X.509 в хранилище сертификатов, WCF должен иметь соответствующее разрешение. По умолчанию доступ к закрытому ключу сертификата имеют только владелец и системная учетная запись. imho ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&tablet=1&tid=2129830]: |
0ms |
get settings: |
19ms |
get forum list: |
24ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
37ms |
get topic data: |
18ms |
get forum data: |
5ms |
get page messages: |
100ms |
get tp. blocked users: |
3ms |
| others: | 298ms |
| total: | 516ms |

| 0 / 0 |
