Перейти к содержимому
Все статьи

Безопасность

Настройка единого входа SAML для LMS с Entra ID, Okta или Google Workspace

Практическое руководство по SSO для LMS через SAML: ключевые термины, шаги настройки для Entra ID, Okta и Google Workspace, чек-лист проверки и типичные ошибки.

Команда Acadenix · · 6 мин чтения


Каждый отдельный вход — это ещё один пароль, который нужно сбрасывать, и ещё одна учётная запись, которую нужно закрывать, когда человек уходит. Единый вход (SSO) по SAML связывает вашу систему управления обучением с поставщиком удостоверений, поэтому люди входят в обучение с рабочей учётной записью, а доступ следует за вашим каталогом. Вот как работает SAML, как проходит настройка с Microsoft Entra ID, Okta или Google Workspace и что нужно проверить перед запуском.

Как работает единый вход по SAML

SAML (Security Assertion Markup Language) 2.0 — открытый стандарт передачи данных о входе между двумя системами, которые доверяют друг другу. LMS никогда не видит пароль человека: она направляет его к вашему поставщику удостоверений, тот проверяет, кто это, включая любую многофакторную аутентификацию, которую вы требуете, и возвращает человека с подписанным подтверждением.

Термин Что он означает
Поставщик удостоверений (IdP, identity provider) Система, которая аутентифицирует ваших людей, например Entra ID, Okta или Google Workspace.
Поставщик услуг (SP, service provider) Приложение, в которое входят люди: ваша LMS.
Утверждение (assertion) Подписанное XML-сообщение от IdP: кто этот человек, когда он вошёл, а также атрибуты, такие как адрес электронной почты и имя.
Entity ID Уникальное имя каждой из сторон; часто выглядит как URL, но это лишь идентификатор. Должно совпадать точно.
ACS URL Assertion Consumer Service URL: адрес LMS, который принимает ответ IdP.
Сертификат подписи IdP подписывает своим закрытым ключом; LMS проверяет подпись по открытому сертификату IdP и отклоняет поддельные или изменённые утверждения.
Метаданные XML-файл, объединяющий entity ID, конечные точки и сертификаты, готовый к импорту.

Утверждения недолговечны и указывают своего адресата (entity ID поставщика услуг). SP отвергает всё, что просрочено или предназначено для другого приложения.

Зачем LMS нужен SSO

  • Никаких лишних паролей. Люди используют свою повседневную учётную запись, а ваши политики многофакторной аутентификации и доступа распространяются и на обучение.
  • Новые сотрудники быстро получают доступ. Назначьте приложение LMS группе, и новые сотрудники в ней смогут войти уже в первый день.
  • Уволившиеся теряют доступ в самом источнике. Отключите человека в каталоге — и он не сможет начать новый сеанс в LMS. SAML управляет входом, а не учётной записью, поэтому архивируйте учётную запись в LMS и в рамках процедуры увольнения.

Создание учётных записей при первом входе (JIT)

При JIT-провижининге (just-in-time) LMS создаёт учётную запись при первом входе человека на основе атрибутов утверждения, поэтому не нужно импортировать список пользователей. Установите ограничения:

  • Ограничьте его собственными доменами электронной почты, чтобы неверно настроенное приложение или гостевая учётная запись не создавали лишних пользователей.
  • Присваивайте новым учётным записям минимальную роль, а права администратора выдавайте осознанно.
  • Сопоставляйте людей по стабильному идентификатору, если ваш IdP может его передавать, потому что адреса электронной почты меняются.

Вход, инициированный SP, и вход, инициированный IdP

  • Инициированный SP: человек открывает LMS, та отправляет запрос аутентификации в IdP, а IdP передаёт свой ответ на ACS URL методом POST. Такой вход работает из закладок и ссылок в письмах и обычно считается более безопасным, потому что ответ соответствует запросу, отправленному LMS.
  • Инициированный IdP: человек нажимает плитку приложения в Microsoft My Apps, на панели Okta или в меню приложений Google, и IdP отправляет на ACS URL ответ, который никто не запрашивал.

