22.2. Flujos de trabajo de autenticación de usuarios
![../../../_images/auth-user-usage.png](../../../_images/auth-user-usage.png)
Figura 22.19 Flujo de trabajo de usuario genérico
22.2.1. Autenticación HTTP(S)
Una de las conexiones de recursos más comunes es a través de HTTP(S), p. Ej. Los servidores de mapas web y los complementos de métodos de autenticación a menudo funcionan para este tipo de conexiones. Los complementos de método tienen acceso al objeto de solicitud HTTP y pueden manipular tanto la solicitud como sus encabezados. Esto permite muchas formas de autenticación basada en Internet. Cuando se conecte a través de HTTP(S) utilizando el método de autenticación de nombre de usuario / contraseña estándar, se intentará la autenticación HTTP BASIC al realizar la conexión.
![../../../_images/auth-http-basic-wms.png](../../../_images/auth-http-basic-wms.png)
Figura 22.20 Configuración de una conexión WMS para HTTP BASIC
22.2.2. Base de datos de autenticación
Las conexiones a los recursos de la base de datos son almacenados generalmente como pares key=value
, los cuales muestran nombres de usuario y (opcionalmente) contraseñas, si no se usa una configuración de autenticación. Al configurar con el sistema auth, la key=value
será una representación abstracta de las credenciales, p.ej. authfg=81t21b9
.
![../../../_images/auth-db-ssl-pki.png](../../../_images/auth-db-ssl-pki.png)
Figura 22.21 Configuración de una conexión Postgres SSL-con-PKI
22.2.3. Autenticación PKI
Al configurar componentes PKI dentro del sistema de autenticación, tiene la opción de importar componentes a la base de datos o hacer referencia a archivos de componentes almacenados en su sistema de archivos. Esto último puede ser útil si dichos componentes cambian con frecuencia o si los componentes serán reemplazados por un administrador del sistema. En cualquier caso, deberá almacenar cualquier frase de contraseña necesaria para acceder a las claves privadas dentro de la base de datos.
![../../../_images/auth-pki-config.png](../../../_images/auth-pki-config.png)
Figura 22.22 Flujo de trabajo de configuración de PKI
Todos los componentes de PKI se pueden administrar en editores separados dentro del Administrador de certificados, al que se puede acceder en la pestaña: guilabel: ʻAuthentication` en el cuadro de diálogo Opciones de QGIS (Administrar certificados.
) haciendo clic en el botón![../../../_images/auth-open-Certificate-manager.png](../../../_images/auth-open-Certificate-manager.png)
Figura 22.23 Abriendo el Administrador de Certificados
En Administrador de Certificados, hay editores para Identidades, Servidores y Autoridades. Cada uno de estos está contenido en sus propias pestañas y se describen a continuación en el orden en que se encuentran en el diagrama de flujo de trabajo anterior. El orden de las pestañas es relativo a los editores a los que se accede con frecuencia una vez que se acostumbre al flujo de trabajo.
Nota
Debido a que todas las ediciones del sistema de autenticación se escriben inmediatamente en la base de datos de autenticación, no es necesario hacer clic en el botón Opciones Aceptar para guardar los cambios. Esto es diferente a otras configuraciones en el cuadro de diálogo Opciones.
22.2.3.2. Identidades
Puede administrar los paquetes de identidad de cliente disponibles desde la pestaña Identidades en Administrador de certificados desde la pestaña ** Autenticación ** del cuadro de diálogo ** Opciones ** de QGIS. Una identidad es lo que lo autentica frente a un servicio habilitado para PKI y generalmente consta de un certificado de cliente y una clave privada, ya sea como archivos separados o combinados en un solo archivo «empaquetado». El paquete o la clave privada a menudo está protegida con una frase de contraseña.
Una vez que haya importado las Autoridades de certificación (CA), puede importar opcionalmente cualquier paquete de identidad a la base de datos de autenticación. Si no desea almacenar las identidades, puede hacer referencia a las rutas del sistema de archivos de sus componentes dentro de una configuración de autenticación individual.
![../../../_images/auth-editor-identities.png](../../../_images/auth-editor-identities.png)
Figura 22.29 Editor de identidades
Al importar un paquete de identidad, puede estar protegido por contraseña o desprotegido, y puede contener certificados CA que forman una cadena de confianza. Las certificaciones de la cadena de confianza no se importarán aquí; se pueden agregar por separado en la pestaña Autoridades.
Tras la importación, el certificado y la clave privada del paquete se almacenarán en la base de datos, con el almacenamiento de la clave cifrado con la contraseña maestra de QGIS. El uso posterior del paquete almacenado de la base de datos solo requerirá la entrada de la contraseña maestra.
Se admiten paquetes de identidad personal que constan de componentes PEM/DER (.pem/.der) y PKCS#12 (.p12/.pfx). Si una clave o un paquete está protegido con contraseña, se requerirá la contraseña para validar el componente antes de la importación. Del mismo modo, si el certificado de cliente del paquete no es válido (por ejemplo, su fecha de vigencia aún no ha comenzado o ha transcurrido), el paquete no se puede importar.
![../../../_images/auth-identity-import_paths.png](../../../_images/auth-identity-import_paths.png)
Figura 22.30 importar identidad PEM/DER
![../../../_images/auth-identity-import_bundle-valid.png](../../../_images/auth-identity-import_bundle-valid.png)
Figura 22.31 importar identidad PKCS#12
22.2.4. Manejar capas defectuosas
Ocasionalmente, el ID de configuración de autenticación que se guarda con un archivo de proyecto ya no es válido, posiblemente porque la base de datos de autenticación actual es diferente a la última vez que se guardó el proyecto, o debido a una discrepancia de credenciales. En tales casos, se presentará el diálogo Manejar capas defectuosas al iniciar QGIS.
![../../../_images/auth-handle-bad-layers.png](../../../_images/auth-handle-bad-layers.png)
Figura 22.32 Manejar capas defectuosas con autenticación
Si se encuentra que una fuente de datos tiene un ID de configuración de autenticación asociado, podrá editarlo. Al hacerlo, se editará automáticamente la cadena de origen de datos, de la misma manera que se abre el archivo del proyecto en un editor de texto y se edita la cadena.
![../../../_images/auth-handle-bad-layers-edit.png](../../../_images/auth-handle-bad-layers-edit.png)
Figura 22.33 Editar ID de configuración de la autenticación
22.2.5. Cambiar el ID de configuración de autenticación
Ocasionalmente, deberá cambiar el ID de configuración de autenticación que está asociado con el acceso a un recurso. Hay casos en los que esto es útil:
** El ID de configuración de autenticación de recursos ya no es válido **: Esto puede ocurrir cuando ha cambiado las bases de datos de autenticación y agrega la necesidad de * alinear * una nueva configuración con el ID ya asociado con un recurso.
** Archivos de proyecto compartidos : si pretendía compartir proyectos entre usuarios, p. Ej. a través de un servidor de archivos compartidos, puede * predefinir * un carácter de 7 (que contiene **a-z y/o 0-9) que está asociado con el recurso. Luego, los usuarios individuales cambian el ID de una configuración de autenticación que es específica para sus credenciales del recurso. Cuando se abre el proyecto, la identificación se encuentra en la base de datos de autenticación, pero las credenciales son diferentes por usuario.
![../../../_images/auth-change-config-id.png](../../../_images/auth-change-config-id.png)
Figura 22.34 Cambiar el ID de configuración de autenticación de una capa (campo de texto amarillo desbloqueado)
Advertencia
Cambiar el ID de configuración de autenticación se considera una operación avanzada y solo debe realizarse con pleno conocimiento de por qué es necesario. Es por eso que hay un botón de bloqueo que debe hacer clic para desbloquear el campo de texto de la identificación antes de editar la identificación.
22.2.6. Soporte de Servidor QGIS
Cuando se usa un archivo de proyecto, con capas que tienen configuraciones de autenticación, como base para un mapa en QGIS Server, hay un par de pasos de configuración adicionales necesarios para que QGIS cargue los recursos:
La base de datos de autenticación necesita estar disponible
La contraseña maestra de la base de datos de autenticación debe estar disponible
Al instanciar el sistema de autenticación, el servidor creará o usará el archivo qgis-auth.db
en el user profile activo, o el directorio definido por la variable de entorno QGIS_AUTH_DB_DIR_PATH
. Puede ser que el usuario del servidor no tenga un directorio INICIO, en cuyo caso, use la variable de entorno para definir un directorio en el que el usuario del servidor tenga permisos de lectura/escritura y no se encuentre dentro de los directorios accesibles a través de la web.
Para pasar la contraseña maestra al servidor, escríbala en la primera línea del archivo en una ruta del sistema de archivos legible por el usuario de procesos del servidor y definida mediante la variable de entorno QGIS_AUTH_PASSWORD_FILE
. Asegúrese de limitar el archivo como solo legible por el usuario del proceso del servidor y de no almacenar el archivo en directorios accesibles desde la web.
Nota
QGIS_AUTH_PASSWORD_FILE
La variable se eliminará del entorno del servidor inmediatamente después de acceder.
22.2.7. excepciones de servidor SSL
![../../../_images/auth-ssl-config.png](../../../_images/auth-ssl-config.png)
Figura 22.35 excepción de servidor SSL
Puede administrar las configuraciones y excepciones del servidor SSL desde la pestaña Servidores en la sección Autenticación del cuadro de diálogo Opciones de QGIS.
A veces, al conectarse a un servidor SSL, hay errores con el «protocolo de enlace» SSL o el certificado del servidor. Puede ignorar esos errores o crear una configuración de servidor SSL como excepción. Esto es similar a cómo los navegadores web le permiten anular los errores de SSL, pero con un control más granular.
Advertencia
No debe crear una configuración de servidor SSL a menos que tenga un conocimiento completo de toda la configuración SSL entre el servidor y el cliente. En su lugar, informe el problema al administrador del servidor.
Nota
Algunas configuraciones de PKI utilizan una cadena de confianza de CA completamente diferente para validar las identidades de los clientes que la cadena utilizada para validar el certificado del servidor SSL. En tales circunstancias, cualquier configuración creada para el servidor de conexión no necesariamente solucionará un problema con la validación de la identidad de su cliente, y solo el emisor de su identidad de cliente o el administrador del servidor pueden solucionar el problema.
Puede preconfigurar una configuración de servidor SSL haciendo clic en botón. Alternativamente, puede agregar una configuración cuando ocurre un error SSL durante una conexión y se le presenta un cuadro de diálogo Error SSL (donde el error puede ignorarse temporalmente o guardarse en la base de datos e ignorarse):
![../../../_images/auth-server-exception.png](../../../_images/auth-server-exception.png)
Figura 22.36 Adición manual de configuración
![../../../_images/auth-server-error-add-exception.png](../../../_images/auth-server-error-add-exception.png)
Figura 22.37 Adicionar configuración durante un error SSL
Una vez que se guarda una configuración SSL en la base de datos, se puede editar o eliminar.
![../../../_images/auth-editor-servers.png](../../../_images/auth-editor-servers.png)
Figura 22.38 Configuración SSL existente
![../../../_images/auth-server-edit.png](../../../_images/auth-server-edit.png)
Figura 22.39 Editar una configuración SSL existente
Si desea preconfigurar una configuración SSL y el cuadro de diálogo de importación no funciona para la conexión de su servidor, puede activar manualmente una conexión a través de la Consola Python ejecutando el siguiente código (reemplace https://bugreports.qt-project.org
con la URL de su servidor):
from qgis.PyQt.QtNetwork import QNetworkRequest
from qgis.PyQt.QtCore import QUrl
from qgis.core import QgsNetworkAccessManager
req = QNetworkRequest(QUrl('https://bugreports.qt-project.org'))
reply = QgsNetworkAccessManager.instance().get(req)
Esto abrirá un cuadro de diálogo de error SSL si se produce algún error, donde puede elegir guardar la configuración en la base de datos.