SSO та управління ідентифікацією: розгортання Keycloak під ключ

Коли співробітники тримають десятки паролів, а звільнення перетворюється на ручну перевірку доступів, страждає і безпека, і швидкість роботи. Ми розгортаємо Keycloak під ключ: налаштовуємо єдиний вхід, ролі та права, підключаємо внутрішні сервіси. Ви отримуєте керовану ідентифікацію та прозорий контроль доступу без ручної рутини.
Часті запитання

Keycloak: єдина точка входу для всіх сервісів

Поки сервісів три, саморобний вхід виглядає розумним рішенням: форма, таблиця користувачів, видача токена.

Проблема проявляється на десятому сервісі, коли облікові записи розходяться по базах, у частини співробітників доступ залишається після звільнення, а пароль доводиться змінювати в кожному застосунку окремо.

Кожна нова інтеграція — це ще один спосіб автентифікації сервісів, який потрібно підтримувати, тестувати й захищати.

Keycloak прибирає цю розгалуженість: єдиний вхід будується поверх одного провайдера ідентичності, а застосунки перестають зберігати паролі та перевіряти їх самостійно.

Сервіс отримує підписаний токен і довіряє йому — правила випуску, термін життя та склад даних описані в одному місці. Управління доступом переїжджає з коду кожного застосунку в ролі та групи, які адміністратор змінює без релізу.

Далі працює федерація: каталог співробітників підключається як джерело користувачів, зовнішні підрядники входять через корпоративний провайдер, а сервіс-сервісні звернення авторизуються машинними обліковими записами.

Користувач проходить автентифікацію один раз і потрапляє в усі системи без повторного введення пароля, а відкликання доступу спрацьовує централізовано — сесія закривається, токени перестають оновлюватися.

Розбираємо, як це розгортається: від схеми реалмів і клієнтів до відмовостійкого контуру з резервним вузлом, щоб єдиний вхід не став єдиною точкою відмови.

Що дає керована ідентифікація

Єдина точка входу знімає з команди ручну роботу, яка раніше з'їдала час на кожному новому сервісі.

Замість окремої бази користувачів і саморобної авторизації в кожному застосунку сервіс реєструється як клієнт у Keycloak — підключення нового застосунку займає години, а не дні, і не потребує писати та супроводжувати власний код автентифікації.

Ручні операції скорочуються завдяки централізації. Користувачі, групи та права живуть в одному місці: прихід співробітника, переведення між відділами, звільнення — це одна операція, яка одразу відображається в усіх підключених системах.

Відкликаємо доступ в одному місці — він зникає всюди, і не залишається «забутих» облікових записів в окремих сервісах.

Єдина політика доступу перестає бути набором домовленостей і стає виконуваним правилом. Вимоги до паролів, обов'язкова двофакторна автентифікація, термін життя сесії, обмеження за ролями — усе налаштовується один раз і застосовується однаково до всіх застосунків. Новий сервіс успадковує цю політику при підключенні, а не збирає свою.

Прозорість входів закриває цілий клас інцидентів із доступом. Кожен вхід, відмова та зміна прав фіксуються в єдиному журналі: видно, хто, коли і через який сервіс заходив, у кого залишилися активні сесії.

Під час розбору інциденту не потрібно збирати логи по десятках систем — картина збирається з одного джерела, а підозрілу сесію можна завершити примусово.

Окремо знімається ризик, який зазвичай спливає під час аудиту: розсинхрон облікових записів між системами.

Коли джерело істини одне, а підключення сервісів іде за відпрацьованим шаблоном, доступи перестають «жити своїм життям» — а це і є та сама керована ідентифікація, яку замовник отримує як результат.

Варіанти розгортання та їхні обмеження

Розгортання Keycloak рідко буває «просто підняти контейнер»: вибір майданчика визначає, хто відповідає за доступність, оновлення та юридичну чистоту зберігання облікових даних. Нижче — три схеми, між якими реально обирають на старті, та їхні обмеження.

Варіант Коли підходить Обмеження
Керований контур на нашій стороні Потрібен швидкий запуск, немає власної команди супроводу, допустиме розміщення поза вашим периметром Менше контролю над мережевою ізоляцією та оновленнями; потрібне узгодження щодо даних
Розгортання в інфраструктурі замовника Суворі вимоги до зберігання персональних даних, є власні потужності та чергова зміна Оновлення та відмовостійкість — на вашій стороні; потрібен доступ для супроводу
Гібридна схема Основний контур усередині периметра, а частина сервісів або зовнішніх партнерів — зовні Складніша маршрутизація та синхронізація сесій; потрібне акуратне налаштування федерації

