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

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

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

Информация

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

...

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

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

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


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

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

    HTML
    {
      "IAT": 123456789,
      "JTI": f4as6d5f4as6d54fasd6df4,
      "ехр": 123456849,
     "электронная почта":
    "username@yourcompany.com"}


    IAT (Issued At)Содержит время создания токена
    JTI (JWT ID)Это идентификатор маркера, выдается автоматически, закодирован
    ехрЭто время истечения этого токена
    email Это адрес электронной почты пользователя или идентификатор пользователя, который требуется для проверки подлинности.

    +

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

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

    HTML
    HMACSHA256(base64UrlEncode(XXXXXX) + "." + base64UrlEncode(YYYYYY), secret)


    secretЭто ключ шифрования, который используется обеими сторонами для кодирования сообщений.


Чтобы настроить JWT в аккаунте iSpring Learn:

  1. Войдите в свой аккаунт iSpring Learn и и введите в браузере адреспуть к настройкам в строке браузера:  https://yourcompany.ispringlearn.ru/settings/sso/jwt.

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



    Encryption algorithmАлгоритм, который используется для подписи/шифрования.
    Return URLАдрес страницы, на которую попадет пользователь, не прошедший проверку подлинности.
    Security keyКриптографический ключ и секретная часть JWT токена.
    Identity provider URLАдрес страницы сайта, на которой располагается скрипт для генерации JWT токенов.
    Logout URLАдрес страницы сайта, на которой располагается скрипт для генерации JWT токенов для выхода пользователя.

    Мы рекомендуем использовать протокол HTTPS вместо HTTP для повышения безопасности.

    Информация

    Примечание

    Можно использовать GET параметр no_jwt=1 для доступа к форме логинации в СДО в обход SSO: https://yourcompany.ispringlearn.ru/login?no_jwt=1.
    Например, если ввести этот параметр, то пользователь сможет войти, даже если единый вход по какой-то причине не работает.


  3. Если нужно, укажите соответствие полей iSpring Learn с внешними атрибутами JWT.



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


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

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

Image Added

На этапе проверки пользователя, если его нет в базе iSpring Learn, он будет автоматически добавлен и залогинен.

Единственным препятствием автоматического добавления нового пользователя может быть только лимит пользователей для текущего плана СДО.

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

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

Аутентификация (вход)

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

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

  2. Если не авторизован, то пользователю предлагается ввести логин и пароль к вашему сайту. В случае успеха пользователь будет залогинен в СДО iSpring Learn.

Бесплатный пример на GitHub: authentication.php

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

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

Бесплатный пример на GitHub: logout.php

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

...