Важно
Перевод - это работа сообщества : ссылка:Вы можете присоединиться. Эта страница в настоящее время переводится |прогресс перевода|.
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 Редактор конфигураций
To create a new authentication configuration:
Provide a Name and optional Resource URL
A seven-characters ID will be assigned to the configuration for identification purpose. It can be customized after you pressed the
Unlock to edit ID button.
Be aware that updating that ID may break things.Select the target method and fill the corresponding connection details
Once done, click Save to save the configuration. The saved configuration appears in the list of authentication configurations and can be used with supported connections.
The saved configuration can later be edited using
Edit selected configuration
or removed using
Delete selected configuration.
Рис. 21.6 Добавление конфигурации из редактора конфигурации
The same type of operations for authentication configuration management (Add, Edit and Remove) can be done when configuring a given service connection, such as configuring an OWS service connection. For that, there are action buttons within the configuration selector for fully managing configurations found within the authentication database. In this case, there is no need to go to the configurations in Authentication tab of QGIS options unless you need to do more comprehensive configuration management.
Рис. 21.7 WMS connection dialog showing authentication configuration widget
При создании или редактировании конфигурации аутентификации требуется указать имя, метод аутентификации и любую другую информацию, которую требует метод аутентификации (см. подробнее о доступных типах аутентификации в Методы аутентификации).
21.1.5. Методы аутентификации
Доступные аутентификации предоставляются подключаемыми модулями C++, точно так же, как в QGIS поддерживаются подключаемые модули поставщиков данных. Метод аутентификации, который можно выбрать, зависит от доступа, необходимого для ресурса/провайдера, например HTTP(S) или базы данных, и от того, есть ли поддержка как в коде QGIS, так и в подключаемом модуле. Таким образом, некоторые подключаемые модули методов аутентификации могут быть неприменимы везде, где отображается селектор конфигурации аутентификации. Список доступных подключаемых модулей метода аутентификации и совместимых с ними ресурсов/провайдеров можно получить, перейдя в и на вкладке Аутентификация нажать кнопку
Установленные плагины.
Рис. 21.8 Список плагинов доступных методов
Для новых методов аутентификации можно создавать плагины, которые не требуют перекомпиляции QGIS. Поскольку в настоящее время поддержка подключаемых модулей осуществляется только на C++, QGIS необходимо будет перезапустить, чтобы новый подключаемый модуль стал доступен пользователю. Убедитесь, что ваш подключаемый модуль скомпилирован для той же целевой версии QGIS, если вы собираетесь добавить его к существующей целевой установке.
21.1.5.1. API Header Authentication
The API Header authentication method allows you to connect to services
that require custom HTTP headers, such as API keys.
For example, if a WMS service requires an API key sent as a header
(e.g. X-API-KEY), you can use this method to provide it.
You can add one or more headers with the
button; provide a
Header Name and Header Value for each entry. Use
to delete the selected header or the Clear
button to remove all entries.
Рис. 21.9 API Header authentication configs
21.1.5.2. AWS S3 Authentication
The AWS S3 authentication method allows you to connect to Amazon S3 resources by providing a Name, Resource, Username, Password, and Region.
Рис. 21.10 AWS S3 authentication configs
21.1.5.3. Basic Authentication
The Basic authentication method is used for services that require standard HTTP authentication with a Username, Password and Realm.
Рис. 21.11 Конфигурации базовой HTTP-аутентификации
21.1.5.4. ESRI Token Authentication
The ESRI token authentication method is used for ArcGIS REST Servers that require token-based authentication.
Рис. 21.12 Конфигурации аутентификации ESRI Token
21.1.5.5. Identity certificate authentication
The Identity certificate authentication method allows you to connect using a client identity certificate.
Рис. 21.13 Identity-cert authentication configs
21.1.5.6. MapTiler HMAC-SHA256 Authentication
The MapTiler HMAC-SHA256 authentication method is used to connect to MapTiler services that require HMAC-SHA256 authorization.
Рис. 21.14 MapTiler HmacSha256 authentication configs
21.1.5.7. OAuth2 Authentication
The OAuth2 authentication method is used to connect to services that require OAuth2 2.0 authorization, allowing secure access using client credential and token-based authentication.
It supports using localhost as the redirect host,
providing compatibility with services that do not accept http://127.0.0.1 redirects (for example, Microsoft SharePoint).
An advanced OAuth2 configuration option, Extra token header(s), allows attaching additional tokens returned by the OAuth2 token endpoint as HTTP(S) request headers.
Рис. 21.15 Конфигурации аутентификации OAuth2
21.1.5.8. PKI-Paths Authentication
The PKI-Paths authentication method allows you to connect using separate certificate and key files stored on your system.
Рис. 21.16 Конфигурации аутентификации путей PKI
21.1.5.9. PKI-PKCS#12 Authentication
The PKI-PKCS#12 authentication method allows you to connect using a single bundle file containing both the certificate and private key, with an optional passphrase for the key.
Рис. 21.17 Конфигурации аутентификации PKI PKCS#12 пути к файлам
21.1.6. Мастер-пароль и утилиты настройки авторизации
В меню Опции () на вкладке Аутентификация есть несколько утилит для управления базой данных и конфигурациями аутентификации:
Рис. 21.18 Меню Утилиты
Input master password…: opens the master password input dialog, independent of performing any authentication database command
Clear cached master password: unsets the master password if it has been set
Reset master password…: opens a dialog to change the master password (the current password must be known) and optionally back up the current database
Clear network authentication access cache: clears the authentication cache of all connections
Automatically clear network authentication access cache on SSL errors: the connection cache stores all authentication data for connections, also when the connection fails. If you change authentication configurations or certification authorities, you should clear the authentication cache or restart QGIS. When this option is checked, the authentication cache will be automatically cleared every time an SSL error occurs and you choose to abort the connection
Integrate master password with the Wallet: adds the master password to your personal Wallet/Keyring
Clear the master password from the Wallet…: deletes the master password from your Wallet/Keyring
Enable password helper debug log: enables a debug tool that will contain all the log information of the authentication methods
Clear cached authentication configurations: clears the internal lookup cache for configurations, used to speed up network connections. This does not clear QGIS’s core network access manager’s cache, which requires a relaunch of QGIS.
Remove all authentication configurations…: clears the database of all configuration records, without removing other stored records.
Import authentication configurations from file…: imports from an
.XMLfile details for creating custom authentication configurations.Export selected authentication configurations to file…: exports the selected items to a possibly encrypted
.XMLfile.Erase authentication database…: schedules a backup of the current database and complete rebuild of the database table structure. The actions are scheduled for a later time, to ensure that other operations, like project loading, do not interrupt the operation or cause errors due to a temporarily missing database.
21.1.7. Использование конфигураций аутентификации
Обычно конфигурация аутентификации выбирается в диалоге настройки сетевых сервисов (например, WMS). Однако виджет селектора может быть встроен в любое место, где требуется аутентификация, или в неосновную функциональность, например в сторонние плагины PyQGIS или C++.
When using the selector, No authentication is displayed in the
pop-up menu control when nothing is selected, when there are no configurations
to choose from, or when a previously assigned configuration can no longer be
found in the database. Use the drop-down menu to select an existing authentication
configuration or press
Create a new autentication configuration
to create a configuration you could use.
More details at Authentication.
Рис. 21.19 Селектор конфигурации аутентификации с выбранной конфигурацией
21.1.8. Связующие элементы Python
All classes and public functions have sip bindings, except QgsAuthCrypto, since management of the master password hashing and auth database encryption should be handled by the main app, and not via Python.
После ввода мастер-пароля API открывается для доступа к конфигурациям аутентификации в базе данных аутентификации, аналогично тому, как работает Firefox. Однако не было определено никакой стены против доступа к PyQGIS. Это может привести к проблемам, когда пользователь загружает/устанавливает вредоносный плагин PyQGIS или отдельное приложение, которое получает доступ к учетным данным аутентификации.