Що визначає вибір

Керований контур дає передбачуваний старт: ми тримаємо кластер, реплікацію та резервні копії, ви отримуєте працюючий вхід без своєї інфраструктури. Обмеження — дані лежать поза вашим периметром, і це не завжди проходить узгодження.

Розгортання у вас — зворотний бік: повний контроль над мережею та зберіганням, але супровід, оновлення та відновлення лягає на вашу команду. Гібрид знімає частину обмежень, додаючи роботу з федерації між контурами.

Обговоримо ваші вимоги до периметра та даних — повернемося з оцінкою та планом.

Як відбувається впровадження: етапи робіт

Впровадження SSO — це не встановлення продукту, а перебудова всіх точок входу в системи. Тому починаємо з інвентаризації, а не з розгортання: поки не видно повної картини, будь-яке налаштування політик робиться навмання.

Як влаштований процес

  1. Аудит входів. Збираємо всі системи, куди логіняться співробітники та зовнішні користувачі: внутрішні сервіси, адмін-панелі, партнерські кабінети. Фіксуємо, де зберігаються облікові записи, які протоколи підтримуються, чи є локальні бази паролів і сервісні акаунти зі спільними credentials.
  2. Схема інтеграції. Визначаємо, які застосунки підключаємо за сучасними протоколами, а які потребують проксі-шару або доопрацювання. Узгоджуємо модель ролей і груп, щоб права не довелося переписувати після запуску.
  3. Розгортання та налаштування політик. Піднімаємо кластер з реплікацією, налаштовуємо федерацію з наявним каталогом користувачів, правила паролів, багатофакторну автентифікацію та час життя сесій. Політики описуємо декларативно — конфігурація відтворювана, а не зібрана вручну.
  4. Перевірка сценаріїв. Проганяємо реальні шляхи: перший вхід, скидання пароля, завершення сесії, відкликання доступу при звільненні, вхід зовнішнього підрядника з обмеженими правами. Окремо перевіряємо відмовостійкість — що відбувається при недоступності одного вузла.
  5. Передача в експлуатацію. Віддаємо документацію, регламенти адміністрування та інструкції для служби підтримки. Навчаємо команду замовника типових операцій: додавання застосунку, видача ролі, розбір інциденту зі входом.

Що важливо на кожному кроці

Аудит і схема інтеграції займають більше часу, ніж саме налаштування, — і саме вони визначають, чи доведеться переробляти через місяць. Перевірка сценаріїв іде до передачі, а не після: інциденти зі входом паралізують роботу швидше за будь-який інший збій.

Опишіть вашу задачу — повернемося з оцінкою та планом за етапами.

Що отримує замовник після впровадження

Вхід у систему перестає бути набором локальних облікових записів: єдина точка автентифікації обслуговує внутрішні сервіси, адмін-панелі та зовнішні кабінети партнерів. Нижче — що залишається у вашої команди після здачі, щоб підтримка й розвиток не залежали від підрядника.

  • Конфігурації realm і клієнтів — експортовані у файли налаштування федерації користувачів, мапінгу ролей і груп, таймаутів сесій і оновлення токенів. Розгортаються на стенді однією командою, а не збираються заново по пам'яті.
  • Схеми потоків входу — діаграми для кожного сценарію: вхід співробітника за корпоративним каталогом, зовнішнього користувача за одноразовим кодом, сервіс-акаунта за машинним токеном. Видно, де спрацьовує багатофакторна перевірка і де підключається зовнішній постачальник ідентичності.
  • Політики доступу — правила видачі ролей і областей видимості, обмеження за адресами й пристроями, терміни життя сесій і умови примусового виходу. Кожне правило прив'язане до конкретної групи, а не до окремої людини.
  • Регламенти супроводу — порядок додавання й блокування користувачів, ротації ключів підпису, оновлення сертифікатів і реакції на інциденти входу. Із зазначенням, хто і в який термін виконує кожен крок.
  • Документація — карта інтеграцій, опис ролей та їх призначення, інструкції для служби підтримки й чек-лист діагностики типових збоїв автентифікації.
  • Моніторинг і журнали — вивантаження подій входу й відмов у вашу систему збору логів, набір оповіщень на сплеск невдалих спроб і недоступність провайдера.
  • Скрипти резервного копіювання й відновлення — перевірений сценарій підйому конфігурації та даних на чистому контурі із заміром часу відновлення.

