...
JWT — это открытый стандарт для передачи пакетов между сторонами в веб-среде. Он используется для шифрования и передачи данных авторизованных пользователей между поставщиком идентификации (ваш корпоративный , вашим корпоративным веб-сайт) сайтом, и поставщиком услуг (, iSpring Learn).
Информация |
---|
Технология JWT также работает в мобильном приложении. |
...
Доступ к вашему хостингу с правами администратора.
Аккаунт iSpring Learn с доступом администратора.
Для авторизации пользователя на в iSpring Learn , сообщение JWT должно содержать уникальный идентификатор пользователя, являющийся электронной почтойего электронную почту. Пароль не требуется.
JSON Web Token передается в iSpring Learn как GET-параметр. Например, полная ссылка, содержащая Пример ссылки, содержащей JWT-сообщение будет выглядеть так:
https://yourcompany.ispringlearn.ru/sso/login/jwt?jwt=XXXXXX.YYYYYY.ZZZ
...
XXXXXX закодированный заголовок
Заголовок представляет собой base64-код, который содержит информацию о типе стандарта ("JWT") и об алгоритме шифрования ("HS256").HTMLcode { "Тип": "JWT", "ALG": "HS256"}
YYYYYY тело токена
Тело токена , также называемое “полезный груз” или payload, содержит идентификатор пользователя. Он также представлен в формате base64-кода.HTMLcode { "IAT": 123456789, "JTI": f4as6d5f4as6d54fasd6df4, "ехр": 123456849, "электронная почта": "username@yourcompany.com"}
Это идентификаторIAT (Issued At) Содержит время создания токена JTI (JWT ID)
Это времяИдентификатор маркера, выдается автоматически, закодирован ехр
Это адресВремя истечения этого токена email Адрес электронной почты пользователя или идентификатор пользователя, который требуется для проверки подлинности. +
ZZZ цифровая подпись
Эта часть содержит ключ для шифрования всего токена (все 3 части) и выглядит следующим образом:HTMLcode HMACSHA256(base64UrlEncode(XXXXXX) + "." + base64UrlEncode(YYYYYY), secret)
secret Это ключ шифрования, который используется обеими сторонами для кодирования сообщений. +
...
Настройка параметров JWT для единого входа в LMS
- Войдите в свой аккаунт iSpring Learn и введите в браузере адрес: https://yourcompany.ispringlearn.ru/settings/sso/jwtперейдите в Сервисы.
- Затем в разделе Интеграции кликните Дополнения.
- В разделе SSO нажмите Подключить.
- На странице Настройки SSO нажмите на вкладку JWT.
Заполните поля в разделе Настройки подключения.
Encryption algorithm Алгоритм, который используется для подписи/шифрования. Return URL Адрес страницы, на которую попадет пользователь, не прошедший проверку подлинности. Security key Криптографический ключ и секретная часть JWT токена. Identity provider URL Адрес страницы сайта, на которой располагается скрипт для генерации JWT токенов. Logout URL Адрес страницы сайта, на которой располагается скрипт для генерации JWT токенов для выхода пользователя.. Мы рекомендуем использовать протокол HTTPS вместо HTTP для повышения безопасности.
Информация Примечание
Можно использовать GET параметр no_jwt=1 для доступа к форме логинации в LMS в обход SSO: https://yourcompany.ispringlearn.ru/login?no_jwt=1.
Например, если ввести этот параметр, то пользователь сможет войти, даже если единый вход по какой-то причине не работает.- Если нужно, укажите
Укажите
соответствие полей iSpring Learn с внешними атрибутами JWT.
- Нажмите Подключить.
Логика единого входа JWT
Процесс показан на временной UML-диаграме:
Добавление и авторизация пользователей в iSpring Learn
Даже если пользователя нет в базе iSpring Learn, он автоматически добавится и войдет в систему. Единственным препятствием автоматического добавления нового пользователя может быть только лимит вашего тарифного плана.
Еще один пример автоматической авторизации — случай, когда пользователь сразу заходит на сайт iSpring Learn без предварительной авторизации на вашем сайте. Если в аккаунте iSpring Learn включена опция JWT, пользователь будет автоматически перенаправлен на соответствующую страницу вашего сайта (поставщика идентификации) сайта https://www.yourwebsite.com/login-token/. После ввода логина и пароля на стороне поставщика идентификации пользователь авторизуется на портале iSpring Learn.
Примеры реализации на PHP
Вход
Данный cерверный скрипт должен быть размещён на вашем сайте.
Возможные случаи и результаты:
Если пользователь авторизован на вашем сайте, система перенаправляет этого пользователя в iSpring Learn.
Если не авторизован, то пользователю предлагается ввести логин и пароль к вашему сайту.
Пример на GitHub: authentication.php
Запрос на выход
Этот скрипт размещается на вашем сайте. В данном примере система проверяет подлинность email пользователя и осуществляет его выход из системы.
Авторизация без использования JWT
Если вы включили JWT в вашем аккаунте iSpring Learn и по каким-то причинам не можете войти, используя единый вход, введите следующий адрес: https://yourcompany.ispringlearn.ru/login?no_jwt=1.
Теперь вы войдете в аккаунт как обычно — с помощью логина и пароля.