Для большинства корпоративных систем разумный выбор такой: единый вход через OpenID Connect для новых приложений, SAML для готовых продуктов, где он есть, шлюз перед системами без внешнего входа, а второй фактор в виде одноразовых кодов в приложении для всех сотрудников и аппаратных ключей для администраторов. Пароль при этом остаётся только у каталога пользователей. Но выбор зависит от того, что умеют ваши системы, а не от моды.
Выбирать нужно не один продукт, а четыре решения: где живут пользователи, как система подключается к входу, чем подтверждается личность и что происходит, когда вход недоступен. Услуга описана на странице «SSO и MFA для корпоративных систем», здесь только логика выбора.
Четыре решения, из которых состоит выбор
Спор «Keycloak или что-то другое» обычно идёт не про то. Продукт выбирается последним, когда ясны четыре вещи:
| Решение | Вопрос | От чего зависит ответ |
|---|---|---|
| Источник пользователей | Где хранится список сотрудников и их групп | Есть ли каталог, кто ведёт его, сколько систем читают из него |
| Способ подключения | Как конкретная система проверяет, кто вошёл | Что умеет система: OpenID Connect, SAML, LDAP или только свой пароль |
| Второй фактор | Чем подтверждается личность помимо пароля | Кто входит, откуда, с чем работает, есть ли корпоративные телефоны |
| Поведение при сбое | Что работает, если сервер входа недоступен | Требования к доступности и наличие запасного пути |
Пока эти ответы не записаны, любое сравнение продуктов превращается в сравнение интерфейсов. Именно поэтому работа начинается с обследования списка систем, а не с установки сервера.
Протокол подключения: OpenID Connect, SAML, LDAP или шлюз
Протокол определяется не вашим вкусом, а тем, что поддерживает система. Для одной компании обычно нужны два-три способа сразу.
| Способ | Когда выбирать | Плюсы | Минусы |
|---|---|---|---|
| OpenID Connect | Новые веб-приложения, кабинеты, внутренние сервисы, API | Современный, удобен для веб-приложений и мобильных клиентов, прост в настройке у разработчика | Старые системы его не поддерживают |
| SAML | Готовые корпоративные продукты, в которых он есть | Широко поддерживается в коробочных системах | Громоздкий формат; подпись держится на сертификате, срок которого легко пропустить |
| LDAP и Kerberos | Системы на доменных учётных записях, старые приложения | Работает почти везде, где есть вход по паролю | Приложение видит пароль; второй фактор встраивается плохо |
| Шлюз перед системой | Самописные утилиты и системы без внешнего входа | Систему не нужно менять | Сервис должен быть недоступен напрямую; нужна проверка, что обход закрыт |
Практическое правило: если система умеет OpenID Connect, берите его; если нет, но умеет SAML, берите SAML; если умеет только LDAP, подключайте через LDAP, но второй фактор тогда реализуйте на шлюзе перед ней или в самом каталоге. Шлюз остаётся запасным вариантом для того, что ничего не умеет. Для старой 1С и самописных утилит нужно отдельное решение, и его выбирают после разбора конкретной системы.
Где хранить пользователей: каталог или сервер входа
Единый вход не заменяет каталог пользователей, он стоит над ним. Вариантов обычно три:
- Каталог уже есть и в порядке. Оставляем его источником истины, а сервер входа читает записи и группы из него. Это самый дешёвый путь.
- Каталога нет или он устарел. Разворачиваем новый: FreeIPA, ALD Pro или другой каталог на отечественной ОС. Это отдельная работа, описанная на странице замены Active Directory.
- Пользователи живут в кадровой системе и в нескольких базах. Нужно решить, какая из них главная, и автоматизировать приём, перевод и увольнение. Без этого единый вход только перенесёт беспорядок.
Сервер входа (Keycloak и аналоги) нужен, когда системы умеют OpenID Connect или SAML, а каталог — только LDAP и Kerberos. Он переводит одно в другое, хранит сессии и подключает второй фактор. Если системы немногочисленны и все читают LDAP, отдельный сервер входа может оказаться лишним: проверьте, что без него вы получите единый вход и второй фактор, а не только общий каталог.
Второй фактор: какой способ подойдёт какой группе
Универсального способа нет: у сотрудников, администраторов и внешних клиентов разные риски и разные возможности. Ниже сравнение по тому, что выбирают на практике.
| Способ | Подходит | Риски и ограничения | Что нужно решить |
|---|---|---|---|
| Одноразовые коды в приложении | Сотрудники, подрядчики | Потеря телефона; поддельная страница входа может выманить код | Процедура восстановления при смене телефона |
| Подтверждение в приложении | Сотрудники с корпоративными телефонами | Усталость от запросов, подтверждение «на автомате» | Сопоставление числа на экране, ограничение числа запросов |
| Аппаратный ключ | Администраторы, финансы, доступ к персональным данным | Нужны выдача, учёт и запасной ключ | Кто выдаёт, что делать при потере |
| Код по SMS | Внешние клиенты, где ничего устанавливать нельзя | Перехват и перевыпуск номера, зависимость от оператора | Для кого допустим, а для кого нет |
| Сертификат на рабочем месте | Доверенные рабочие станции в контуре | Привязка к устройству, а не к человеку | Как отзывается при потере устройства |
Типичная схема для компании: одноразовые коды или подтверждение в приложении для всех, аппаратный ключ для администраторов и ролей с деньгами, SMS только для внешних пользователей, которым ничего иного не предложить. Для каждого способа заранее нужна процедура восстановления: самая слабая точка второго фактора не сам фактор, а то, как человек возвращает доступ после потери телефона.
Что делать с системами, которые единый вход не умеют
В каждой компании находится несколько таких систем: старая 1С, самописная утилита подрядчика, оборудование с веб-панелью. Выбор по каждой делается отдельно.
- Шлюз перед системой. Подходит, если систему можно закрыть от прямых обращений. Проверьте, что прямой адрес действительно не отвечает.
- Подключение к каталогу по LDAP. Подходит, если система сама проверяет пароль в каталоге. Второй фактор для неё придётся делать другим путём.
- Доработка системы. Подходит, если исходники ваши, а система важна. Это отдельный проект.
- Оставить локальный вход под присмотром. Допустимо для малозначимых систем, если записи в списке, у каждой есть владелец, а пароли лежат в хранилище.
- Заменить систему. Если она ещё и плохо защищена, а менять её вы собирались, единый вход может стать одним из доводов.
Самое важное: каждая оставленная на локальных паролях система вносится в перечень с владельцем и сроком пересмотра. Иначе при увольнении вы отключите человека в каталоге, а он продолжит работать там, где каталога не видят.
Права после входа: SSO не решает, что можно
Единый вход отвечает на вопрос «кто это». Что человеку можно делать, решают роли, и это отдельная работа.
- Роли из каталога. Группа в каталоге превращается в роль в системе. Тогда перевод сотрудника меняет права везде сразу.
- Исключения запрещены без записи. Права вне ролей выдаются только с владельцем и сроком.
- Роли проверяет сервер. Если система прячет кнопки в интерфейсе, а адрес остаётся доступен, защиты нет. Об этом же говорит и первая категория в статье «OWASP Top 10 простыми словами».
- Роли и атрибуты. Если доступ зависит от региона, договора или склада, одних ролей мало, и часть правил проверяет приложение по атрибутам объекта.
Для внешних пользователей (клиентов, дилеров) права считаются по организации и договору, а не по должности: см. личный кабинет для партнёров.
Что будет, когда вход перестанет работать
Единый вход упрощает жизнь, пока он работает. Когда он падает, останавливаются все системы сразу, поэтому сбой нужно продумать заранее.
| Сценарий | Что происходит | Как защищаемся |
|---|---|---|
| Остановился сервер входа | Новые входы невозможны, действующие сессии живут до конца срока | Пара серверов, копия настроек, проверенное восстановление |
| Истёк сертификат подписи | Вход встаёт у всех систем, подключённых по SAML | Календарь сертификатов, оповещение за несколько недель до конца срока |
| Недоступен каталог | Сервер входа не может проверить пароль | Реплика каталога, ограниченный запасной путь для администраторов |
| Потерян телефон или ключ | Человек не может подтвердить вход | Коды восстановления, запасной ключ, процедура выдачи с проверкой личности |
| Нужно срочно отключить человека | Сессии в системах живут до своего срока | Короткие сессии для критичных систем, отзыв токенов, проверка на тестовой записи |
Для администраторов нужен аварийный путь, записанный в регламент: учётная запись с длинным паролем в сейфе или аппаратный ключ. Его использование пишется в журнал и разбирается. Если ваши договоры обещают доступность 24/7, это обещание лежит на вашей схеме резервирования и дежурстве, а не на единовременной настройке; наши пакеты сопровождения круглосуточное дежурство не включают.
Ошибки внедрения, которые повторяются
- Сначала продукт, потом список систем. Через месяц выясняется, что половина приложений его протоколы не поддерживает.
- Включили второй фактор всем сразу. Поддержка тонет в обращениях, процедура восстановления не готова. Начинайте с администраторов и доступа извне.
- Каталог не почищен. Дубли и общие учётные записи переезжают в новую схему вместе с правами.
- Нет теста отзыва доступа. Мало кто отключает тестового сотрудника до запуска и измеряет, сколько он ещё работает в каждой системе, а именно это показывает реальную скорость отзыва.
- Сертификаты и ключи без владельца. Срок истекает, и вход останавливается в рабочее утро.
- Сервер входа в единственном экземпляре. Одна авария гасит все системы.
Что проверять после внедрения, собрано в услуге аудита управления доступом: сверка учётных записей, прав, обходов входа и времени отзыва.
Что делаем мы и с чего начать
Начинаем с обследования: 200 000 ₽ и 2–3 недели за одну-две системы, 350 000 ₽ и 3–4 недели, если нужно подключить несколько систем и каталогов. На выходе список систем со способами подключения, схема единого входа, матрица ролей и вилка бюджета. Сумма вычитается из первого этапа, если продолжаете с нами, а документом можно пользоваться и без нас. Дальше при необходимости пилот на одну-две системы и вывод в эксплуатацию волнами, и на любой ступени можно остановиться.
Всё работает на ваших серверах, исходники и настройки лежат в вашем репозитории с первого коммита. Мы не имеем лицензии ФСТЭК, не проводим аттестацию и не дежурим круглосуточно, а проверка входа и доступа идёт на вашем стенде. Описание услуги — на странице «SSO и MFA для корпоративных систем», все цены и сроки — на странице «Тарифы».
Частые вопросы
Что выбрать для корпоративных систем: SSO или MFA?
Они решают разные задачи и обычно нужны вместе. SSO сокращает число паролей и позволяет отзывать доступ в одном месте, MFA защищает от украденного пароля. Если ресурсов хватает на одно, начните с MFA для администраторов и доступа извне, затем подключайте единый вход.
OpenID Connect или SAML?
Для новых веб-приложений и внутренних сервисов обычно берут OpenID Connect, он проще для разработчика. SAML выбирают, когда готовый продукт поддерживает его из коробки, а OpenID Connect нет. Решается по каждой системе отдельно.
Нужен ли отдельный сервер входа, если у нас есть каталог?
Нужен, если ваши системы умеют OpenID Connect или SAML, а каталог только LDAP и Kerberos: сервер входа переводит одно в другое и добавляет второй фактор. Если все системы читают LDAP напрямую и второй фактор нужен не везде, обойтись можно, но единого входа с сессиями вы не получите.
Какой второй фактор надёжнее?
Аппаратный ключ устойчив к поддельным страницам входа, коды по SMS слабее всего. Но надёжность зависит и от процедуры восстановления: если её можно обойти звонком в поддержку, фактор слабее, чем кажется. Для администраторов берите ключи, для остальных коды в приложении.
Как подключить старую 1С или самописную систему?
Выбор зависит от системы: шлюз перед ней, проверка пароля в каталоге по LDAP или оставить локальный вход под присмотром. Решаем после разбора конкретной системы, в договоре фиксируем выбранный способ и ограничения.
Можно ли обойтись без внешних сервисов?
Да. Сервер входа и каталог ставятся на ваших серверах, внешние сервисы авторизации не нужны. Если облачный каталог у вас уже есть, подключаемся к нему и записываем, что будет со входом, если он недоступен.
Как проверить, что доступ отзывается сразу?
Отключить тестового сотрудника и проверить по каждой системе, сколько он ещё работает. Результат записывается как время от отключения до отказа. Тест повторяют после подключения новых систем и смены настроек сессий.
Сколько стоит внедрение?
Обследование стоит 200 000 ₽ за одну-две системы или 350 000 ₽ за несколько, оно вычитается из первого этапа. Пилот — 150 000–400 000 ₽ или 400 000–1 200 000 ₽, вывод в эксплуатацию — от 1 500 000 ₽ этапами по 300 000–700 000 ₽, сопровождение — от 20 000 ₽ в месяц.