Подключение к облачным хранилищам в FastReport VCL

11.09.2021

Как авторизовать FastReport VCL для подключения к облачным хранилищам

Начиная с первого релиза FastReport VCL 6 появилась возможность подключатся к Dropbox, Google Drive, Box, OneDrive через специальные компоненты – «Транспорты». Чтобы упростить использование функционала транспортов начиная с FastReport VCL 2021.3 мы полностью переделали авторизацию на OAuth2.0 с использованием браузера по умолчанию и доработали диалоги подключения.

Важно! Для работы протокола https необходимы следующие библиотеки Open SSL: libssl-3.dll и libcrypto-3.dll их можно найти в директории с главным демо приложением. Библиотеки необходимо скопировать в папку с приложением или системную директорию.

Содержание:

Какие преимущества данного подхода?

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

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

Стандартный диалог подключения к облачному хранилищу

Поля “Client ID” и “Client Secret” предназначены для ввода авторизационных данных, которые генерируется из панели настроек облачного хранилища. Кнопки справа от авторизационных полей позволяют скрыть или показать введенную информацию. Для быстрого доступа к странице настроек в браузере можно воспользоваться кнопкой с вопросом на авторизационном диалоге (Open configuration page). Чтобы сохранить полученный авторизационный токен, нужно установить флажок “Save authorization token”.

Токен авторизации при этом сохраняется в реестре или конфигурационном файле в зашифрованном виде.

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

Добавление транспорта в приложение и настройка

Настройка транспорта

  1. Перейдите в палитру компонентов в среде разработки Embarcadero Rad Studio и раскройте вкладку “FastReport VCL Internet transports”.
  2. Выберите нужный компонент и добавьте его на форму приложения.

Можно использовать контекстное меню на компоненте. Это установит подключение прямо из среды разработки. Нажимаем на подменю “Edit connection”.

 

Вызов подменю

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

Если этот порт уже занят или планируется использовать данный порт в дальнейшем, FastReport VCL позволяет изменить порт через настройку свойства ListenerPort.

Настройка порта

Далее будем предполагать использование порта 9898 по умолчанию.

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

  • Dropbox.
  • Google Drive.
  • Box.
  • OneDrive.

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

Подключение к Dropbox

Когда пользователь хочет открыть или сохранить в файл используя транспорт, то он увидит стандартный диалог авторизации (если он не авторизовался ранее).

Стандартный диалог авторизации

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

Настройка приложения Dropbox

На данной странице необходимо выбрать API, уровень доступа и указать имя приложения.

Настройка приложения Dropbox

Далее нужно нажать на кнопку “Create app”. Наше приложение успешно создано. Сразу же произойдёт переход на страницу настроек приложения. Нам нужно прокрутить страницу до полей “App key” и “App secret”.

Настройка приложения Dropbox

Скопируйте поля “App key”  и “App secret” в авторизационный диалог FastReport VCL.

Авторизационный диалог

Вернитесь на страницу настроек в браузере и в поле “Redirect URIs” укажите “http://localhost:9898” и нажмите “Add”.

Обратите внимание, что порт должен соответствовать порту, указанному в свойстве ListenerPort у компонента транспорта.

Имя порта

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

Настройка авторизационного токена

Теперь необходимо настроить разрешения доступа для приложения. Переходим на вкладку “Permissions” и устанавливаем флажки напротив необходимых прав доступа (чтение и запись файлов, чтения списка директорий и т.д.). 

Разрешение доступа для приложения

После установки нужно нажать кнопку “Submit”.

Возвращаемся в FastReport VCL и отмечаем галочки “Save authorization token” и “Remember properties” если нужно сохранить авторизационные данные. Нажимаем кнопку “Ok”. Откроется окно браузера, выбранного по умолчанию. Если пользователь не авторизован – необходимо выполнить авторизацию. После этого появится окно о предупреждении подключения к приложению.

Предупреждающее окно

Нажимаем “Continue” и должен появиться следующий диалог.

Подтверждение доступа

Нажимаем кнопку “Allow”. Появиться предложение закрыть данное окно браузера.

Сообщение в браузере

Наше приложение подключено, можно закрыть браузер.

Стандартный просмотр файлов в FastReport VCL

На этом этапе можно передавать файлы в облачное хранилище.

Подключение к Google Drive

Стандартный диалог авторизации ничем не отличается от описанного ранее в подключении к Dropbox. Перейдём сразу к странице с авторизацией, на которой нужно войти в аккаунт Google Drive.

Если данный аккаунт ранее не добавлял проекты для работы с Google API, то в качестве первого шага необходимо создать новый проект.

Подключение к Google Drive

Нажмите на кнопку “Create project”.

Подключение к Google Drive

Введите имя проекта и нажмите “Create”.

Подключение к Google Drive

Воспользуйтесь кнопкой “Select project” для выбора созданного проекта.

Подключение к Google Drive

Выберете созданный ранее проект и нажмите “Open”.

Переход в ранее созданный проект

Перейдите на вкладку “OAuth consent screen”. Нам нужно выбрать тип пользователей, который может использовать облачное хранилище: внутренние использование с доступом только пользователям организации или для всех Google аккаунтов. Поле выбора нажмите кнопку “Create”.

Заполнение e-mail

