Начиная с первого релиза 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 у выбранного компонента транспорта. Данное свойство доступно только из кода. Программист может менять шифрование для сохранения авторизационных данных основываясь на политике безопасности, используемой внутри компании.
Можно использовать контекстное меню на компоненте. Это установит подключение прямо из среды разработки. Нажимаем на подменю “Edit connection”.
По умолчанию транспорты реагируют только на ответ авторизации от браузера используя порт 9898.
Если этот порт уже занят или планируется использовать данный порт в дальнейшем, FastReport VCL позволяет изменить порт через настройку свойства ListenerPort.
Далее будем предполагать использование порта 9898 по умолчанию.
Теперь рассмотрим этапы подключения для каждого из следующих транспортов:
Важно! Пользователю не нужно выполнять все нижеперечисленные действия каждый раз, для авторизации. Данная настройка выполняется только один раз администратором облачных сервисов. После выполнения всех действий полученные авторизационные данные могут быть использованы другими пользователями.
Когда пользователь хочет открыть или сохранить в файл используя транспорт, то он увидит стандартный диалог авторизации (если он не авторизовался ранее).
Для перехода на страницу настроек подключения нажмите на знак вопроса справа вверху окна авторизации. После этого будет открыт браузер по умолчанию со страницей настроек приложения Dropbox. Если пользователь не авторизован в Dropbox, то откроется страница с авторизацией, на которой нужно будет войти в аккаунт Dropbox.
На данной странице необходимо выбрать API, уровень доступа и указать имя приложения.
Далее нужно нажать на кнопку “Create app”. Наше приложение успешно создано. Сразу же произойдёт переход на страницу настроек приложения. Нам нужно прокрутить страницу до полей “App key” и “App secret”.
Скопируйте поля “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”. Появиться предложение закрыть данное окно браузера.
Наше приложение подключено, можно закрыть браузер.
На этом этапе можно передавать файлы в облачное хранилище.
Стандартный диалог авторизации ничем не отличается от описанного ранее в подключении к Dropbox. Перейдём сразу к странице с авторизацией, на которой нужно войти в аккаунт Google Drive.
Если данный аккаунт ранее не добавлял проекты для работы с Google API, то в качестве первого шага необходимо создать новый проект.
Нажмите на кнопку “Create project”.
Введите имя проекта и нажмите “Create”.
Воспользуйтесь кнопкой “Select project” для выбора созданного проекта.
Выберете созданный ранее проект и нажмите “Open”.
Перейдите на вкладку “OAuth consent screen”. Нам нужно выбрать тип пользователей, который может использовать облачное хранилище: внутренние использование с доступом только пользователям организации или для всех Google аккаунтов. Поле выбора нажмите кнопку “Create”.
Далее, необходимо заполнить имя приложения и контактный e-mail. Нажмите “Save and continue”.
Этот шаг позволяет настроить область действия, для Google Drive его можно пропустить. Кликните по “Save and continue”.
Следующий шаг позволяет настроить доступ к приложению для определенною группы пользователей. Если вы собираетесь сразу опубликовать доступ к приложению - этот шаг можно пропустить. Нажмите “Save and continue”.
Приложение создано, перейдите во вкладку “Back to dashboard”.
Перейдите на вкладку “OAuth consent screen” и нажмите “PUBLISH APP” чтобы открыть доступ к данному приложению. Откройте следующую ссылку и включите Google Drive API для созданного проекта нажав кнопку “Enable”.
Теперь необходимо создать ключи авторизации, перейдите на вкладку “Credentials”.
Нажмите на “Create Credentials” и выберете “OAuth client ID”.
Необходимо выбрать тип приложения (в нашем случае Desktop App).
Введите любое имя для подключения и нажмите “Create”. Клиент для авторизации будет создан.
Скопируйте поля “Client ID” и “Client Secret” в соответствующие поля ввода диалога авторизации FastReport VCL.
Нажмите “Ok”. Должно открыться новое окно в браузере, который установлен по умолчанию. На экране высветится предложение выбрать аккаунт для авторизации.
Далее мы увидим диалог, что приложение не проверено Google. Нажмите “Advanced” и Go to Имя приложения (unsafe).
Появится еще один диалог с вопросом предоставления доступа приложению, выберите права доступа и нажмите “Continue”.
Окно браузера можно закрыть.
При удачном подключении вы увидите стандартный браузер файлов FastReport VCL.
Стандартный диалог авторизации такой же, как и в прошлом подключении. Перейдём непосредственно к странице с авторизацией, на которой нужно войти в аккаунт Box.
Нажмите кнопку “Create New App”.
Выберите тип приложения. В нашем случае будет достаточно “Custom App”. Далее необходимо указать метод авторизации и имя приложения.
Выберите “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”.
Откроется новое окно с предложением войти в ваш аккаунт. После авторизации нажмите “Grant access to Box”.
При удачном подключении вы увидите стандартный браузер файлов FastReport VCL.
Первый шаг не изменился. Его можно посмотреть у поключения к Dropbox. Настроим вход в аккаунт Microsoft.
Прежде всего, нужно создать новое приложение. Нажмите кнопку “Register an application”. На следующем этапе необходимо ввести имя приложения и Redirect URI (внизу страницы).
Нажмите кнопку “Register”. Наше приложение будет успешно создано.
Скопируйте значение поля “Client ID” в диалог авторизации FastReport VCL. Откройте раздел “Certificates & secrets”.
Нажмите “New client secret”.
Введите описание и выберите срок действия кода. Нажмите “Add”.
Скопируйте значение “Value” в диалог авторизации FastReport VCL.
Нажмите “Ok”. Откроется новое окно в браузере с предложением войти в ваш аккаунт.
После авторизации нажмите “Yes”.
На этом настройка подключения успешно окончена. Теперь вы знаете как подключаться к каждому из облачных дисков в FastReport VCL.