Важно
Перевод - это работа сообщества : ссылка:Вы можете присоединиться. Эта страница в настоящее время переводится |прогресс перевода|.
21.1. Обзор системы аутентификации

Рис. 21.1 Анатомия системы аутентификации
21.1.1. База данных аутентификации
Система аутентификации хранит конфигурации аутентификации в файле базы данных SQLite, расположенном, по умолчанию, по адресу <profile directory>/qgis-auth.db
.
Эту базу данных аутентификации можно перемещать между установками QGIS, не затрагивая другие текущие пользовательские настройки QGIS, поскольку она полностью отделена от обычных настроек QGIS. Идентификатор конфигурации (случайная 7-символьная буквенно-цифровая строка) генерируется при первоначальном сохранении конфигурации в базе данных. Он представляет конфигурацию, что позволяет хранить идентификатор в текстовых компонентах приложения (например, в файлах проектов, подключаемых модулей или настроек) без раскрытия связанных с ним учетных данных.
Примечание
Родительский каталог qgis-auth.db можно задать с помощью следующей переменной окружения, QGIS_AUTH_DB_DIR_PATH
, или установить в командной строке во время запуска с помощью опции --authdbdirectory
.
21.1.2. Пользовательские базы данных аутентификации
QGIS можно настроить на использование пользовательской базы данных аутентификации вместо упомянутой выше базы данных SQLite по умолчанию: можно использовать любую базу данных, поддерживаемую модулем Qt SQL (например, PostgreSQL, MySQL и т. д.), при условии, что соответствующий драйвер Qt SQL доступен в системе.
Это может быть полезно в сценариях, когда пользователь хочет использовать одну и ту же базу данных аутентификации между несколькими установками QGIS, или когда пользователь хочет использовать базу данных аутентификации, отличную от базы данных SQLite по умолчанию, или когда централизованная база данных аутентификации используется на сервере QGIS.
Единственный способ настроить пользовательскую базу данных аутентификации - установить переменную окружения QGIS_AUTH_DB_URI
в URI соединения, URI имеет вид driver://username:password@hostname:port/database?options
.
- Где:
driver
- это имя используемого драйвера Qt SQL, например,QPSQL
для PostgreSQL,QMYSQL
для MySQL и т.д.имя пользователя
- имя пользователя, которое будет использоваться для подключения к базе данныхpassword
- пароль для подключения к базе данных.hostname
- имя хоста сервера базы данныхport
- порт сервера базы данныхdatabase
- это имя базы данных, которую нужно использоватьопции
- это параметры, которые нужно передать драйверу, например,sslmode=require
для PostgreSQL
Примечание
Схему можно указать в опциях URI, например, QPSQL://username:password@hostname:port/database?schema=schema_name
.
База данных должна существовать до запуска QGIS, а пользователь должен обладать необходимыми правами для подключения к базе данных и создания необходимых таблиц, если они не существуют.
Предупреждение
Пароль в URI хранится открытым текстом в переменной окружения, поэтому для подключения к базе данных рекомендуется использовать пользователя без пароля или пользователя с ограниченными правами.
Предупреждение
Любая база данных, не основанная на SQLite, считается доступной только для чтения (при необходимости это можно изменить с помощью плагинов Python).
Это расширенная функция, предназначенная для того, чтобы позволить QGIS использовать одну или несколько пользовательских баз данных аутентификации или даже пользовательские реализации Python для хранения учетных данных.
Система также рассчитана на использование нескольких баз данных аутентификации, но в настоящее время не существует пользовательского интерфейса для управления несколькими хранилищами учетных данных, поэтому их использование требует ручной настройки и управления, как правило, с помощью плагина на Python.
21.1.3. Мастер-пароль
Для хранения или доступа к конфиденциальной информации в базе данных пользователь должен определить мастер-пароль. Новый мастер-пароль запрашивается и проверяется при первоначальном сохранении любых зашифрованных данных в базе данных. При обращении к конфиденциальной информации пользователю предлагается ввести мастер-пароль. Пароль сохраняется в кэше до конца сессии (до выхода из приложения), если пользователь вручную не выберет действие, очищающее его кэш-значение. Некоторые случаи использования системы аутентификации не требуют ввода главного пароля, например при выборе существующей конфигурации аутентификации или применении конфигурации к конфигурации сервера (например, при добавлении уровня WMS).
Вы можете выбрать сохранение пароля в кошельке/брелоке
вашего компьютера.

