Данный механизм описывает процесс авторизации пользователя при переходе между браузером и мобильным приложением в рамках прохождения прокторинга. Механизм рекомендован при использовании мобильного приложения Examus.
| Параметр | Браузер | Мобильное приложение |
|---|---|---|
| Способ авторизации | Cookie | Токен в query |
| Причина | Общая сессия браузера | Изолированное хранилище, отсутствие общего cookie с браузером |
Пошаговое описание
1. Пользователь авторизуется в LMS и переходит к старту тестирования
Пользователь, уже авторизованный в системе заказчика (LMS), инициирует начало прохождения тестирования с прокторингом.
2. LMS генерирует сессию с токеном в query
Система заказчика создаёт сессию прокторинга и формирует ссылку на тестирование, содержащую токен авторизации в query-параметре.
Формат URL:
https://[lms-url]/exam/start?token=[TOKEN_VALUE]&session_id=[SESSION_ID]LMS должна использовать такой формат токена, который она сможет самостоятельно верифицировать при повторном обращении.
3. В браузере запускается прокторинг
Пользователь переходит по ссылке, полученной от LMS. В браузере запускается модуль прокторинга Examus.
4. Прокторинг предлагает перейти в мобильное приложение
Если тестирование требует использования мобильного приложения (например, для дополнительного ракурса камеры), прокторинг отображает приглашение перейти в мобильное приложение. Пользователю передаётся ссылка на запуск приложения (deep link) с параметрами сессии.
5. Пользователь проходит подготовку в мобильном приложении
В мобильном приложении пользователь:
- Проверяет работу камеры и микрофона
- Проходит идентификацию
- Подтверждает готовность к тестированию
6. Приложение открывает страницу LMS с токеном
В момент начала тестирования мобильное приложение открывает страницу LMS, используя URL, полученный на шаге 2. Токен из query-параметра передаётся обратно в LMS.
7. LMS авторизует пользователя
Система заказчика выполняет следующие действия:
- Извлекает токен из query-параметра URL
- Проверяет валидность токена (подпись, срок действия, привязка к сессии)
- Автоматически авторизует пользователя в системе
- Продолжает тестирование
Требования к токену
| Требование | Описание |
|---|---|
| Срок жизни | Ограничен временем прохождения тестирования (рекомендуется TTL = длительность экзамена + 30 минут) |
| Одноразовость | Токен должен быть действителен для однократного использования (опционально, но рекомендуется) |
| Привязка к сессии | Токен должен быть связан с конкретной сессией прокторинга |
| Защита от подделки | Токен должен иметь криптографическую подпись или быть сохранён в БД LMS |
| Передача по HTTPS | URL с токеном должен передаваться только по защищённому соединению |
Пример URL с токеном
JWT-токен (рекомендуется)
https://lms.example.com/exam/start?session_id=b3875623-1234-5678-abcd-ef0123456789&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZXNzaW9uX2lkIjoiYjM4NzU2MjMtMTIzNC01Njc4LWFiY2QtZWYwMTIzNDU2Nzg5IiwidXNlcl9pZCI6IjEyMzQ1IiwiZXhwIjoxNzE5OTk0MTMxfQ.PRzNPayload JWT-токена:
{
"session_id": "b3875623-1234-5678-abcd-ef0123456789",
"user_id": "12345",
"exp": 1719994131
}