Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5 6 7   вперед  Ctrl      все
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
Классное слово. Похоже от "распиливать" ?
20 май 20, 20:26    [22136689]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17738
dakeiras
Надо показывать все существующие опции в теории доступные юзеру в его иерархии step up авторизаций.
Даже если он не является кем-то, кто имеет доступ до этих опций.


Basil A. Sidorov
"Да за это убивать надо!" (ц) судья из анекдота про преферансиста.
+100500
это раскрытие всей структуры всем, даже тем кому и знать не положено/запрещено.
20 май 20, 23:37    [22136797]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras
Lelouch
dakeiras,

Это ни разу не решение. Скидка считается применённой после формирования заказа, а не просто от нажатия кнопки на фронте.
То есть условный вызов выглядит примерно так:
POST /order { ..., discount: true, ... }
Кстати, заказ может быть отменён после формирования. Ваш maxUsage от этого тоже обратно не увеличится.

Итого пока что ваше решение позволяет только защищать ресурсы и для реализации более менее простой логики вне этого сценария не расширяемо.

P.S. Ваш подход теоретически возможен, но потребует передачи идентификатора заказа в url и сессии на be.


В данном случае количество скидок - конечный ресурс. Поэтому его надо располагать на стороне ресурсного сервера, а не в авторизационном сервере. Доступ к ресурсам даётся по идентичности, но наличие ресурсов контролируется в ресурсном сервере - что логично.

{
      "name" : "managerAuthorization",
      "identities" : [ {
        "name" : "manager",
        "authentications" : [ {
          "name" : "kerberos"
        }, {
          "name" : "managerGroupMember"
        }, {
          "name" : "discountDailyLimitCounter"
        } ]
      } ],
      "scopes" : [ {
        "name" : "managerScope",
        "grants" : [ {
          "urlRegex" : "https:\\/\\/resourceserver\\.com\\/contentroot\\/secured\\/order\\?discount=true",
          "bodyRegex" : null,
          "httpMethod" : "POST"
        } ]
      } ],
      "durationSeconds" : 1800,
      "maxUsageCount" : 1,
      "prerequisites" : [ ],
      "refresh" : null
}


автор
Кстати, заказ может быть отменён после формирования. Ваш maxUsage от этого тоже обратно не увеличится.

Это уже есть в плане на доработку, для неиспользованных expired авторизаций вызывать откат аутентификаций.
Пока только начинаю продумывать как это сделать правильно концептуально.

Это классический пример счётчиков\лимитов\доступного остатка\баланса. Это то для чего в первую очередь эта система создавалась - чтобы гарантировать отработку функционального API при валидной авторизации.


1) каким образом ресурсный сервис узнаёт роль пользователя, если ваша система ее не предоставляет. И в том числе не предоставляет api для ее получения?
2) то есть вы наконец признаёте, что «защитить» что-либо кроме «ресурсов» ваша система не может. И в сложную логику тоже не может. Из чего вытекает не «защитите своё приложение легко и бесплатно без регистрации и смс» а «слелайте так, чтобы обойти ограничения моего решения и может быть будет вам счастье (только не забудьте закинуть денег)»
3) сравнения с keycloak ждать?
21 май 20, 00:53    [22136810]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
Кстати, хотелось бы уточнить - в вашей реальности есть какой-то «офицер безопасности» который одновременно знает все урлы в приложении и умеет в регулярки. Мне интересно, в каком месте можно вообще найти человека с должностью «офицер безопасности»? Банки? Других задач и клиентов в природе нет?
Это намёк на то, что большинство клиентов хотят или все в одном, или интеграцию с чем-то стандартным и распространённым, например AD.
21 май 20, 01:07    [22136814]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
вадя
dakeiras
Надо показывать все существующие опции в теории доступные юзеру в его иерархии step up авторизаций.
Даже если он не является кем-то, кто имеет доступ до этих опций.


Basil A. Sidorov
"Да за это убивать надо!" (ц) судья из анекдота про преферансиста.
+100500
это раскрытие всей структуры всем, даже тем кому и знать не положено/запрещено.

Зачем структуру то?

Просто балете в шапке ссылки:
/manager
/seniorManager

И т.д.

При нажатии проверяется доступ к этому функционалу. Если нет - не пускает и всё.

А делать кашу в общей вьюшке меняющуюся и скачущую - вот за это надо убивать.
21 май 20, 04:39    [22136829]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
mayton
Классное слово. Похоже от "распиливать" ?

Transpiler никогда не слышали? Babel там?
21 май 20, 06:08    [22136842]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Lelouch
Кстати, хотелось бы уточнить - в вашей реальности есть какой-то «офицер безопасности» который одновременно знает все урлы в приложении и умеет в регулярки. Мне интересно, в каком месте можно вообще найти человека с должностью «офицер безопасности»? Банки? Других задач и клиентов в природе нет?
Это намёк на то, что большинство клиентов хотят или все в одном, или интеграцию с чем-то стандартным и распространённым, например AD.


