Документерра: руководство пользователя

Вход в систему через стороннее программное обеспечение

Документерра позволяет создавать документацию, защищенную паролем. Для доступа к этому типу контента читатель должен иметь специальную учетную запись авторизованного читателя.

При интеграции Документерры с веб-приложением или настольным приложением вы, возможно, захотите упростить процесс для своих читателей и избежать создания учетной записи авторизованного читателя для каждого пользователя. Скорее всего, вы захотите, чтобы все пользователи вашего приложения будут иметь доступ к документации автоматически, а все остальные посетители не будут иметь такого доступа вообще. Такой подход можно реализовать с помощью Технологии единого входа или с помощью токенов авторизации. Рассмотрим последний вариант — одноразовые токены для входа в систему.

Итак, задача состоит в том, чтобы каким-то образом аутентифицировать пользователя вашего приложения на портале документации, не запрашивая у него логин и пароль. Тот факт, что пользователь имеет доступ к пользовательскому интерфейсу вашего приложения, считается достаточным для получения доступа к документации. Это означает, что ваше приложение должно "сообщить" порталу документации, что посетитель авторизован для доступа к руководствам пользователя. Технически это означает, что ваше приложение должно получить токен авторизации с вашего сайта документации и убедиться, что пользователи имеют этот токен в каждой ссылке документации, на которую они нажимают в вашем пользовательском интерфейсе.

Рассмотрим этот подход к авторизации пошагово, чтобы понять, что происходит, когда посетитель пытается получить доступ к защищенному паролем руководству пользователя.

Процесс авторизации

Схема процесса авторизации

  • Читатель переходит по ссылке на документацию.
  • Поскольку страница находится внутри руководства с ограниченным доступом, система перенаправляет пользователя на страницу входа в систему Документерра.
  • Если ссылка содержит токен (а это не так, если ссылкой просто поделился коллега), происходит обычная авторизация по токену, и пользователь перенаправляется на страницу.
  • Если ссылка не имеет токена (что бывает, когда пользователь делится ссылкой на страницу Документерры), пользовательский скрипт проверяет наличие в ссылке специального параметра, указывающего на то, что данный пользователь является автором. Если пользователь является автором, то ничего не происходит, и пользователь остается на странице входа в систему, чтобы нормально продолжить процесс входа.
  • Если ссылка не имеет специального параметра "тип пользователя", то страница входа автоматически перенаправляет читателя на специальную страницу в вашем SaaS-приложении (программное обеспечение как услуга), передавая URL целевой страницы в качестве параметра URL стороннему программному обеспечению.
  • Затем на этой странице проверяется авторизация пользователя в стороннем программном обеспечении.
  • Если пользователь авторизован в стороннем программном обеспечении, страница выполняет вызов API для получения токена входа для текущего пользователя.
  • Стороннее программное обеспечение создает URL-адрес целевой страницы с включенным в качестве параметра токеном входа и перенаправляет пользователя на этот URL-адрес.
  • Документерра проверяет предоставленный токен.
    • Если токен действителен, система регистрирует пользователя как авторизованного читателя, и на экране отображается данная страница.
    • Если токен недействителен (истек, неверен) или если пользователь не имеет доступа к запрашиваемой странице в соответствии с конфигурацией прав доступа, Документерра отображает страницу "В доступе отказано" (Access Denied).

Необходимые изменения

Данный рабочий процесс потребует двух изменений: на странице входа на портал Документерры и в приложении.

Страница входа в систему Документерра

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

  • Обработка события загрузки в окне;
  • Проверка того, является ли текущая страница страницей входа в систему;
  • Проверка того, есть ли в URL специальный параметр, позволяющий избежать автопереадресации (чтобы ваши авторы не входили в систему через стороннее приложение) — вы можете назвать этот параметр так, как вам удобно;
  • Если параметр отсутствует, то необходимо извлечь из URL значение параметра «ReturnUrl» (это будет URL-адрес страницы в кодировке, к которой пытался обратиться читатель);
  • Выполните перенаправление на основе скрипта на стороннее программное обеспечение и передайте на страницу значение параметра ReturnUrl.

Страница авторизации в вашем приложении

Реализуйте параметр URL, который будет принимать URL целевой страницы, передаваемый странице входа в систему при перенаправлении. Реализуйте логику, которая будет выполнять две операции:

  • Выполните вызов API для получения токена входа в систему от Документерры;
  • Выполните перенаправление на страницу, URL которой был передан на страницу стороннего ПО в качестве параметра, и включите в URL-токен входа в систему.