Рис. 21.2 Введите новый мастер-пароль
Примечание
Путь к файлу, содержащему мастер-пароль, можно задать с помощью следующей переменной окружения, QGIS_AUTH_PASSWORD_FILE
.
21.1.3.1. Управление мастер-паролем
После установки мастер-пароль можно сбросить; перед сбросом потребуется ввести текущий мастер-пароль. Во время этого процесса есть возможность создать полную резервную копию текущей базы данных.

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

Рис. 21.4 Запрос пароля после трех неудачных попыток
21.1.4. Конфигурации аутентификации
Вы можете управлять конфигурациями аутентификации из Конфигурации во вкладке Аутентификация диалога QGIS Опции ( ).

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

Рис. 21.6 Добавление конфигурации из редактора конфигурации
Те же операции по управлению конфигурацией аутентификации (добавление, редактирование и удаление) можно выполнять при настройке определенного служебного соединения, например, при настройке служебного соединения OWS. Для этого в селекторе конфигурации есть кнопки действий для полного управления конфигурациями, найденными в базе данных аутентификации. В этом случае нет необходимости переходить на вкладку конфигурации во вкладке аутентификация опций QGIS, если только вам не требуется более полное управление конфигурацией.

Рис. 21.7 Диалог подключения к WMS, показывающий кнопки настройки аутентификации Добавить, Редактировать и Удалить
При создании или редактировании конфигурации аутентификации требуется указать имя, метод аутентификации и любую другую информацию, которую требует метод аутентификации (см. подробнее о доступных типах аутентификации в Методы аутентификации).
21.1.5. Методы аутентификации
Доступные аутентификации предоставляются подключаемыми модулями C++, точно так же, как в QGIS поддерживаются подключаемые модули поставщиков данных. Метод аутентификации, который можно выбрать, зависит от доступа, необходимого для ресурса/провайдера, например HTTP(S) или базы данных, и от того, есть ли поддержка как в коде QGIS, так и в подключаемом модуле. Таким образом, некоторые подключаемые модули методов аутентификации могут быть неприменимы везде, где отображается селектор конфигурации аутентификации. Список доступных подключаемых модулей метода аутентификации и совместимых с ними ресурсов/провайдеров можно получить, перейдя в Аутентификация нажать кнопку Установленные плагины.

Рис. 21.8 Список плагинов доступных методов
Для новых методов аутентификации можно создавать плагины, которые не требуют перекомпиляции QGIS. Поскольку в настоящее время поддержка подключаемых модулей осуществляется только на C++, QGIS необходимо будет перезапустить, чтобы новый подключаемый модуль стал доступен пользователю. Убедитесь, что ваш подключаемый модуль скомпилирован для той же целевой версии QGIS, если вы собираетесь добавить его к существующей целевой установке.

Рис. 21.9 Конфигурации базовой HTTP-аутентификации

Рис. 21.10 Конфигурации аутентификации ESRI Token

Рис. 21.11 Конфигурации аутентификации OAuth2

Рис. 21.12 Конфигурации аутентификации путей PKI

Рис. 21.13 Конфигурации аутентификации PKI PKCS#12 пути к файлам