Да что там знать то, при нормально спроектированном API всё что требуется:

- User:
\/secured\/user\/%username\/.*

- Admin:
\/secured\/admin\/%adminname%\/.*

автор
1) каким образом ресурсный сервис узнаёт роль пользователя, если ваша система ее не предоставляет. И в том числе не предоставляет api для ее получения?
2) то есть вы наконец признаёте, что «защитить» что-либо кроме «ресурсов» ваша система не может. И в сложную логику тоже не может. Из чего вытекает не «защитите своё приложение легко и бесплатно без регистрации и смс» а «слелайте так, чтобы обойти ограничения моего решения и может быть будет вам счастье (только не забудьте закинуть денег)»
3) сравнения с keycloak ждать?

Конечно признаю, я этого не отрицал а наоборот подчёркивал.
Система для контроля доступа к веб ресурсам (HTTP->REST, SOAP, HTML (?)).
Она простая как топор сама по себе.
21 май 20, 06:13    [22136844]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Т.е. аналогия следующая: охранник (security) пускает вас в банковское хранилище, но он не знает сколько у вас на счету денег.
Это знает бухгалтер, который выдаст вам деньги уже в хранилище.
21 май 20, 07:13    [22136856]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10177
dakeiras
Раз вы работали на мейнфрейме
AS/400 - ни разу не мейнфрейм. Это миникомпьютер, в тогдашней терминологии.
Ну и кобола я не знаю. Не помню даже - был ли он в нашей системе. Даже RPG/400 не знаю, хотя он - точно был.
21 май 20, 08:43    [22136874]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Basil A. Sidorov
dakeiras
Раз вы работали на мейнфрейме
AS/400 - ни разу не мейнфрейм. Это миникомпьютер, в тогдашней терминологии.
Ну и кобола я не знаю. Не помню даже - был ли он в нашей системе. Даже RPG/400 не знаю, хотя он - точно был.

Да, почитал, это не мейнфрейм, другой тип компьютера. Кобол в нём кстати тоже поддерживался.
21 май 20, 08:48    [22136876]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10177
dakeiras
Кобол в нём кстати тоже поддерживался.
Я в курсе, что поддерживался, но не помню, был ли он у нас.
С другой стороны, примерно в это время, разработчики OS/400 мигрировали встроенную базу данных с "нативного" API на SQL, как основной язык манипуляции данными.
21 май 20, 08:51    [22136877]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
dakeiras
mayton
Классное слово. Похоже от "распиливать" ?

Transpiler никогда не слышали? Babel там?

Бабель? Читал Одесские рассказы Бабеля.
21 май 20, 11:02    [22136931]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras,

dakeiras
Да что там знать то, при нормально спроектированном API всё что требуется:

- User:
\/secured\/user\/%username\/.*

- Admin:
\/secured\/admin\/%adminname%\/.*



Сравнения с keycloak то ждать или нет?:) Или понимайте, что там без шансов?)

dakeiras
Охранник (security) пускает вас в банковское хранилище, но он не знает сколько у вас на счету денег.
Это знает бухгалтер, который выдаст вам деньги уже в хранилище.

Только в случае вашего "решения" охранник слишком туп, чтобы сообщить что на входе вип-клиент, к которому надо позвать старшего бухгалтера. (Ваше решение не позволяет получить роль пользователя, бред про передачу этого параметру в URL оставьте при себе. Это все равно что охранник на входе спрашивает "вы вип-клиент?")

Кстати, тупой вопрос - как в вашем решении вообще корректно перенаправить пользователя после входа на "правильный" url (пусть будет ваш любимый /user или /admin) ?:)

Сообщение было отредактировано: 21 май 20, 18:10
21 май 20, 18:08    [22137233]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
автор
Сравнения с keycloak то ждать или нет?:) Или понимайте, что там без шансов?)

оно очень похоже. ОЧЕНЬ похоже.

Но у меня более продуманно.

Собственно оно подтверждает полностью всё написанное мной в этом топике насчёт концепции веб безопасности и как её осуществлять. И правильность моего дизайна.
21 май 20, 19:51    [22137299]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
автор
Кстати, тупой вопрос - как в вашем решении вообще корректно перенаправить пользователя после входа на "правильный" url (пусть будет ваш любимый /user или /admin) ?:)

Это REST URLы.

Веб сайты с ГУЁм будут отдельные:

https://mycoolsystem.com

https://admin.mycoolsystem.com или https://mycoolsystem.com/admin (без автоматической переадресации и без доступа к юзерскому бизнес функционалу)
21 май 20, 19:56    [22137302]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
И пара абстрактных моментов:
- 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 май 20, 20:23
21 май 20, 20:18    [22137313]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
PS: только безопасникам это не говорите, пусть будут блаженны в своём неведении.

