Вход в систему через стороннее программное обеспечение
Документерра позволяет создавать документацию, защищенную паролем. Для доступа к этому типу контента читатель должен иметь специальную учетную запись авторизованного читателя.
При интеграции Документерры с веб-приложением или настольным приложением вы, возможно, захотите упростить процесс для своих читателей и избежать создания учетной записи авторизованного читателя для каждого пользователя. Скорее всего, вы захотите, чтобы все пользователи вашего приложения будут иметь доступ к документации автоматически, а все остальные посетители не будут иметь такого доступа вообще. Такой подход можно реализовать с помощью Технологии единого входа или с помощью токенов авторизации. Рассмотрим последний вариант — одноразовые токены для входа в систему.
Итак, задача состоит в том, чтобы каким-то образом аутентифицировать пользователя вашего приложения на портале документации, не запрашивая у него логин и пароль. Тот факт, что пользователь имеет доступ к пользовательскому интерфейсу вашего приложения, считается достаточным для получения доступа к документации. Это означает, что ваше приложение должно "сообщить" порталу документации, что посетитель авторизован для доступа к руководствам пользователя. Технически это означает, что ваше приложение должно получить токен авторизации с вашего сайта документации и убедиться, что пользователи имеют этот токен в каждой ссылке документации, на которую они нажимают в вашем пользовательском интерфейсе.
Рассмотрим этот подход к авторизации пошагово, чтобы понять, что происходит, когда посетитель пытается получить доступ к защищенному паролем руководству пользователя.
Процесс авторизации
- Читатель переходит по ссылке на документацию.
- Поскольку страница находится внутри руководства с ограниченным доступом, система перенаправляет пользователя на страницу входа в систему Документерра.
- Если ссылка содержит токен (а это не так, если ссылкой просто поделился коллега), происходит обычная авторизация по токену, и пользователь перенаправляется на страницу.
- Если ссылка не имеет токена (что бывает, когда пользователь делится ссылкой на страницу Документерры), пользовательский скрипт проверяет наличие в ссылке специального параметра, указывающего на то, что данный пользователь является автором. Если пользователь является автором, то ничего не происходит, и пользователь остается на странице входа в систему, чтобы нормально продолжить процесс входа.
- Если ссылка не имеет специального параметра "тип пользователя", то страница входа автоматически перенаправляет читателя на специальную страницу в вашем SaaS-приложении (программное обеспечение как услуга), передавая URL целевой страницы в качестве параметра URL стороннему программному обеспечению.
- Затем на этой странице проверяется авторизация пользователя в стороннем программном обеспечении.
- Если пользователь авторизован в стороннем программном обеспечении, страница выполняет вызов API для получения токена входа для текущего пользователя.
- Стороннее программное обеспечение создает URL-адрес целевой страницы с включенным в качестве параметра токеном входа и перенаправляет пользователя на этот URL-адрес.
- Документерра проверяет предоставленный токен.
- Если токен действителен, система регистрирует пользователя как авторизованного читателя, и на экране отображается данная страница.
- Если токен недействителен (истек, неверен) или если пользователь не имеет доступа к запрашиваемой странице в соответствии с конфигурацией прав доступа, Документерра отображает страницу "В доступе отказано" (Access Denied).
Необходимые изменения
Данный рабочий процесс потребует двух изменений: на странице входа на портал Документерры и в приложении.
Страница входа в систему Документерра
В брендинг-скрипте портала в системе Документерра необходимо реализовать функцию, которая будет выполнять следующие действия:
- Обработка события загрузки в окне;
- Проверка того, является ли текущая страница страницей входа в систему;
- Проверка того, есть ли в URL специальный параметр, позволяющий избежать автопереадресации (чтобы ваши авторы не входили в систему через стороннее приложение) — вы можете назвать этот параметр так, как вам удобно;
- Если параметр отсутствует, то необходимо извлечь из URL значение параметра «ReturnUrl» (это будет URL-адрес страницы в кодировке, к которой пытался обратиться читатель);
- Выполните перенаправление на основе скрипта на стороннее программное обеспечение и передайте на страницу значение параметра ReturnUrl.
Страница авторизации в вашем приложении
Реализуйте параметр URL, который будет принимать URL целевой страницы, передаваемый странице входа в систему при перенаправлении. Реализуйте логику, которая будет выполнять две операции:
- Выполните вызов API для получения токена входа в систему от Документерры;
- Выполните перенаправление на страницу, URL которой был передан на страницу стороннего ПО в качестве параметра, и включите в URL-токен входа в систему.