Усе перелічене передається у вашому репозиторії з історією змін: правки конфігурацій проходять рев'ю, а не вносяться руками в інтерфейсі. Опишіть вашу задачу — повернемося з оцінкою та планом робіт.

Кейс: єдиний вхід для внутрішніх сервісів

До: автентифікація була розмазана по сервісах. Частина систем жила на власних таблицях користувачів, частина — на LDAP-каталозі, ще кілька — на самописних токенах.

Паролі зберігалися в трьох місцях, права видавалися вручну, а при звільненні співробітника доступ відкликали за чек-лістом, де регулярно щось забували. Підключення нового сервісу займало 3-4 тижні: узгодити схему, написати інтеграцію, протестувати сценарії входу, викотити в прод.

Після: розгорнули Keycloak як єдиний провайдер ідентифікації. Налаштували федерацію з наявним каталогом, щоб не переносити облікові записи, і підключили сервіси за стандартними протоколами — OIDC для веб-застосунків, SAML для legacy-систем, які не вміють інакше.

Ролі та групи винесли в один реєстр, а провіжинінг користувачів зав'язали на каталог: звільнення в HR-системі автоматично закриває доступи в усіх підключених сервісах.

Що змінилося в цифрах

  • Час підключення нового сервісу: з 3-4 тижнів до 2-3 днів — типова інтеграція зводиться до реєстрації клієнта та налаштування редиректів.
  • Звернення до підтримки щодо паролів і доступів: мінус 70% за перший квартал — скидання пароля та видача прав перейшли в самообслуговування.
  • Відкликання доступу при звільненні: з кількох годин ручної роботи до автоматичного спрацювання за хвилини.
  • Кількість місць зберігання паролів: з трьох до одного, з єдиною політикою складності та обов'язковою двофакторною автентифікацією для адміністративних ролей.

Чому це спрацювало

Ключове — не сам продукт, а приведена до єдиного вигляду модель доступу: одне джерело правди щодо користувачів, передбачувані ролі, стандартні протоколи замість самописних рішень.

Далі кожен новий сервіс підключається за відпрацьованим шаблоном, а не винаходить автентифікацію заново. Ми тримаємо конфігурацію в репозиторії та розкочуємо зміни через автоматизацію — стенди відтворюються один в один, включно з налаштуваннями федерації та політик.

Чим відрізняється Keycloak від саморобного входу?

Саморобний вхід майже завжди починається однаково: форма логіна, таблиця користувачів, хеш пароля, сесія в cookie.

Через півроку до цього додаються скидання пароля, підтвердження пошти, блокування після серії невдалих спроб, ролі та права, а ще вхід через корпоративний каталог і другий фактор.

Кожен пункт — окрема задача з крайовими випадками, і саме на них іде основний час, а не на саму форму входу.

Готове рішення закриває цей набір з коробки: протоколи федерації, брокеринг зовнішніх провайдерів, політики паролів, журнал подій входу, тонке налаштування прав за ролями та групами.

Наші інженери розгортають його у відмовостійкій конфігурації, підключають до вашого каталогу користувачів і налаштовують випуск та оновлення токенів. Вам не потрібно проєктувати схему зберігання секретів і продумувати, що станеться при недоступності вузла автентифікації.

Вартість підтримки — головний аргумент. Саморобний вхід непомітно обростає залежностями: зміна бібліотеки, оновлення через уразливість, доопрацювання під новий сервіс. Кожну зміну робить одна людина, і її відхід перетворює систему на чорну скриньку.

У готового рішення є спільнота, документація та передбачуваний цикл оновлень безпеки — оновлення версії не вимагає переписувати логіку входу.

Швидкість змін теж різна. Підключити новий сервіс до готового рішення — це налаштування клієнта та прав, години роботи. У саморобній схемі це правка коду, тести та викладка. Коли бізнес просить єдиний вхід для нового продукту, різниця вимірюється днями проти тижнів.