Можно предложить оба варианта; проверьте каждый.

Настройка SAML SSO шаг за шагом

Последовательность почти везде одинакова:

  1. Спланируйте охват: кто использует SSO, какие группы получают приложение, какие домены электронной почты разрешены и какой атрибут идентифицирует каждого человека.
  2. Создайте подключение в LMS и запишите его entity ID и ACS URL.
  3. Создайте SAML-приложение у вашего IdP с этими значениями, выберите формат NameID и добавьте атрибуты: адрес электронной почты, имя и фамилию.
  4. Назначьте пользователей или группы; неназначенным людям обычно отказывают во входе.
  5. Передайте LMS данные IdP: URL метаданных, файл метаданных либо entity ID IdP, URL входа и сертификат подписи.
  6. Сопоставьте атрибуты с теми именами, которые ваш IdP действительно передаёт.
  7. Проверьте, затем включите и сообщите людям, что меняется.

Особенности провайдеров

Точные экраны описаны в документации вашего провайдера. Что стоит знать:

  • Microsoft Entra ID: используйте корпоративное приложение вне галереи (non-gallery), а не регистрацию приложения (app registration), которая не поддерживает SAML. Имена claim — это длинные URI, поэтому копируйте их точно. Object ID хорошо подходит в качестве стабильного идентификатора. Для людей без почтового ящика claim с адресом электронной почты может быть пустым; вместо него может подойти имя участника-пользователя (user principal name), если это настоящий адрес.
  • Okta: создайте интеграцию приложения SAML 2.0. Имена операторов атрибутов вы задаёте сами, поэтому они должны в точности совпадать с сопоставлением в LMS, включая регистр. Внутренний идентификатор пользователя Okta годится в качестве стабильного идентификатора.
  • Google Workspace: добавьте пользовательское SAML-приложение и скачайте его файл метаданных. Приложение изначально выключено, поэтому включите его для нужных организационных подразделений или групп. В типичной настройке людей идентифицируют по основному адресу электронной почты, поэтому учтите переименованные и повторно используемые адреса.

Чек-лист проверки

Перед запуском проверьте следующее в приватном окне браузера:

  • Существующий пользователь входит, начав с LMS, и снова — с плитки приложения.
  • Новый пользователь из вашего домена получает учётную запись с нужной ролью.
  • Человеку, не назначенному на приложение, отказывают.
  • Человеку вне разрешённых доменов отказывают.
  • Адрес электронной почты, имя и фамилия приходят корректно.
  • Администратор по-прежнему может войти через запасной путь.

Типичные ошибки

Рассинхронизация часов

Если часы IdP и LMS расходятся больше, чем допускает LMS, корректные утверждения отклоняются как ещё не действующие или уже просроченные. Чаще всего это касается серверов идентификации, развёрнутых на собственной инфраструктуре, поэтому следите за синхронизацией их часов.

Смена сертификата

Сертификаты подписи IdP истекают, и если LMS не доверяет новому, все входы перестают работать сразу. Внесите дату истечения в календарь. Если LMS может доверять двум сертификатам, сначала добавьте новый в LMS, а затем активируйте его у IdP; в противном случае переключите обе стороны одновременно в спокойное время. Сразу же проверьте вход.

Сопоставление атрибутов

Имена атрибутов обычно сопоставляются по точному совпадению: LMS, ожидающая email, не примет Email. Проверьте и идентификатор. Временный (transient) NameID меняется в каждом сеансе, а адрес электронной почты может измениться; постоянный (persistent) NameID или неизменяемый атрибут-идентификатор стабильны. Если людей сопоставляют по адресу электронной почты, архивируйте учётную запись уволившегося сотрудника до того, как его адрес передадут другому человеку.

Несоответствие доменов электронной почты

В каталогах часто есть люди, у которых имя для входа не совпадает с адресом электронной почты, подрядчики из других доменов и сотрудники приобретённых компаний, которые всё ещё используют старые домены. Если LMS ограничивает учётные записи определёнными доменами, им откажут. Составьте список всех доменов до запуска.

