|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
Классное слово. Похоже от "распиливать" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2020, 20:26 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
dakeiras Надо показывать все существующие опции в теории доступные юзеру в его иерархии step up авторизаций. Даже если он не является кем-то, кто имеет доступ до этих опций. Basil A. Sidorov "Да за это убивать надо!" (ц) судья из анекдота про преферансиста. это раскрытие всей структуры всем, даже тем кому и знать не положено/запрещено. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2020, 23:37 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
dakeiras Lelouch dakeiras, Это ни разу не решение. Скидка считается применённой после формирования заказа, а не просто от нажатия кнопки на фронте. То есть условный вызов выглядит примерно так: POST /order { ..., discount: true, ... } Кстати, заказ может быть отменён после формирования. Ваш maxUsage от этого тоже обратно не увеличится. Итого пока что ваше решение позволяет только защищать ресурсы и для реализации более менее простой логики вне этого сценария не расширяемо. P.S. Ваш подход теоретически возможен, но потребует передачи идентификатора заказа в url и сессии на be. В данном случае количество скидок - конечный ресурс. Поэтому его надо располагать на стороне ресурсного сервера, а не в авторизационном сервере. Доступ к ресурсам даётся по идентичности, но наличие ресурсов контролируется в ресурсном сервере - что логично. Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
авторКстати, заказ может быть отменён после формирования. Ваш maxUsage от этого тоже обратно не увеличится. Это уже есть в плане на доработку, для неиспользованных expired авторизаций вызывать откат аутентификаций. Пока только начинаю продумывать как это сделать правильно концептуально. Это классический пример счётчиков\лимитов\доступного остатка\баланса. Это то для чего в первую очередь эта система создавалась - чтобы гарантировать отработку функционального API при валидной авторизации. 1) каким образом ресурсный сервис узнаёт роль пользователя, если ваша система ее не предоставляет. И в том числе не предоставляет api для ее получения? 2) то есть вы наконец признаёте, что «защитить» что-либо кроме «ресурсов» ваша система не может. И в сложную логику тоже не может. Из чего вытекает не «защитите своё приложение легко и бесплатно без регистрации и смс» а «слелайте так, чтобы обойти ограничения моего решения и может быть будет вам счастье (только не забудьте закинуть денег)» 3) сравнения с keycloak ждать? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 00:53 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
Кстати, хотелось бы уточнить - в вашей реальности есть какой-то «офицер безопасности» который одновременно знает все урлы в приложении и умеет в регулярки. Мне интересно, в каком месте можно вообще найти человека с должностью «офицер безопасности»? Банки? Других задач и клиентов в природе нет? Это намёк на то, что большинство клиентов хотят или все в одном, или интеграцию с чем-то стандартным и распространённым, например AD. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 01:07 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
вадя dakeiras Надо показывать все существующие опции в теории доступные юзеру в его иерархии step up авторизаций. Даже если он не является кем-то, кто имеет доступ до этих опций. Basil A. Sidorov "Да за это убивать надо!" (ц) судья из анекдота про преферансиста. это раскрытие всей структуры всем, даже тем кому и знать не положено/запрещено. Зачем структуру то? Просто балете в шапке ссылки: /manager /seniorManager И т.д. При нажатии проверяется доступ к этому функционалу. Если нет - не пускает и всё. А делать кашу в общей вьюшке меняющуюся и скачущую - вот за это надо убивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 04:39 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
mayton Классное слово. Похоже от "распиливать" ? Transpiler никогда не слышали? Babel там? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 06:08 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
Lelouch Кстати, хотелось бы уточнить - в вашей реальности есть какой-то «офицер безопасности» который одновременно знает все урлы в приложении и умеет в регулярки. Мне интересно, в каком месте можно вообще найти человека с должностью «офицер безопасности»? Банки? Других задач и клиентов в природе нет? Это намёк на то, что большинство клиентов хотят или все в одном, или интеграцию с чем-то стандартным и распространённым, например AD. Да что там знать то, при нормально спроектированном API всё что требуется: - User: \/secured\/user\/%username\/.* - Admin: \/secured\/admin\/%adminname%\/.* автор1) каким образом ресурсный сервис узнаёт роль пользователя, если ваша система ее не предоставляет. И в том числе не предоставляет api для ее получения? 2) то есть вы наконец признаёте, что «защитить» что-либо кроме «ресурсов» ваша система не может. И в сложную логику тоже не может. Из чего вытекает не «защитите своё приложение легко и бесплатно без регистрации и смс» а «слелайте так, чтобы обойти ограничения моего решения и может быть будет вам счастье (только не забудьте закинуть денег)» 3) сравнения с keycloak ждать? Конечно признаю, я этого не отрицал а наоборот подчёркивал. Система для контроля доступа к веб ресурсам (HTTP->REST, SOAP, HTML (?)). Она простая как топор сама по себе. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 06:13 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
Т.е. аналогия следующая: охранник (security) пускает вас в банковское хранилище, но он не знает сколько у вас на счету денег. Это знает бухгалтер, который выдаст вам деньги уже в хранилище. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 07:13 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
dakeiras Раз вы работали на мейнфрейме Ну и кобола я не знаю. Не помню даже - был ли он в нашей системе. Даже RPG/400 не знаю, хотя он - точно был. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 08:43 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
Basil A. Sidorov dakeiras Раз вы работали на мейнфрейме Ну и кобола я не знаю. Не помню даже - был ли он в нашей системе. Даже RPG/400 не знаю, хотя он - точно был. Да, почитал, это не мейнфрейм, другой тип компьютера. Кобол в нём кстати тоже поддерживался. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 08:48 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
dakeiras Кобол в нём кстати тоже поддерживался. С другой стороны, примерно в это время, разработчики OS/400 мигрировали встроенную базу данных с "нативного" API на SQL, как основной язык манипуляции данными. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 08:51 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
dakeiras mayton Классное слово. Похоже от "распиливать" ? Transpiler никогда не слышали? Babel там? Бабель? Читал Одесские рассказы Бабеля. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 11:02 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
dakeiras, dakeirasДа что там знать то, при нормально спроектированном API всё что требуется: - User: \/secured\/user\/%username\/.* - Admin: \/secured\/admin\/%adminname%\/.* Сравнения с keycloak то ждать или нет?:) Или понимайте, что там без шансов?) dakeirasОхранник (security) пускает вас в банковское хранилище, но он не знает сколько у вас на счету денег. Это знает бухгалтер, который выдаст вам деньги уже в хранилище. Только в случае вашего "решения" охранник слишком туп, чтобы сообщить что на входе вип-клиент, к которому надо позвать старшего бухгалтера. (Ваше решение не позволяет получить роль пользователя, бред про передачу этого параметру в URL оставьте при себе. Это все равно что охранник на входе спрашивает "вы вип-клиент?") Кстати, тупой вопрос - как в вашем решении вообще корректно перенаправить пользователя после входа на "правильный" url (пусть будет ваш любимый /user или /admin) ?:) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 18:08 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
авторСравнения с keycloak то ждать или нет?:) Или понимайте, что там без шансов?) оно очень похоже. ОЧЕНЬ похоже. Но у меня более продуманно. Собственно оно подтверждает полностью всё написанное мной в этом топике насчёт концепции веб безопасности и как её осуществлять. И правильность моего дизайна. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 19:51 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
авторКстати, тупой вопрос - как в вашем решении вообще корректно перенаправить пользователя после входа на "правильный" url (пусть будет ваш любимый /user или /admin) ?:) Это REST URLы. Веб сайты с ГУЁм будут отдельные: https://mycoolsystem.com https://admin.mycoolsystem.com или https://mycoolsystem.com/admin (без автоматической переадресации и без доступа к юзерскому бизнес функционалу) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 19:56 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
И пара абстрактных моментов: - keycloak и ascend одновременно примерно начали делать в ~2016 - keycloak делает вроде redhat, по идее нормальная организация - поэтому вроде неплохо у них получилось - OAuth2, IETF/RFC - это шизофазийный лингвистический ужас. - Всё это вместе (Okta, Keycloak, Auth0, etc) разрозненно, плохо кореллируется с Spring Security и OAuth2 и Openidconnect. В результате возникает каша. Я о keycloak узнал только от вас. Хотя темой занимаюсь с 2016 года, по мере своих сил делал исследования решений. Надо сказать отдельное спасибо stackoverflow который засрал выборки в поисковиках. Вы считаете индусы осилят это всё? Или они осилят RFC? А кто должен кодить тогда за копейки? Если это такой хороший формат, почему он не общепринятый? (а если он общепринятый, где об этом инфа везде?) Это кризис веб безопасности. REST существует уже 15 лет. А безопасность до сих пор не стандартизированна на инфраструктурном уровне. Где RESTS (REST Secured), я вас спрашиваю? Какова стоимость внедрения и поддержки этих решений? Каковы риски уязвимостей из-за неправильной настройки и не полноценной модели безопасности? И вишенка на торте: 99% людей уверены что всё заебись и всё чётко, надо лишь зайти на stackoverflow - там за 5 минут будет рецепт как сделать безопасность :) Индусы свято верят в то что Спринг умеет вообще всё на свете. Страшно подумать сколько уязвимостей на этом уровне существует. Хакеры просто пока не дошли до этих атак. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 20:18 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
PS: только безопасникам это не говорите, пусть будут блаженны в своём неведении. Ну и кому организации должны доверять веб безопасность? Чтобы философски осмыслить всё это, требуется годы. Вы посадите человека реального эксперта по Яве, думаете он будет вникать в тонкости создания модели безопасности? Любой человек поскорее накидает что-то в настройках, лишь бы QA прошло, и всё. И спит спокойно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 20:32 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
dakeiras Страшно подумать сколько уязвимостей на этом уровне существует. Хакеры просто пока не дошли до этих атак. Ну расскажи хотя-бы об одной атаке. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 21:47 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
dakeiras авторСравнения с keycloak то ждать или нет?:) Или понимайте, что там без шансов?) оно очень похоже. ОЧЕНЬ похоже. Но у меня более продуманно. Шикарно. В чем же? dakeirasREST существует уже 15 лет. IP существует уже 39 лет! Где IP-secured я вас спрашиваю (LOL). Кстати, REST - не протокол:) dakeirasВсё это вместе (Okta, Keycloak, Auth0, etc) разрозненно, плохо кореллируется с Spring Security и OAuth2 и Openidconnect. В случае Keycloak интеграция на уровне "добавьте зависимость и заведется" (в том числе и со Spring Security). dakeirasХотя темой занимаюсь с 2016 года, по мере своих сил делал исследования решений. Странно, я его за 10 минут год назад нашел... dakeiraskeycloak и ascend одновременно примерно начали делать в ~2016 То есть за 4 года вы написали решение, которое умеет только защиту по URL. Объем кода за 4 года составил 126 файлов. По 41,5 файлу в год. Вы в теме бобина заливали что груви позволяет "быстро разрабатывать". Что-то не похоже) dakeirasЭто REST URLы. Веб сайты с ГУЁм будут отдельные: https://mycoolsystem.com https://admin.mycoolsystem.com или https://mycoolsystem.com/admin (без автоматической переадресации и без доступа к юзерскому бизнес функционалу) То есть если у меня пара десятков функциональных ролей я должен 20 интерфейсов нарисовать? И единую точку входа ваше "решение" тоже не умеет - необходимо изначально зайти на корректный сайт. Спасибо, хоть рассмешили:) Серьезно воспринимать это я больше не могу. Особенно после заявления о том, что keycloak не продуман, в отличии от вашего шедевра, который без спринга и чихнуть не может, в том числе на клиенте. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 23:20 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
авторТо есть если у меня пара десятков функциональных ролей я должен 20 интерфейсов нарисовать? Да. При этом это хорошая практика. Видите, Ascend вас заставляет следовать конвенции правильной. Но конечно 20 маппингов не надо делать. Делаете такой просто: Код: java 1. 2.
Т.е. предиката безопасности должна присутствовать на ифраструктурном уровне (на транспортном уровне - в URL). Это именно то как задумывался изначально REST, и я вам более того скажу - это было специально изначально заложено в HTTP его создателями. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 06:04 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
dakeiras, Кстати, keycloak был выпущен в 2014 году, а не "начал разрабатываться" в 2016. Видимо с поиском у вас не задалось от слова совсем. dakeirasДа. При этом это хорошая практика. Видите, Ascend вас заставляет следовать конвенции правильной. Пока эта "конвенция" правильна только с ваших слов. Можно ссылки на что-то поавторитетнее? И пожалуйста - не в теме разделения "пользователь/администратор", а именно для ролей типа менеджер/старший менеджер. dakeiras@GetMapping("/{userRole}/{user}/documents") А если у пользователя несколько ролей? В том числе зависящих, откуда он в систему заходит? (Да, такое бывает, в одном филиале ты менеджер, в другом - старший менеджер. Где находится АРМ в который входит пользователь - известно). Хотя о чем я спрашиваю, вы опять будете что-то веселое рассказывать вместо ответов. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 10:48 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
авторКстати, keycloak был выпущен в 2014 году Это они пусть не лечат. Может где-то в недрах Red Hat (который платный вполне себе). авторПока эта "конвенция" правильна только с ваших слов. Можно ссылки на что-то поавторитетнее? Нету. Но согласитесь конвенция правильная? авторА если у пользователя несколько ролей? В том числе зависящих, откуда он в систему заходит? (Да, такое бывает, в одном филиале ты менеджер, в другом - старший менеджер. Где находится АРМ в который входит пользователь - известно). Хотя о чем я спрашиваю, вы опять будете что-то веселое рассказывать вместо ответов. Основной юскейс Ascend - единственная роль пользователя + Step Up (многоуровневый: T&Cs + Privacy Policy + Login +SMS OTP + ...) То о чём Вы говорите - наверное лучше какие-то другие решения использовать (возможно тот же Spring Security). Я никогда не говорил что Ascend универсален в чистом виде. Всё что я говорил - что Spring Security для наиболее частого юскейса веб приложений и мобильных приложений - неправилен. Keycloak только подтвердил это. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 11:30 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
Наверное Вы хотите сказать: Веб безопасность: Keycloak + одновременно Функциональный доступ: Spring Security Наверное соглашусь. Ascend здесь альтернатива Keycloak. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 11:32 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
Я по прежнему жду презнетацию по Робину-Бобину и по твоей супер-секюрной системе которая порвет Spring Security методы как Тузик грелку. Должок.... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 12:03 |
|
Spring Security имеет неверную архитектуру
|
|||
---|---|---|---|
#18+
dakeirasЭто они пусть не лечат. Может где-то в недрах Red Hat (который платный вполне себе). keycloak git log --reversecommit 1586f461bef88721a42e866dcbd8a4e8abbf9ce0 Author: Bill Burke <bburke@redhat.com> Date: Fri Jul 5 14:23:16 2013 -0400 dakeirasНету. Но согласитесь конвенция правильная? Бредовая конвенция на мой вкус. dakeirasВсё что я говорил - что Spring Security для наиболее частого юскейса веб приложений и мобильных приложений - неправилен. Keycloak только подтвердил это. Что именно keycloak и каким образом подтвердил? Имея в виду, что он тоже умеет "защиту ресурсов по url", просто помимо этого предоставляет, например, API для получения данных о пользователе? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2020, 12:13 |
|
|
start [/forum/topic.php?fid=59&msg=39960189&tid=2120795]: |
0ms |
get settings: |
3ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
34ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
413ms |
get tp. blocked users: |
0ms |
others: | 304ms |
total: | 765ms |
0 / 0 |