Ну и кому организации должны доверять веб безопасность? Чтобы философски осмыслить всё это, требуется годы.
Вы посадите человека реального эксперта по Яве, думаете он будет вникать в тонкости создания модели безопасности?
Любой человек поскорее накидает что-то в настройках, лишь бы QA прошло, и всё. И спит спокойно.
21 май 20, 20:32    [22137327]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
dakeiras
Страшно подумать сколько уязвимостей на этом уровне существует. Хакеры просто пока не дошли до этих атак.

Ну расскажи хотя-бы об одной атаке.
21 май 20, 21:47    [22137351]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras
автор
Сравнения с keycloak то ждать или нет?:) Или понимайте, что там без шансов?)

оно очень похоже. ОЧЕНЬ похоже.

Но у меня более продуманно.


Шикарно. В чем же?

dakeiras
REST существует уже 15 лет.

IP существует уже 39 лет! Где IP-secured я вас спрашиваю (LOL).
Кстати, REST - не протокол:)

dakeiras
Всё это вместе (Okta, Keycloak, Auth0, etc) разрозненно, плохо кореллируется с Spring Security и OAuth2 и Openidconnect.

В случае Keycloak интеграция на уровне "добавьте зависимость и заведется" (в том числе и со Spring Security).

dakeiras
Хотя темой занимаюсь с 2016 года, по мере своих сил делал исследования решений.

Странно, я его за 10 минут год назад нашел...

dakeiras
keycloak и 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 май 20, 23:20    [22137384]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
автор
То есть если у меня пара десятков функциональных ролей я должен 20 интерфейсов нарисовать?

Да. При этом это хорошая практика.
Видите, Ascend вас заставляет следовать конвенции правильной.

Но конечно 20 маппингов не надо делать. Делаете такой просто:

@GetMapping("/{userRole}/{user}/documents")
Document getDocuments(...) {...}


Т.е. предиката безопасности должна присутствовать на ифраструктурном уровне (на транспортном уровне - в URL).
Это именно то как задумывался изначально REST, и я вам более того скажу - это было специально изначально заложено в HTTP его создателями.
22 май 20, 06:04    [22137436]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras,

Кстати, keycloak был выпущен в 2014 году, а не "начал разрабатываться" в 2016. Видимо с поиском у вас не задалось от слова совсем.

dakeiras
Да. При этом это хорошая практика.
Видите, Ascend вас заставляет следовать конвенции правильной.


Пока эта "конвенция" правильна только с ваших слов. Можно ссылки на что-то поавторитетнее?
И пожалуйста - не в теме разделения "пользователь/администратор", а именно для ролей типа менеджер/старший менеджер.

dakeiras
@GetMapping("/{userRole}/{user}/documents")

А если у пользователя несколько ролей? В том числе зависящих, откуда он в систему заходит? (Да, такое бывает, в одном филиале ты менеджер, в другом - старший менеджер. Где находится АРМ в который входит пользователь - известно).
Хотя о чем я спрашиваю, вы опять будете что-то веселое рассказывать вместо ответов.
22 май 20, 10:48    [22137538]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
автор
Кстати, keycloak был выпущен в 2014 году

Это они пусть не лечат. Может где-то в недрах Red Hat (который платный вполне себе).

автор
Пока эта "конвенция" правильна только с ваших слов. Можно ссылки на что-то поавторитетнее?

Нету. Но согласитесь конвенция правильная?

автор
А если у пользователя несколько ролей? В том числе зависящих, откуда он в систему заходит? (Да, такое бывает, в одном филиале ты менеджер, в другом - старший менеджер. Где находится АРМ в который входит пользователь - известно).
Хотя о чем я спрашиваю, вы опять будете что-то веселое рассказывать вместо ответов.

Основной юскейс Ascend - единственная роль пользователя + Step Up (многоуровневый: T&Cs + Privacy Policy + Login +SMS OTP + ...)

То о чём Вы говорите - наверное лучше какие-то другие решения использовать (возможно тот же Spring Security). Я никогда не говорил что Ascend универсален в чистом виде.

Всё что я говорил - что Spring Security для наиболее частого юскейса веб приложений и мобильных приложений - неправилен.
Keycloak только подтвердил это.
22 май 20, 11:30    [22137576]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Наверное Вы хотите сказать:

Веб безопасность: Keycloak
+ одновременно
Функциональный доступ: Spring Security

Наверное соглашусь.

Ascend здесь альтернатива Keycloak.
22 май 20, 11:32    [22137578]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
Я по прежнему жду презнетацию по Робину-Бобину и по твоей супер-секюрной системе
которая порвет Spring Security методы как Тузик грелку.

Должок....
22 май 20, 12:03    [22137597]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras
Это они пусть не лечат. Может где-то в недрах Red Hat (который платный вполне себе).


keycloak git log --reverse
commit 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 май 20, 12:12
22 май 20, 12:13    [22137603]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5 6 7   вперед  Ctrl      все
Все форумы / Java Ответить