Безпека — не лише про хеші. Готове рішення роками проходить перевірки спільнотою та пентестами, а саморобний вхід уразливий рівно настільки, наскільки уважним був його автор у момент написання.

Ми не стверджуємо, що власна розробка безглузда — іноді вона виправдана вузькими вимогами. Але якщо задача — надійний вхід без постійного супроводу, готове рішення виграє за сукупною вартістю володіння.

Часті технічні сумніви

Сумніви щодо Keycloak зазвичай зводяться до чотирьох тем: сумісність із наявними застосунками, перенесення користувачів із поточної системи, поведінка під навантаженням та інтеграція з уже працюючими сервісами. Нижче — розбір кожної, з інженерного боку.

Сумісність: чи доведеться переписувати застосунки?

У більшості випадків ні. Keycloak працює за стандартними протоколами федерації ідентичності — OIDC і SAML, тому застосунки, які вже вміють автентифікацію через зовнішнього провайдера, підключаються зміною параметрів підключення, без правок коду.

Для legacy-систем без підтримки цих протоколів налаштовуємо проксі-автентифікацію або адаптер. Окремо перевіряємо сценарії: єдиний вхід, вихід з усіх сесій, оновлення токена, ролі та групи.

Міграція: як перенести наявних користувачів?

Переносимо облікові записи, хеші паролів і зв'язки ролей із поточного сховища — Active Directory, LDAP або власної бази.

Якщо формат хешів сумісний, користувачі продовжують входити зі старими паролями; якщо ні — налаштовуємо примусову зміну при першому вході, щоб не скидати всіх одразу.

Міграцію робимо поетапно: спочатку синхронізація, потім перемикання трафіку, з можливістю відкату на попередню систему до моменту повного переходу.

Навантаження: чи витримає вхід усієї компанії одночасно?

Keycloak горизонтально масштабується: кілька екземплярів за балансувальником, спільна база та розподілений кеш сесій. Ранковий пік, коли сотні співробітників входять протягом кількох хвилин, для такої схеми — штатний режим.

Кластер розносимо по зонах доступності, щоб відмова одного вузла не переривала вхід. Перед введенням в експлуатацію проганяємо навантажувальний тест на реальному профілі входів і фіксуємо запас за кількістю одночасних сесій.

Інтеграція: що з корпоративними сервісами та доступами?

Підключаємо корпоративний каталог як джерело користувачів, налаштовуємо синхронізацію груп і автоматичне відключення доступу при звільненні. Ролі з каталогу проєктуються на застосунки, тому права змінюються в одному місці.

Для зовнішніх підрядників заводимо окремий контур з обмеженим набором сервісів і строком дії облікового запису.

Опишіть ваш ландшафт — які застосунки, каталог і профіль навантаження — повернемося з оцінкою та планом міграції.

Обговоримо ваше завдання ідентифікації

Розгортання Keycloak під ключ починається з розмови, а не зі встановлення.

Нам важливо зрозуміти вашу поточну схему ідентифікації: де зберігаються облікові записи, які застосунки та сервіси потрібно підключити, чи є зовнішні підрядники та партнерські системи, яким потрібен доступ.

Від цього залежить архітектура федерації, вибір протоколів і те, як буде влаштовано відкат, якщо щось піде не за планом.

Опишіть завдання у вільній формі — повернемося з оцінкою та планом робіт. На першому дзвінку уточнимо:

  • які застосунки та сервіси підключаємо і за якими протоколами (SAML, OIDC) вони вміють працювати;
  • звідки мігруємо облікові записи і як переносимо паролі та групи без масового скидання;
  • чи потрібна федерація із зовнішніми каталогами та корпоративними доменами;
  • які вимоги до багатофакторної автентифікації та політик паролів;
  • як влаштовані ролі та права: хто і до чого отримує доступ;
  • чи потрібна інтеграція з наявними системами моніторингу та журналювання;
  • які сценарії відмовостійкості критичні: резервний вузол, відновлення, планові оновлення;
  • хто з боку замовника приймає результат і за якими критеріями.

Після дзвінка ви отримаєте план робіт з етапами, термінами та зонами відповідальності, а також схему цільової архітектури. Ми працюємо віддалено і підключаємося до вашої інфраструктури так, як зручно вашій команді безпеки. Обговоримо завдання — і повернемося з конкретною оцінкою.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1141