Importante

La traducción es un esfuerzo comunitario puede unirse. Esta página está actualmente traducida en |progreso de traducción|.

21.1. Vista general del sistema de Autenticación

../../../_images/auth-system-overview.png

Figura 21.1 Anatomía del sistema de Autenticación

21.1.1. Base de datos de autenticación

El sistema de autenticación almacena las configuraciones de autenticación en un archivo de base de datos SQLite ubicado, por defecto, en <profile directory>/qgis-auth.db.

Esta base de datos de autenticación se puede mover entre las instalaciones de QGIS sin afectar otras preferencias de usuario actuales de QGIS, ya que está completamente separada de la configuración normal de QGIS. Se genera un ID de configuración (una cadena alfanumérica aleatoria de 7 caracteres) cuando se almacena inicialmente una configuración en la base de datos. Esto representa la configuración, lo que permite que la ID se almacene en componentes de la aplicación de texto sin formato (como archivos de proyecto, complemento o configuración) sin revelar sus credenciales asociadas.

Nota

El directorio principal de qgis-auth.db se puede configurar usando la siguiente variable de entorno, QGIS_AUTH_DB_DIR_PATH, o se puede configurar en la línea de comando durante el lanzamiento con la opción --authdbdirectory.

21.1.2. Bases de datos de autenticación personalizadas

QGIS se puede configurar para utilizar una base de datos de autenticación personalizada en lugar de la base de datos SQLite predeterminada mencionada anteriormente: se puede utilizar cualquier base de datos compatible con el módulo Qt SQL (por ejemplo, PostgreSQL, MySQL, etc.), siempre que el controlador Qt SQL correspondiente esté disponible en el sistema.

Esto puede resultar útil en situaciones en las que un usuario desea compartir la misma base de datos de autenticación entre varias instalaciones de QGIS, o cuando un usuario desea utilizar una base de datos de autenticación diferente a la base de datos SQLite predeterminada, o cuando el servidor QGIS utiliza una base de datos de autenticación centralizada.

La única forma de configurar una base de datos de autenticación personalizada es estableciendo la variable de entorno QGIS_AUTH_DB_URI con la URI de la conexión, que tiene el formato driver://username:password@hostname:port/database?options.

Dónde:
  • driver es el nombre del controlador SQL de Qt que se va a utilizar, por ejemplo, QPSQL para PostgreSQL, QMYSQL para MySQL, etc.

  • username es el nombre de usuario que se utilizará para conectarse a la base de datos.

  • password es la contraseña que se debe utilizar para conectarse a la base de datos.

  • hostname es el nombre de host del servidor de la base de datos

  • port es el puerto del servidor de la base de datos

  • database es el nombre de la base de datos que se va a utilizar.

  • options Son las opciones que se pasan al controlador, por ejemplo, sslmode=require para PostgreSQL.

Nota

El schema se puede especificar en las opciones URI, por ejemplo, QPSQL://nombre_usuario:contraseña@nombre_host:puerto/base_datos?esquema=nombre_esquema

La base de datos debe existir antes de iniciar QGIS, y el usuario debe tener los permisos necesarios para conectarse a la base de datos y crear las tablas requeridas si no existen.

Advertencia

La contraseña en la URI se almacena en texto sin formato en la variable de entorno, por lo que se recomienda utilizar un usuario sin contraseña o un usuario con permisos limitados para conectarse a la base de datos.

Advertencia

Cualquier base de datos que no esté basada en SQLite se considera de solo lectura (esto se puede cambiar mediante complementos de Python si es necesario).

Esta es una función avanzada, diseñada para permitir que QGIS utilice una o más bases de datos de autenticación personalizadas o incluso implementaciones personalizadas de Python para el almacenamiento de credenciales.

El sistema también está diseñado para permitir el uso de múltiples bases de datos de autenticación, pero actualmente no existe una interfaz de usuario para gestionar múltiples almacenes de credenciales, por lo que su uso requiere una configuración y gestión manuales, normalmente desde un complemento de Python.

21.1.3. Contraseña maestra

Para almacenar o acceder a información confidencial dentro de la base de datos, un usuario debe definir una “contraseña maestra”. Se solicita y verifica una nueva contraseña maestra cuando se almacena inicialmente cualquier dato cifrado en la base de datos. Cuando se accede a información confidencial, se solicita al usuario la contraseña maestra. Luego, la contraseña se almacena en caché durante el resto de la sesión (hasta que se cierra la aplicación), a menos que el usuario elija manualmente una acción para borrar su valor en caché. Algunas instancias de uso del sistema de autenticación no requieren la entrada de la contraseña maestra, como cuando se selecciona una configuración de autenticación existente o cuando se aplica una configuración a una configuración de servidor (como cuando se agrega una capa WMS).

Puede optar por guardar la contraseña en el Wallet/Keyring de su computadora.

../../../_images/auth-password-new_enter.png

Figura 21.2 Ingrese la nueva contraseña maestra

Nota

Se puede establecer una ruta a un archivo que contiene la contraseña maestra mediante la siguiente variable de entorno, QGIS_AUTH_PASSWORD_FILE.

21.1.3.1. Administrar la contraseña maestra

Una vez configurada, la contraseña maestra se puede restablecer; se necesitará la contraseña maestra actual antes de restablecer. Durante este proceso, existe la opción de generar una copia de seguridad completa de la base de datos actual.

../../../_images/auth-password-reset.png

Figura 21.3 Restablecer contraseña maestra

Si el usuario olvida la contraseña maestra, no hay forma de recuperarla o anularla. Tampoco hay forma de recuperar información cifrada sin conocer la contraseña maestra.

