Size: a a a

Архитектура ИТ-решений

2020 April 07

AS

Aleksandr Semyannikov in Архитектура ИТ-решений
Evgeniy Nikonorov
универсального механизма нет, т.к. в общем случае надо фильтровать и по региону и по сегменту и по мало чему еще + замещение, подчинение и прочее. А еще есть принципиально разные группы сотрудников, например очереди заявок и там совсем другие правила
Да, мне приходилось работать с решением, где пользаки бились на группы. Группы при этом могли быть вложены в другие группы. И к данным прицеплялся ACL, в котором было описано какие группы какие права имеют.
источник

AS

Aleksandr Semyannikov in Архитектура ИТ-решений
Просадки получали иногда знатные
источник

EN

Evgeniy Nikonorov in Архитектура ИТ-решений
я же говорю, теряешь сон минимум
источник

AS

Aleksandr Semyannikov in Архитектура ИТ-решений
Опять же, если фильтрацию выносить наружу, с одной стороны, можно сделать map-reduce, с другой стороны, хз как оно себя будет вести если данных - тонны
источник

AS

Aleksandr Semyannikov in Архитектура ИТ-решений
Кто-нибудь пробовал комбинировать эти подходы?
источник

EN

Evgeniy Nikonorov in Архитектура ИТ-решений
пробовали, если все скомбинировать - будешь врагом разработчиков, если все упростить - врагом бизнеса)
источник

EN

Evgeniy Nikonorov in Архитектура ИТ-решений
а если по середине  - для обоих будешь врагом)
источник

EN

Evgeniy Nikonorov in Архитектура ИТ-решений
идеальный кейс, как сказал Фил, убедить бизнес что им это не нужно
источник

СС

Сергей Старцев in Архитектура ИТ-решений
Evgeniy Nikonorov
а если по середине  - для обоих будешь врагом)
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Сергей Старцев
ну, и он тоже, как прородитель... но кусается конечно ценой 😊
И тоже тормозит и из всех пользователей создавать пользователей Оракла - сложно и неудобно. И не позволяет работать с теми же организационными связями, насколько я помню.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Когда я последний раз такое делал, то получилось следующее:
1) У каждой сущности есть владелец - пользователь
2) Отдельный сервис оргструктуры, который умеет вычислять "чьи владения имеет конкретный пользователь" (подчиненных, заместителей и т.п., там сложная логика.
3) Каждый доменный сервис в токене получал пользователя, по нему запрашивал "схему владений" из 2) и кэшиовал ее.
4) Каждый доменный сервис использовал эту схему владений в своих запросах к БД (обычно в виде in....)
5) На это накладывались оптимизации вида "а еще есть регионы на 5000 пользователей, их руководителей в схемах учитываем специальным образом в тех сервисах, где это актуально)
6) Все прочие фильтры делаем на bff фильтрацией
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Монструозненько, но для 100K внутренних пользователей и сложной структуры прав иначе не работало.
источник

СС

Сергей Старцев in Архитектура ИТ-решений
Phil Delgyado
И тоже тормозит и из всех пользователей создавать пользователей Оракла - сложно и неудобно. И не позволяет работать с теми же организационными связями, насколько я помню.
ну, в оракле да - я бы так не стал делать - потому что смешать пользователей и схемы было очень странным решением... и оно теперь как легаси-наследие тянется через все версии
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Оно работает, у меня тут перед глазами огромная система, где каждый пользователь бэкофиса - учетка в Оракле с хитрой схемой прав. Но это очень сложно, да.
источник

СС

Сергей Старцев in Архитектура ИТ-решений
Phil Delgyado
Оно работает, у меня тут перед глазами огромная система, где каждый пользователь бэкофиса - учетка в Оракле с хитрой схемой прав. Но это очень сложно, да.
ну, это понятно - работать может что угодно 😊
просто работать с этим админу сложнее 😊
в одной большой нефтяной компании, например, безопасники требовали всегда, чтобы была сквозная авторизация - соответственно все пользователи AD заезжали в ORACLE 😊
источник

NK

Nikita Kiselev in Архитектура ИТ-решений
Phil Delgyado
Когда я последний раз такое делал, то получилось следующее:
1) У каждой сущности есть владелец - пользователь
2) Отдельный сервис оргструктуры, который умеет вычислять "чьи владения имеет конкретный пользователь" (подчиненных, заместителей и т.п., там сложная логика.
3) Каждый доменный сервис в токене получал пользователя, по нему запрашивал "схему владений" из 2) и кэшиовал ее.
4) Каждый доменный сервис использовал эту схему владений в своих запросах к БД (обычно в виде in....)
5) На это накладывались оптимизации вида "а еще есть регионы на 5000 пользователей, их руководителей в схемах учитываем специальным образом в тех сервисах, где это актуально)
6) Все прочие фильтры делаем на bff фильтрацией
от прям ровно то, что у нас получилосьььь
источник

PD

Phil Delgyado in Архитектура ИТ-решений
А права на операции - только на bff проверяли, внутри они никому не нужны особенно )
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Nikita Kiselev
от прям ровно то, что у нас получилосьььь
О, хорошо, что я не одинок в этом велосипеде.
источник

NK

Nikita Kiselev in Архитектура ИТ-решений
а со сложной орг.структурой инчае ни как - мы всяко пробовали
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Но если число пользователей в оргструктуре до 1000 - то можно их и прямо в токене передавать.
источник