В отличие от 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:
- Преподаватель заходит на страницу входа ИСПУМ и вводит рабочий 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 пользователя и
примерное время попытки входа.