Как это делает Acadenix

SAML SSO доступен в тарифе Gold, с пошаговыми руководствами для Entra ID, Okta и Google Workspace.

  • Сначала проверка, потом активация. Вы сохраняете данные своего IdP как черновик, запускаете Test configuration (проверка конфигурации), выполнив вход у своего провайдера, и только потом активируете конфигурацию. Об отсутствующем claim с адресом электронной почты сообщается вместе с названиями claim, которые ваш провайдер всё же передал.
  • Поэтапные изменения. Новый сертификат или тенант вносятся как обновление конфигурации, а текущая конфигурация продолжает работать, пока вы её не активируете.
  • JIT в рамках ваших доменов. Тот, у кого нет учётной записи, получает учётную запись слушателя при первом входе — только если его адрес электронной почты входит в домены регистрации вашей организации; эту функцию можно отключить. Когда человек, у которого уже есть учётная запись Acadenix, впервые входит через ваш IdP, Acadenix отправляет ему по электронной почте одноразовый код для подтверждения связи. Это происходит один раз для каждого человека.
  • Оба пути входа. Люди начинают либо со страницы входа, которая может сразу перенаправить их к вашему IdP или показать кнопку, либо с плитки в My Apps, Okta или Google.
  • Одно подключение — одна организация. Подключение SAML не передаётся организациям, находящимся ниже его владельца, что важно для групп с множеством площадок.
  • Запасной путь. Если ваш IdP недоступен, администраторы всё равно могут войти с помощью одноразового кода из письма, и этот путь нельзя отключить.

Помимо SAML, люди могут входить с помощью кода из письма или аккаунта Google, Microsoft или LinkedIn. Подробнее — на нашей странице о безопасности.

Главное

  • Обменяйтесь entity ID, ACS URL и метаданными, затем сопоставьте стабильный идентификатор и подтверждённый адрес электронной почты.
  • Ограничьте учётные записи, создаваемые по JIT, своими доменами и минимальной ролью.
  • До запуска проверьте оба сценария входа, отказы и запасной путь.
  • Внесите дату истечения сертификата в календарь и архивируйте учётные записи уволившихся сотрудников в LMS.

Хотите подключить Acadenix к своему поставщику удостоверений? Сравните тарифы на нашей странице с тарифами или свяжитесь с нами, чтобы обсудить вашу схему.

Часто задаваемые вопросы

Доступ администратора к вашему поставщику удостоверений и к LMS. LMS выдаёт вам свои entity ID и ACS URL, поставщик удостоверений — свои метаданные (entity ID, URL входа и сертификат подписи), а вы договариваетесь, какие атрибуты идентифицируют каждого человека.
Да, если LMS поддерживает JIT-провижининг (just-in-time), при котором учётная запись создаётся при первом входе человека. В Acadenix это учётные записи слушателей, и они создаются только для людей, чей адрес электронной почты входит в домены регистрации вашей организации.
Люди, которые входят через SSO, не смогут войти, пока он не заработает, поэтому предусмотрите для администраторов запасной путь. В Acadenix администраторы всегда могут войти с помощью одноразового кода, отправленного по электронной почте, и этот путь нельзя отключить.
Вход, инициированный SP, когда люди начинают с LMS, обычно считается более безопасным, потому что ответ привязан к запросу, отправленному LMS. Вход, инициированный IdP, — с плитки приложения — удобен, и можно предложить оба варианта.

Читайте также

SCORM

SCORM 1.2 или SCORM 2004: какой формат публиковать?

SCORM 1.2 и 2004 для авторов курсов: статусы прохождения и успешности, данные возобновления, последовательность, совместимость и простая схема выбора формата.

· 5 мин чтения

Обязательное обучение

Автоматизация обязательного обучения: сроки прохождения, сроки действия и переаттестация

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

· 7 мин чтения

Готовы избавить обучение от рутины?

Запросите пробный доступ, загрузите свои SCORM-курсы и оцените Acadenix на собственном контенте.

Войти