Si un usuario ingresa su contraseña existente de manera incorrecta tres veces, el diálogo ofrecerá borrar la base de datos.

../../../_images/auth-password-invalid-3times.png

Figura 21.4 Solicitud de contraseña después de tres intentos no válidos

21.1.4. Configuraciones de autenticación

Puede administrar las configuraciones de autenticación desde Configuraciones en la pestaña Autenticación del cuadro de diálogo Opciones de QGIS (:menuselection:` Configuración -> Opciones`).

../../../_images/options_authentication.png

Figura 21.5 Editor de configuraciones

To create a new authentication configuration:

  1. Press the symbologyAdd Add a new authentication configuration

  2. Provide a Name and optional Resource URL

  3. A seven-characters ID will be assigned to the configuration for identification purpose. It can be customized after you pressed the locked Unlock to edit ID button. Be aware that updating that ID may break things.

  4. Select the target method and fill the corresponding connection details

  5. 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 symbologyEdit Edit selected configuration or removed using symbologyRemove Delete selected configuration.

../../../_images/auth-config-create_authcfg-id.png

Figura 21.6 Agregar configuración desde el editor de configuración

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.

../../../_images/add_connection_wms.png

Figura 21.7 WMS connection dialog showing authentication configuration widget

Al crear o editar una configuración de autenticación, la información requerida es un nombre, un método de autenticación y cualquier otra información que requiera el método de autenticación (vea más sobre los tipos de autenticación disponibles en Métodos de autenticación).

21.1.5. Métodos de autenticación

Los complementos de C ++ proporcionan las autenticaciones disponibles de la misma manera que los complementos de proveedores de datos son compatibles con QGIS. El método de autenticación que se puede seleccionar es relativo al acceso necesario para el recurso/proveedor, p. ejemplo HTTP(S) o base de datos, y si hay soporte tanto en el código QGIS como en un complemento. Como tal, algunos complementos de métodos de autenticación pueden no ser aplicables en todos los lugares donde se muestra un selector de configuración de autenticación. Se puede acceder a una lista de complementos de métodos de autenticación disponibles y sus recursos / proveedores compatibles yendo a Configuración -> Opciones y, en la pestaña :guilabel:ʻAutenticación`, haga clic en el botón options Complementos instalados.

../../../_images/auth-method-listing.png

Figura 21.8 Lista de complementos de métodos disponibles

Se pueden crear complementos para nuevos métodos de autenticación que no requieren la recompilación de QGIS. Dado que actualmente el soporte para complementos es solo C ++, QGIS deberá reiniciarse para que el nuevo complemento incorporado esté disponible para el usuario. Asegúrese de que su complemento esté compilado con la misma versión de destino de QGIS si tiene la intención de agregarlo a una instalación de destino existente.

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 symbologyAdd button; provide a Header Name and Header Value for each entry. Use symbologyRemove to delete the selected header or the Clear button to remove all entries.

../../../_images/auth-method-api-header.png

Figura 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.

../../../_images/auth-method-awss3.png

Figura 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.

../../../_images/auth-method-basic-auth.png

Figura 21.11 Configuraciones básicas de autenticación HTTP

21.1.5.4. ESRI Token Authentication

The ESRI token authentication method is used for ArcGIS REST Servers that require token-based authentication.

../../../_images/auth-method-esritoken.png

Figura 21.12 Configuraciones de autenticación de token ESRI

21.1.5.5. Identity certificate authentication

The Identity certificate authentication method allows you to connect using a client identity certificate.

../../../_images/auth-method-identity-cert.png

Figura 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.

../../../_images/auth-method-maptiler.png

Figura 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.

../../../_images/auth-method-oauth2.png

Figura 21.15 Configuraciones de autenticación 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.

../../../_images/auth-method-pem-der-paths.png

Figura 21.16 Configuraciones de autenticación de rutas 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.

../../../_images/auth-method-pkcs12-paths.png

Figura 21.17 Configuraciones de autenticación de rutas de archivo PKI PKCS#12

21.1.6. Utilidades de contraseña maestra y configuración de autenticación

En el menú Opciones (Configuración -> Opciones) en la pestaña :guilabel:ʻAutenticación`, hay varias acciones de utilidad para administrar la base de datos de autenticación y las configuraciones:

../../../_images/auth-editor-configs_utilities-menu.png

Figura 21.18 Menú utilidades

  • 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 .XML file details for creating custom authentication configurations.

  • Export selected authentication configurations to file…: exports the selected items to a possibly encrypted .XML file.

  • 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. Usando configuraciones de autenticación

Normalmente, se selecciona una configuración de autenticación en un cuadro de diálogo de configuración para servicios de red (como WMS). Sin embargo, el widget selector se puede incrustar en cualquier lugar donde se necesite autenticación o en funciones no básicas, como en complementos PyQGIS o C ++ de terceros.

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 symbologyAdd Create a new autentication configuration to create a configuration you could use. More details at Autenticación.

../../../_images/authentication-selector-set.png

Figura 21.19 Selector de configuración de autenticación con configuración seleccionada

21.1.8. Python bindings

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.

Una vez introducida la contraseña maestra, la API está abierta para acceder a las configuraciones de autenticación en la base de datos de autenticación, de forma similar a como funciona Firefox. Sin embargo, no se ha definido ninguna barrera contra el acceso de PyQGIS. Esto puede dar lugar a problemas cuando un usuario descarga/instala un complemento malicioso de PyQGIS o una aplicación independiente que obtiene acceso a las credenciales de autenticación.