Настройка входа по SAML
Применимо к версии 1.5.0+
В отличие от LTI, подключение SAML SSO не выполняется самостоятельно в интерфейсе ИСПУМ — на данный момент это делает команда ИСПУМ вместе с вашим ИТ-специалистом, обменявшись несколькими значениями. Искать настройки SSO в своём личном кабинете не нужно — такого раздела для организации пока нет. Эта статья описывает, что происходит на каждом шаге и что от вас понадобится.
Кто что делает
Подключение — это обмен значениями в обе стороны между вашим провайдером идентификации (IdP — Active Directory FS, Keycloak, Azure AD, ALD Pro и т. п.) и ИСПУМ, координируемый вручную:
- Вы обращаетесь в ИСПУМ (через форму обратной связи или имеющийся контакт) с запросом на подключение SSO.
- ИСПУМ передаёт вам три значения для регистрации ИСПУМ как Service Provider в вашей системе SSO — см. ниже.
- Ваш ИТ-специалист регистрирует ИСПУМ в IdP и передаёт обратно в ИСПУМ ещё три-пять значений — тоже см. ниже.
- ИСПУМ вносит их в конфигурацию организации и включает SSO.
- Проводится тестовый вход — вживую, с реальным или тестовым аккаунтом.
Что вы получите от ИСПУМ
Три значения, специфичные для вашей организации (у каждого университета — свой набор, даже несмотря на то что ИСПУМ использует один сертификат SP для всех):
- SP Entity ID
- ACS URL (Assertion Consumer Service — куда IdP отправляет ответ после входа)
- SP Metadata URL — XML-документ с метаданными Service Provider; можно открыть напрямую и скормить IdP как источник метаданных, если он это поддерживает — тогда часть полей IdP заполнит автоматически.
Metadata URL общедоступен и отдаёт корректный XML даже до завершения настройки — так что его можно открыть заранее, не дожидаясь остальных шагов.
Что нужно передать в ИСПУМ
От вашего IdP нужны три обязательных значения:
- IdP Entity ID
- IdP SSO URL — адрес, на который ИСПУМ отправляет пользователя для входа
- Сертификат IdP (X.509, в формате PEM) — им ИСПУМ проверяет подпись ответов от вашего IdP
И два опциональных, если у вас нестандартные имена атрибутов в assertion:
- Атрибут эл. почты (по умолчанию
email) - Атрибут имени (по умолчанию
displayName)
Если ваш IdP использует другое имя для этих атрибутов, ИСПУМ также
попробует несколько распространённых альтернатив автоматически (mail,
emailAddress, cn, name и стандартные URI-атрибуты ADFS/AD) — но
понадёжнее прямо сообщить точное имя атрибута, если оно известно.
Отдельно сообщите домен корпоративной почты ваших преподавателей
(например mgu.ru) — по нему ИСПУМ на странице входа определяет, что
пользователю с такой почтой нужно показать вход через SSO, а не пароль.
Требования к ответу IdP
- Ответ и assertion от IdP должны быть подписаны — ИСПУМ отклонит неподписанный ответ.
- Формат NameID не принципиален — ИСПУМ не требует конкретный формат
(
unspecifiedилиemailAddress— оба работают). - Алгоритм подписи — SHA-256.
Вход только через SSO (опционально)
По умолчанию SSO работает вместе с обычным входом по паролю — ничего не отключается автоматически. Если вы хотите запретить вход по паролю и разрешить только SSO для вашей организации, сообщите об этом отдельно — это отдельная настройка, включаемая по запросу.
Мы включаем её только после того, как SSO полностью настроен (Entity ID, адрес входа и сертификат IdP заданы) и вы подтвердили, что вход через SSO работает. Если сертификат или адрес IdP окажутся неверными, при запрете пароля войти будет нельзя совсем — поэтому сначала проверка, потом запрет.
Первый вход
После того как обе стороны настроены и ИСПУМ включил SSO:
- Преподаватель заходит на страницу входа ИСПУМ и вводит рабочий email.
- Если домен почты совпадает с зарегистрированным доменом организации, ИСПУМ сразу перенаправляет на IdP — поле пароля не появляется.
- Преподаватель входит в IdP как обычно (там, где он привык).
- IdP отправляет подписанный ответ обратно в ИСПУМ; при первом входе учётная запись преподавателя создаётся автоматически — регистрироваться отдельно не нужно.
- Преподаватель попадает на дашборд.
Если у преподавателя уже был пароль от ИСПУМ (например, до подключения SSO), вход через SSO подключается к тому же аккаунту по email — второй учётной записи не создаётся.
Проверка настройки
Отдельной кнопки «Проверить соединение», как в разделе LTI, для SAML нет. Единственный самостоятельный шаг — открыть SP Metadata URL и убедиться, что он отдаёт XML, а не ошибку. Полноценная проверка — это тестовый вход, который проводит команда ИСПУМ вместе с вами после того, как обе стороны обменялись значениями.
Типовые ошибки при входе
| Что видит пользователь / что произошло | Причина | Что проверить |
|---|---|---|
| «SSO не настроен для этой организации» | В ИСПУМ ещё не заполнены все три обязательных поля IdP, либо SSO не включён | Убедитесь, что все переданные значения дошли до ИСПУМ и SSO включён |
| «Не удалось проверить ответ SSO» | Подпись ответа IdP не прошла проверку | Чаще всего — не тот сертификат передан в ИСПУМ (например, обновился при ротации в IdP), или расхождение времени на сервере IdP |
| «Ответ SSO не содержит данных пользователя» | IdP вернул технически валидный, но пустой ответ | Проверьте настройки маппинга атрибутов в самом IdP для этого приложения |
| «В ответе SSO не найден адрес эл. почты. Обратитесь к администратору» | Ни настроенный, ни один из стандартных атрибутов email не найден в assertion | Проверьте точное имя атрибута email в вашем IdP и сообщите его в ИСПУМ, если оно нестандартное |
| «Аккаунт деактивирован» | Учётная запись преподавателя в ИСПУМ отключена администратором | Обычная деактивация — не связана с настройкой SSO |
| «Эта организация требует вход только через SSO. Используйте единый вход» | Включён режим «только SSO», а пользователь пытается войти по паролю | Ожидаемое поведение при включённом запрете пароля — направьте пользователя на вход через SSO |
Если вход не проходит, а причина не очевидна из списка — напишите через форму обратной связи, укажите email пользователя и примерное время попытки входа.