Importante

La traduzione è uno sforzo comunitario you can join. Questa pagina è attualmente tradotta al 55.36%.

21.1. Panoramica sul sistema di autenticazione

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

Fig. 21.1 Anatomia del sistema di autenticazione

21.1.1. Database di autenticazione

Il nuovo sistema di autenticazione memorizza le configurazioni di autenticazione in un file database SQLite memorizzato, in modo predefinito, in <profile directory>/qgis-auth.db.

Questo database di autenticazione può essere spostato fra le installazioni di QGIS senza che vengano coinvolte altre preferenze utente di QGIS correnti, dato che è completamente separato dalle normali impostazioni utente di QGIS. Un ID di configurazione (una stringa casuale alfanumerica di 7 caratteri) viene generata quando viene scritta la configurazione iniziale nel database. Ciò rappresenta la configurazione, permettendo così che l’ID venga memorizzato in componenti dell’applicazione come testo normale, (come progetto, plugin o files di impostazioni) senza divulgazione delle relative credenziali associate.

Nota

La cartella genitore di qgis-auth.db può essere impostata usando la seguente variabile d’ambiente, QGIS_AUTH_DB_DIR_PATH, oppure impostata sulla linea di comando durante il lancio con l’opzione -authdbdirectory.

21.1.2. Database di autenticazione personalizzati

QGIS può essere configurato per utilizzare un database di autenticazione personalizzato invece di quello predefinito SQLite sopra menzionato: può essere utilizzato qualsiasi database supportato dal modulo Qt SQL (ad esempio PostgreSQL, MySQL, ecc.), a condizione che il driver Qt SQL corrispondente sia disponibile nel sistema.

Questo può essere utile negli scenari in cui un utente desidera condividere lo stesso database di autenticazione tra più installazioni di QGIS, o quando un utente desidera utilizzare un database di autenticazione diverso da quello predefinito di SQLite o quando un database di autenticazione centralizzato viene utilizzato dal server QGIS.

L’unico modo per configurare un database di autenticazione personalizzato è impostare la variabile d’ambiente QGIS_AUTH_DB_URI all’URI della connessione, l’URI è nella forma di driver://username:password@hostname:port/database?options.

Dove:
  • driver è il nome del driver Qt SQL da utilizzare, ad esempio QPSQL for PostgreSQL, QMYSQL per MySQL, etc.

  • username è il nome utente da utilizzare per connettersi al database

  • password è la password da utilizzare per connettersi al database

  • hostname è il nome host del server di database

  • port è la porta del server del database

  • database è il nome del database da utilizzare

  • options sono le opzioni da passare al driver, ad esempio sslmode=require per PostgreSQL

Nota

Lo schema può essere specificato nelle opzioni URI, ad esempio QPSQL://username:password@hostname:port/database?schema=schema_name

Il database deve esistere prima di avviare QGIS e l’utente deve avere i permessi necessari per connettersi al database e per creare le tabelle obbligatorie se non esistono.

Avvertimento

La password nell’URI è memorizzata in testo semplice nella variabile di ambiente, quindi si consiglia di utilizzare un utente senza password o un utente con autorizzazioni limitate per connettersi al database.

Avvertimento

Qualsiasi database non basato su SQLite è considerato di sola lettura (questo può essere modificato dai plugin Python se necessario).

Questa è una funzionalità avanzata, progettata per consentire a QGIS di utilizzare uno o più database di autenticazione personalizzati o anche implementazioni Python personalizzate di archivi di credenziali.

Il sistema è inoltre progettato per consentire l’utilizzo di più database di autenticazione, ma attualmente non esiste un’interfaccia rivolta all’utente per gestire più archivi di credenziali, quindi il suo utilizzo richiede la configurazione e la gestione manuale, in genere da un plug-in Python.

21.1.3. Password master

Per memorizzare o accedere ad informazioni sensibili all’interno del database, un utente deve definire una master password. Una nuova master password viene richiesta e verificata quando si memorizzano inizialmente tutti i dati crittografati nel database. Quando si accede ad informazioni sensibili, viene richiesta all’utente la master password. La password viene quindi memorizzata nella cache per il resto della sessione (fino a quando l’applicazione viene chiusa), a meno che l’utente scelga manualmente un’azione per cancellare il suo valore memorizzato nella cache. Alcune istanze di utilizzo del sistema di autenticazione non richiedono l’immissione della master password, ad esempio quando si seleziona una configurazione di autenticazione esistente o si applica una configurazione ad una configurazione del server (ad esempio quando si aggiunge un livello WMS).

