Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Для IT-службы абонента

Инструкция по бесшовному переходу

Сценарий

Бесшовный доступ позволяет пользователю портала учебного заведения пользоваться каталогом ЭБС Znanium. 

Переход осуществляется по индивидуальной ссылке, которую необходимо формировать для каждого аутентифицированного пользователя портала.

При первом переходе по ссылке производится привязка пользователя портала к пользователю ЭБС Znanium. При этом будет показана страница-диспетчер, с которой можно перейти на форму регистрации, для пользователей, которые не зарегистрированы на сайте ЭБС, или на форму аутентификации, если пользователь зарегистрирован.

При повторном входе страница-диспетчер не показывается, вместо нее сработает механизм аутентификации и пользователь будет перенаправлен на заранее настроенную для данного учебного заведения страницу каталога.

Параметры для подключения

Для подключения бесшовного доступа к каталогу ЭБС Znanium необходимо определить три параметра:

  • домен (предоставляет учебное заведение. Вводится без протокола и завершающего слеша),
  • секретный ключ (предоставляет It-служба ЭБС. Вводится без кавычек),
  • страница каталога ЭБС для перенаправления пользователей (необязательный параметр, определяется совместно).

Эти параметры настраиваются в базе данных ЭБС.

Параметры ссылки для перехода

После того, как параметры для подключения определены, со стороны портала можно перенаправлять пользователей по ссылке с GET-параметрами.

Адрес страницы на сайте ЭБС - "https://znanium.ru/sso".

Параметры:

  • domain — домен портала, определенный на этапе подключения,
  • username — имя пользователя портала,
  • gmt — время по Гринвичу(!) в формате "YYYYMMDDhhmmss",
  • email — email пользователя,
  • token — токен,
  • lname — фамилия пользователя,
  • fname — имя пользователя,
  • mname — отчество пользователя,
  • group — группа пользователя.

Токен формируется на основе параметров, определенных на этапе подключения, а также имени пользователя и текущего времени по Гринвичу.

Пример кода на PHP:

$secret_key = 'dyunbgtd21htyzg39oiojolf0785df05a';
$domain = "portal.ru"; // домен портала ВУЗа
$username = "student0001"; // имя пользователя
$gmt =  gmdate("YmdHis", time()); // время по Гринвичу!
$email = "student0001@portal.ru";
$lname = "Кузнецов"; // фамилия
$fname = "Иван"; // имя
$mname = "Петрович"; // отчество
$group = "1АСУ2"; // название группы, в которую следует включить пользователя

// можно использовать алгоритм шифрования 'md5', либо 'sha512' в качестве первого параметра
$token = hash('md5', $domain . $username . $gmt . $secret_key);

$link = "https://znanium.ru/sso" 
 ."?domain={$domain}" 
 ."&username={$username}" 
 ."&gmt={$gmt}" 
 ."&token={$token}" //далее - необязательные параметры, которые будут подставлены в форму регистрации/аутентификации:
 ."&email={$email}" 
 ."&lname={$lname}" 
 ."&fname={$fname}" 
 ."&mname={$mname}" 
 ."&group={$group}";

Пример ссылки:

https://znanium.ru/sso?domain=portal.ru&username=student0001 &gmt=20190725125253&email=student0001%40portal.ru&token=986dfad49c81dd3c4fb82c24f48d7a83 &lname=%D0%98%D0%B2%D0%B0%D0%BD&fname=%D0%9F%D0%B5%D1%82%D1%80%D0%BE%D0%B2%D0%B8%D1%87 &mname=%D0%9A%D1%83%D0%B7%D0%BD%D0%B5%D1%86%D0%BE%D0%B2&group=1%D0%90%D0%A1%D0%A32

Переход непосредственно к документу

Если в вашей базе ссылка на документ ЭБС заканчивается на строку /catalog/product/123456 (старая версия ЭБС), то добавьте для перехода параметр &pid=123456, где 123456 - идентификатор документа в ЭБС.

Если же ссылка на книгу заканчивается на строку /catalog/document?id=123456 (новая версия ЭБС), то укажите параметр &did=123456, где 123456 - идентификатор документа в ЭБС.

Авторизация с помощью JWT-токена

Альтернативным вариантом использования бесшовного перехода является использование JWT-токена, который можно сгенерировать и передать в адресной строке в виде параметра 'token'

Для этого необходимо скачать и распаковать в своем приложении PHP-класс из архива: https://znanium.ru/download/api/ZVLib-SSO.zip

Пример кода на PHP:

$jwt = \ZVLib\api\SsoToken::make(
    'domain.ru', // ваше доменное имя
    'dyunbgtd21htyzg39oiojolf0785df05a', // секретный ключ (предоставляет It-служба ЭБС)
    'student0001', // имя пользователя
    'student0001@portal.ru', // email пользователя
    'Кузнецов', // Фамилия
    'Иван', // Имя
    'Петрович', // Отчество (необязательный параметр)
    '1АСУ2', // название группы, в которую следует включить пользователя (необязательный параметр)
    12345, // идентификатор документа в ЭБС (параметр "pid", старая версия ЭБС)
    12345, // идентификатор документа в ЭБС (параметр "did", новая версия ЭБС)
    500 // номер страницы документа, которую необходимо автоматически открыть
);

$link = 'https://znanium.ru/sso?token=' . $jwt;

Пример ссылки:

https://znanium.ru/sso?token=eyJ0eXAi...o6TvPCs=

Переход непосредственно к документу

Для перехода непосредственно к документу, при генерации JWT-токена указываем один из необязательных параметров "pid" или "did" (или null, если параметр не используется), аналогично инструкции выше. Их также можно передать в виде GET-параметров, в этом случае они будут использованы с более высоким приоритетом.

Пример ссылки с переходом к документу:

https://znanium.ru/sso?token=eyJ0eXAi...o6TvPCs=&did=12345&page=500

Контакты IT-отдела

Email - ebs_support@znanium.ru
Форма на сайте - https://znanium.ru/help/feedback