Далее, необходимо заполнить имя приложения и контактный e-mail. Нажмите “Save and continue”.

Настройка области действий

Этот шаг позволяет настроить область действия, для Google Drive его можно пропустить. Кликните по “Save and continue”.

Следующий шаг позволяет настроить доступ к приложению для определенною группы пользователей. Если вы собираетесь сразу опубликовать доступ к приложению - этот шаг можно пропустить. Нажмите “Save and continue”.

Приложение создано, перейдите во вкладку “Back to dashboard”.

Вкладка “Back to dashboard”

Перейдите на вкладку “OAuth consent screen” и нажмите “PUBLISH APP” чтобы открыть доступ к данному приложению. Откройте следующую ссылку и включите Google Drive API для созданного проекта нажав кнопку “Enable”.

Google Drive API

Теперь необходимо создать ключи авторизации, перейдите на вкладку “Credentials”.

Создание ключей авторизации

Нажмите на “Create Credentials” и выберете “OAuth client ID”.

“OAuth client ID”

Необходимо выбрать тип приложения (в нашем случае Desktop App).

Тип приложения - Desktop App

Введите любое имя для подключения и нажмите “Create”. Клиент для авторизации будет создан.

Создание клиента

Скопируйте поля “Client ID” и “Client Secret” в соответствующие поля ввода диалога авторизации FastReport VCL.

Заполнение данными

Нажмите “Ok”. Должно открыться новое окно в браузере, который установлен по умолчанию. На экране высветится предложение выбрать аккаунт для авторизации.

Окно авторизации

Далее мы увидим диалог, что приложение не проверено Google. Нажмите “Advanced” и Go to Имя приложения (unsafe).

Сообщение от Google

Появится еще один диалог с вопросом предоставления доступа приложению, выберите права доступа и нажмите “Continue”.

Сообщение от Google

Окно браузера можно закрыть.

При удачном подключении вы увидите стандартный браузер файлов FastReport VCL.

Подключение прошло успешно

Подключение к Box

Стандартный диалог авторизации такой же, как и в прошлом подключении. Перейдём непосредственно к странице с авторизацией, на которой нужно войти в аккаунт Box.

Авторизация на Box

Нажмите кнопку “Create New App”.

Создание нового приложения

Выберите тип приложения. В нашем случае будет достаточно “Custom App”. Далее необходимо указать метод авторизации и имя приложения.

Выбор “OAuth 2.0”

Выберите “OAuth 2.0” и введите имя приложения. Нажмите “Create App”, а после прокрутите следующую страницу с конфигурацией приложения до поля “Client ID”.

Заполнение данными

Скопируйте значения полей “Client ID” и “Client Secret” в соответствующие поля диалога авторизации FastReport VCL.

Заполнение данными

Вернитесь на страницу с настройками в браузере.

Настройка из браузера

Заполните поле “OAuth 2.0 Redirect URI”, укажите http://localhost:9898.

Обратите внимание, что порт должен соответствовать порту, указанному в свойстве ListenerPort у компонента транспорта.

Если требуются права на запись в хранилище файлов – установите флажок напротив “Write all files and folders stored in Box”.

Установка разрешений для приложения

Нажмите кнопку “Save Changes”.

Вернитесь в диалог авторизации FastReport VCL и нажмите “Ok”.

Авторизация на Box

Откроется новое окно с предложением войти в ваш аккаунт. После авторизации нажмите “Grant access to Box”.

При удачном подключении вы увидите стандартный браузер файлов FastReport VCL.

Удачное подключение данных

Подключение к OneDrive

Первый шаг не изменился. Его можно посмотреть у поключения к Dropbox. Настроим вход в аккаунт Microsoft.

Вход в аккаунт Microsoft

Прежде всего, нужно создать новое приложение. Нажмите кнопку “Register an application”. На следующем этапе необходимо ввести имя приложения и Redirect URI (внизу страницы).

Настройка аккаунта

Нажмите кнопку “Register”. Наше приложение будет успешно создано.

Значение поля “Client ID”

Скопируйте значение поля “Client ID” в диалог авторизации FastReport VCL. Откройте раздел “Certificates & secrets”.

Переход в следующий раздел

Нажмите “New client secret”.

Переход в следующий раздел

Введите описание и выберите срок действия кода. Нажмите “Add”.

Завершение настройки

Скопируйте значение “Value” в диалог авторизации FastReport VCL.

Заполнение данными

Нажмите “Ok”. Откроется новое окно в браузере с предложением войти в ваш аккаунт.

Подтверждение входа в аккаунт

После авторизации нажмите “Yes”.

Удачное подключение данных

На этом настройка подключения успешно окончена. Теперь вы знаете как подключаться к каждому из облачных дисков в FastReport VCL.

20 ноября 2024

Локализация и смена языков в FastReport VCL

FastReport VCL поддерживает 40 языков для локализации интерфейса и позволяет изменять язык на лету через меню или код, без перекомпиляции.
1 ноября 2024

Новые возможности редактора отчетов FastReport VCL

Рассматриваем новые возможности редактора отчетов: выносные линии, подсветка пересекающихся объектов, обновлённые деревья отчетов и данных.
30 октября 2024

Использование стилей при создании отчетов в FastReport VCL

В статье подробно рассматривается одна из новых возможностей FastReport VCL – применение стилей и страниц стилей.