Puoi scegliere di salvare la password nel Wallet/Keyring del tuo computer.

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

Fig. 21.2 Inserisci la nuova master password

Nota

Un percorso di un file contenente la master password può essere impostato utilizzando la seguente variabile d’ambiente, QGIS_AUTH_PASSWORD_FILE.

21.1.3.1. Gestione della master password

Una volta impostata, la master password può essere reimpostata; la master password attuale sarà necessaria prima di reimpostarla. Durante questo processo, c’è un’opzione per generare un backup completo del database attuale.

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

Fig. 21.3 Ripristino della master password

Se l’utente dimentica la master password, non c’è modo di recuperarla o sovrascriverla. Non vi è inoltre alcun mezzo per recuperare informazioni criptate senza conoscere la master password.

Se un utente inserisce la password esistente in modo errato tre volte, la finestra di dialogo offrirà la possibilità di cancellare il database.

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

Fig. 21.4 Richiesta di password dopo tre tentativi non validi

21.1.4. Configurazioni di Autenticazione

Puoi gestire le configurazioni di autenticazione da Configurazioni nella scheda Autenticazione della finestra di dialogo Opzioni QGIS (Impostazioni ► Opzioni).

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

Fig. 21.5 Editor delle configurazioni

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

Fig. 21.6 Aggiunta di configurazione dall’interno dell’editor di Configurazione

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

Fig. 21.7 WMS connection dialog showing authentication configuration widget

Quando si crea o si modifica una configurazione di autenticazione, le informazioni richieste sono un nome, un metodo di autenticazione e qualsiasi altra informazione richiesta dal metodo di autenticazione (vedi maggiori informazioni sui tipi di autenticazione disponibili in Metodi di Autenticazione).

21.1.5. Metodi di Autenticazione

Le autenticazioni disponibili sono fornite dai plugin C++ nello stesso modo in cui i plugin dei fornitori di dati sono supportati da QGIS. Il metodo di autenticazione che può essere selezionato è relativo all’accesso necessario per la risorsa/provider, ad es. HTTP(S) o database, e qualora ci sia supporto sia nel codice QGIS che in un plugin. Come tale, alcuni plugin dei metodi di autenticazione potrebbero non essere applicabili ovunque venga mostrato un selettore di configurazione dell’autenticazione. Si può accedere a un elenco dei plugin disponibili per il metodo di autenticazione e delle risorse/provider compatibili andando a Impostazioni ► Opzioni e, nella scheda Autenticazione, fai clic sul pulsante options Plugins Installati.

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

Fig. 21.8 Elenco dei plugin dei metodi disponibili

I plugin possono essere creati per nuovi metodi di autenticazione che non richiedono la ricompilazione di QGIS. Dal momento che il supporto per i plugin è attualmente solo C++, QGIS dovrà essere riavviato per rendere il nuovo plugin disponibile all’utente. Assicurati che il plugin sia compilato con la stessa versione di QGIS se intendi aggiungerlo ad una installazione di destinazione esistente.

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

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

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

Fig. 21.11 Configurazione di autenticazione HTTP di base

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

Fig. 21.12 Configurazioni di autenticazione 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

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

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

Fig. 21.15 Configurazioni di autenticazione 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

Fig. 21.16 Percorso delle configurazioni di autenticazione 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

Fig. 21.17 Configurazioni dei percorsi del file PKI PKCS#12 di autenticazione

21.1.6. Master Password ed Utilità di Auth Config

Sotto il menu Opzioni (Impostazioni ► Opzioni) nella scheda Autenticazione, ci sono diverse funzionalità utili per gestire il database di autenticazione e le configurazioni:

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

Fig. 21.18 Menu utilità

  • 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. Usare le configurazioni di autenticazione

Tipicamente, una configurazione di autenticazione è selezionata in una finestra di dialogo di configurazione per un servizio di rete (come WMS). Tuttavia, il widget di selezione può essere incorporato ovunque sia necessaria l’autenticazione o in funzionalità non-core, come in PyQGIS o plugin C++ di terze parti.

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

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

Fig. 21.19 Selettore della configurazione di autenticazione con la configurazione scelta

21.1.8. Collegamenti 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.

Una volta inserita la master password, l’API è aperta per accedere alle configurazioni di autenticazione nel database di autenticazione, in modo simile a come funziona Firefox. Tuttavia, non è stato definito alcun blocco contro l’accesso a PyQGIS. Questo può portare a problemi nel caso in cui un utente scarichi/installi un plugin PyQGIS o un’applicazione standalone dannosi che accedono alle credenziali di autenticazione.