Рис. 21.14 Сохраненные конфигурации аутентификации личности
Примечание
URL ресурса в настоящее время является нереализованной функцией, которая в конечном итоге позволит автоматически выбирать определенную конфигурацию при подключении к ресурсам по заданному URL.
21.1.6. Мастер-пароль и утилиты настройки авторизации
В меню Опции (Аутентификация есть несколько утилит для управления базой данных и конфигурациями аутентификации:
) на вкладке
Рис. 21.15 Меню Утилиты
Ввод мастер-пароля: открывает диалог ввода мастер-пароля, независимо от выполнения любой команды базы данных аутентификации
Очистить кэшированный мастер-пароль: отменяет мастер-пароль, если он был установлен
Сбросить мастер-пароль: открывает диалог для изменения мастер-пароля (текущий пароль должен быть известен) и, по желанию, резервного копирования текущей базы данных
Очистить кэш доступа к сетевой аутентификации: очищает кэш аутентификации для всех соединений
Автоматически очищать кэш доступа к сетевой аутентификации при ошибках SSL: в кэше соединений хранятся все данные аутентификации для соединений, в том числе при неудачном подключении. Если вы измените конфигурацию аутентификации или центры сертификации, вам следует очистить кэш аутентификации или перезапустить QGIS. Если этот параметр отмечен, кэш аутентификации будет автоматически очищаться каждый раз, когда возникает ошибка SSL и вы выбираете прервать соединение
Интегрировать мастер-пароль с кошельком/брелоком: добавляет мастер-пароль в ваш личный кошелек/брелок
Сохранить/обновить мастер-пароль в кошельке/брелоке: обновляет измененный мастер-пароль в кошельке/брелоке
Удалить мастер-пароль из бумажника/брелока: удаляет мастер-пароль из бумажника/брелока
Включить журнал отладки помощника пароля: включает инструмент отладки, который будет содержать всю информацию о методах аутентификации в журнале
Очистить кэшированные конфигурации аутентификации: очищает внутренний кэш поиска конфигураций, используемый для ускорения сетевых подключений. Это не очищает кэш основного менеджера доступа к сети QGIS, что требует перезапуска QGIS.
Удалить все конфигурации аутентификации: очищает базу данных от всех записей конфигурации, не удаляя другие сохраненные записи.
Стереть базу данных аутентификации: запланировано создание резервной копии текущей базы данных и полное перестроение структуры таблиц базы данных. Действия запланированы на более позднее время, чтобы другие операции, например загрузка проекта, не прерывали работу и не вызывали ошибок из-за временного отсутствия базы данных.
Рис. 21.16 Меню проверки стирания БД
21.1.7. Использование конфигураций аутентификации
Обычно конфигурация аутентификации выбирается в диалоге настройки сетевых сервисов (например, WMS). Однако виджет селектора может быть встроен в любое место, где требуется аутентификация, или в неосновную функциональность, например в сторонние плагины PyQGIS или C++.
При использовании селектора Нет аутентификации отображается во всплывающем меню управления, когда ничего не выбрано, когда нет конфигураций для выбора или когда ранее назначенная конфигурация больше не может быть найдена в базе данных. Поля Тип и Id доступны только для чтения и содержат описание метода аутентификации и идентификатор конфигурации соответственно.

Рис. 21.17 Селектор конфигурации аутентификации без аутентификации

Рис. 21.18 Селектор конфигурации аутентификации с выбранной конфигурацией
21.1.8. Связующие элементы Python
Все классы и публичные функции имеют привязки к sip, кроме QgsAuthCrypto
, поскольку управление хешированием мастер-пароля и шифрованием базы данных auth должно осуществляться главным приложением, а не через Python.
После ввода мастер-пароля API открывается для доступа к конфигурациям аутентификации в базе данных аутентификации, аналогично тому, как работает Firefox. Однако не было определено никакой стены против доступа к PyQGIS. Это может привести к проблемам, когда пользователь загружает/устанавливает вредоносный плагин PyQGIS или отдельное приложение, которое получает доступ к учетным данным аутентификации.