В общем у нас все в компании вайб-кодит, даже пиар. У всех появились свои дашборды, интеграции, сервисы аналитик. И встал вопрос, как собирать это всё в одном месте, так чтобы друг у друга ничего не сломать.
Думал сделать единый сервис, где будет модульность по всем канонам разработки. Но такое точно привело бы что, кто-то код поправил.
Думал о сервисной системе. Чтобы был главный а остальные по rest api подключаются. Попробовали, не всегда удобно.
В итоге пришли к единой SSO авторизации через KeyCloak. Рассказываю как работает.
У вас единый сайт, где заводятся все пользователи и все сервисы. На каждый сервис вы внедряете, чтобы туда по другому никак нельзя зайти.
Дальше в SSO етсь ответственные, кто могут отдавать другим доступы. Сделали отдельную таблицу, где по вертикали зарегистрированные сотрудники по вертикали сервисы. И у каждого можно поставить галочку. Или даже две, например в сервисах конспектов по встречам у нас обычный пользователь видит только свои встречи, а админ видит все.
Сотрудник регистрируется. Получает права к сервисам, которые ему нужны. Если увольняется, то в 1 клик забирается весь доступ.
А вот сервисы, которые завайбкодили сотрудники, там как только понимаем, что он используется не одним человеком, подключаем эту интеграцию. Благо это теперь 30-60 минут. И их сервис другие никак не сломает.
Сервисы от других вендоров: гитлаб, конфлуенс, планфикс тоже подключили. Благо почти у всех есть настройки для SSO.
Почему Keycloak? Да всё банально, во-первых вайбкодить системы требующие безопасности — дурной тон, а во-вторых это чаще всего просят наши клиенты.
Все счастливы и в безопасности :)
