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

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 15 Следующий »

SAML, JWD и OpenID — это технологии единого входа, благодаря которым пользователь может автоматически авторизоваться на всех веб-ресурсах компании. Вашему сотруднику или студенту достаточно будет войти в аккаунт на корпоративном сайте, залогиниться в электронную почту или зайти в свой профиль в соцсети — и авторизация в iSpring Learn будет выполнена без ввода логина и пароля.

Для настройки единого входа необходимы:

  • Навыки веб-разработки (PHP, JavaScript, JSON, JWT).

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

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

Единый вход с использованием SAML

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

Важно: стандарт SAML не работает с мобильным приложением.

Чтобы настроить технологию SAML в вашем аккаунте:

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

  2. Отметьте Разрешить вход с использованием SAML.



  3. Заполните форму, указав URL и другие детали вашего IdP (identity provider или поставщик учётных записей). Это тот ресурс, который вы используете для первоначальной авторизации на вашем корпоративном портале.

    Metadata UrlАдрес вашего IdP-сервера, указывающий на файл с мета-данными.
    Sign On UrlПуть к серверному скрипту, который генерирует SAML запросы подтверждения идентификатора для осуществления логина.
    Logout UrlПуть к серверному скрипту, который генерирует SAML запросы подтверждения идентификатора для осуществления выхода.
    Certificate FingerprintСокращённая версия сертификата открытого ключа проверки электронной подписи. Используется для подтверждения подписей запросов, исходящих от поставщика учётных записей (IdP). Подробнее о сертификатах fingerprint здесь.
    Перенаправлять пользователей на страницу логинации, заданную согласно SSO
    Добавить на боковую панель ссылку для перехода на основной сайт
  4. Нажмите Сохранить.

Настройка SAML на сервере

Мы рекомендуем использовать библиотеку https://simplesamlphp.org/~~HEAD=pobj для настройки IdP-сервера для осуществления единого входа через SAML 2.0.

Настройка поставщика услуг

Настройка iSpring Learn производится специалистами на нашей стороне. Просто предоставьте нам следующие данные:

  1. URL-адрес поставщика поставщика учётных записей (IdP).

  2. SSL сертификат (server.crt)

  3. Секретный ключ (server.pem)

  4. certFingerprint для быстрой проверки

Настройка поставщика удостоверений

Для настройки поставщика учётных записей (IdP) для осуществления авторизации выполните следующие действия:

  1. Включите поддержку SAML 2.0 и Shibboleth 1.3 в файле config/config.php

    'enable.saml20-idp' => true,
    'enable.shib13-idp' => true,
  2. Включите модуль авторизации. Вы найдете разные модули в папке modules/. Откройте папку интересующего вас метода авторизации и создайте в ней пустой файл с именем enabled.


  3. Произведите настройку выбранного вами модуля авторизации в файле config/authsources.php


    $config = array(
      'example-userpass' => array(
        'exampleauth:UserPass',
        'student:studentpass' => array(
          'uid' => array('student'),
          'email' => 'student@example.com',
          'eduPersonAffiliation' => array('member', 'student'),
        ),
    
        'employee:employeepass' => array(
          'uid' => array('employee'),
          'email' => 'employee@example.com',
          'eduPersonAffiliation' => array('member', 'employee'),
        ),
      ),
    );
  4. Настройте IdP в файле конфигурации saml20-idp-hosted по примеру.

    'attributes.NameFormat' => 'urn:oasis:names:tc:SAML:2.0:attrname-format:uri',
    'authproc' => array(
       // Convert LDAP names to oids.
       100 => array('class' => 'core:AttributeMap', 'name2oid'),
    ),
  5. Добавьте информацию поставщике услуг в файл metadata/saml20-sp-remote.php.

    $metadata['https://sp.example.org/simplesaml/module.php/saml/sp/metadata.php/default-sp'] = array(
       'AssertionConsumerService' => 'https://sp.example.org/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp',
       'SingleLogoutService'      => 'https://sp.example.org/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp',
    );

Единый вход с использованием JWT

Настройка JWT в аккаунте iSpring Learn достаточно проста. Важно: стандарт JWT не работает с мобильным приложением.

  1. Войдите в свой аккаунт iSpring Learn и введите следующий адрес в браузере:  https://yourcompany.ispringonline.ru/settings/sso/jwt


  2. Отметьте опцию Разрешить вход с использованием JWT.


  3. Заполните поля, а затем нажмите Сохранить

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

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

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

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

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

Единый вход с использованием OpenID

Технология единого входа OpenID — одна из самых популярных. Если этот стандарт включен в вашем аккаунте ISpring Learn, пользователи смогут заходить в портал с помощью Google или Paypal.

Open Id Connect

Терминология:
OpenId Provider (OP) - сервис клиента. Определение из документации: Authorization Server that is capable of Authenticating the End-User and providing Claims to a Relying Party about the Authentication event and the End-User.
Relying Party (RP) - это learn. Client application requiring End-User Authentication and Claims from an OpenID Provider.

Настройка в learn:
* Зайти под администратором и вбить в адресной строке: https://yourcompany.ispringlearn.ru/settings/sso/oidc

  • Получить на OP: Issuer, client_id, client_secret.
  • Добавить в OP, Return Url со страницы настроек learn.
  • Для работы мобильного приложения необходимо добавить на OP слегка измененный Return Url: заменить схему https на islearn. Url будет выглядеть примерно так: islearn://auth.dev.learn.ispring.lan/sso/login/oidc
  • Чтобы пользователи автоматически создавались при попытке залогиниться - надо поставить галочку: "Automatically add new users via OpenID"
  • Мы используем следующие параметры, полученные от OP для создания пользоваелей при логине через openid:
ClaimПоле профиля в learn
preferred_usernameLogin
emailEmail
family_nameLast Name
given_nameFirst Name
  • Можно залогиниться в обход oidc, если добавить GET параметр no_oidc=1
  • Есть поддержка backchannel logout (Единый выход). Нобходимо зарегистрировать backchannel logut url в OP: https://yourcompany.ispringlearn.ru/sso/logout/oidc. Backchannel logout позволяет гладко вписать Learn в инфраструктуру сервисов клиента - если пользователь выходит из любого из сервисов клиента, OP посылает запрос на Learn, и learn выполняет logout указанного пользователя. Официальная документация: https://openid.net/specs/openid-connect-backchannel-1_0.html


Полезные ссылки:
Официальная документация: https://openid.net/specs/openid-connect-core-1_0.html
https://docs.microsoft.com/ru-ru/azure/active-directory/develop/v1-protocols-openid-connect-code



  • Нет меток