Дерево страниц

iSpring Port позволяет использовать JWT для реализации единого входа.

JWT — это открытый стандарт для передачи пакетов между сторонами в веб-среде. Он используется для шифрования и передачи данных авторизованных пользователей между поставщиком идентификации, вашим корпоративным веб-сайтом, и поставщиком услуг, iSpring Port.

Технология JWT также работает в мобильном приложении.

Требования

  • Доступ к вашему хостингу с правами администратора.

  • Аккаунт iSpring Port с доступом администратора.

Для авторизации пользователя в iSpring Port сообщение JWT должно содержать уникальный идентификатор пользователя, его электронную почту. Пароль не требуется.

JSON Web Token передается в iSpring Port как GET-параметр. Пример ссылки, содержащей JWT-сообщение:
https://yourcompany.ispringlearn.ru/sso/login/jwt?jwt=XXXXXX.YYYYYY.ZZZ

Составляющие части JWT

JWT Токен передается в зашифрованном виде и состоит из трёх частей, разделенных точками:

  1. XXXXXX закодированный заголовок

    Заголовок представляет собой base64-код, который содержит информацию о типе стандарта ("JWT") и об алгоритме шифрования ("HS256").

    {
     "Тип": "JWT",
     "ALG":
    "HS256"}


  2. YYYYYY тело токена

    Тело токена или payload, содержит идентификатор пользователя. Он представлен в формате base64-кода.

    {
      "IAT": 123456789,
      "JTI": f4as6d5f4as6d54fasd6df4,
      "ехр": 123456849,
     "электронная почта":
    "username@yourcompany.com"}
    IAT (Issued At)Содержит время создания токена
    JTI (JWT ID)Это идентификатор маркера, выдается автоматически, закодирован
    ехрЭто время истечения этого токена
    email Это адрес электронной почты пользователя или идентификатор пользователя, который требуется для проверки подлинности.

    +

  3. ZZZ цифровая подпись

    Эта часть содержит ключ для шифрования всего токена (все 3 части):

    HMACSHA256(base64UrlEncode(XXXXXX) + "." + base64UrlEncode(YYYYYY), secret)
    secretЭто ключ шифрования, который используется обеими сторонами для кодирования сообщений.

    +

Настройка параметров JWT для единого входа в LMS

  1. Войдите в аккаунт iSpring Port и перейдите в Сервисы.

  2. Затем в разделе Интеграции кликните Дополнения
  3. В разделе SSO нажмите Подключить.



  4. На странице Настройки SSO нажмите на вкладку JWT.



  5. Заполните поля в разделе Настройки подключения

    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.
    Например, если ввести этот параметр, то пользователь сможет войти, даже если единый вход по какой-то причине не работает.

  6. Укажите соответствие полей iSpring Port с внешними атрибутами JWT.


  7. Нажмите Подключить.


Логика единого входа JWT

Процесс показан на временной UML-диаграме:

Добавление и авторизация пользователей в iSpring Port

Даже если пользователя нет в базе iSpring Port, он автоматически добавится и войдет в систему. 

Еще один пример автоматической авторизации — случай, когда пользователь сразу заходит на сайт iSpring Port без предварительной авторизации на вашем сайте. Если в аккаунте iSpring Port включена опция JWT, пользователь будет автоматически перенаправлен на страницу вашего сайта https://www.yourwebsite.com/login-token/. После ввода логина и пароля на стороне поставщика идентификации пользователь авторизуется на портале iSpring Port.

Примеры реализации на PHP

Вход

Данный cерверный скрипт должен быть размещён на вашем сайте.

Возможные случаи и результаты:

  1. Если пользователь авторизован на вашем сайте, система перенаправляет этого пользователя в LMS iSpring Port.

  2. Если не авторизован, то пользователю предлагается ввести логин и пароль к вашему сайту.

Пример на GitHub: authentication.php

Запрос на выход

Этот скрипт размещается на вашем сайте. В данном примере система проверяет подлинность email пользователя и осуществляет его выход из системы.

Пример на GitHub: logout.php

Авторизация без использования JWT

Если вы включили JWT в аккаунте iSpring Port и по каким-то причинам не можете войти, используя единый вход, введите следующий адрес: https://yourcompany.ispringlearn.ru/login?no_jwt=1

Теперь вы войдете в аккаунт как обычно — с помощью логина и пароля.

  • Нет меток