ИСПУМ
Разделы документации

Настройка входа по SAML

Применимо к версии 1.5.0+

В отличие от LTI, подключение SAML SSO не выполняется самостоятельно в интерфейсе ИСПУМ — на данный момент это делает команда ИСПУМ вместе с вашим ИТ-специалистом, обменявшись несколькими значениями. Искать настройки SSO в своём личном кабинете не нужно — такого раздела для организации пока нет. Эта статья описывает, что происходит на каждом шаге и что от вас понадобится.

Кто что делает

Подключение — это обмен значениями в обе стороны между вашим провайдером идентификации (IdP — Active Directory FS, Keycloak, Azure AD, ALD Pro и т. п.) и ИСПУМ, координируемый вручную:

  1. Вы обращаетесь в ИСПУМ (через форму обратной связи или имеющийся контакт) с запросом на подключение SSO.
  2. ИСПУМ передаёт вам три значения для регистрации ИСПУМ как Service Provider в вашей системе SSO — см. ниже.
  3. Ваш ИТ-специалист регистрирует ИСПУМ в IdP и передаёт обратно в ИСПУМ ещё три-пять значений — тоже см. ниже.
  4. ИСПУМ вносит их в конфигурацию организации и включает SSO.
  5. Проводится тестовый вход — вживую, с реальным или тестовым аккаунтом.

Что вы получите от ИСПУМ

Три значения, специфичные для вашей организации (у каждого университета — свой набор, даже несмотря на то что ИСПУМ использует один сертификат 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:

  1. Преподаватель заходит на страницу входа ИСПУМ и вводит рабочий email.
  2. Если домен почты совпадает с зарегистрированным доменом организации, ИСПУМ сразу перенаправляет на IdP — поле пароля не появляется.
  3. Преподаватель входит в IdP как обычно (там, где он привык).
  4. IdP отправляет подписанный ответ обратно в ИСПУМ; при первом входе учётная запись преподавателя создаётся автоматически — регистрироваться отдельно не нужно.
  5. Преподаватель попадает на дашборд.

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