Importante

A tradução é um esforço comunitário você pode contribuir. Esta página está atualmente traduzida em 74.70%.

21.1. Visão Geral do Sistema de Autenticação

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

Fig. 21.1 Anatomia do sistema de autenticação

21.1.1. Banco de Dados de Autenticação

The authentication system stores authentication configurations in an SQLite database file located, by default, at <profile directory>/qgis-auth.db.

Este banco de dados de autenticação pode ser movido entre as instalações do QGIS sem afetar outras preferências do usuário QGIS atuais, já que é completamente separado das configurações normais do QGIS. Um ID de configuração (uma strig alfanumérica aleatória de 7 caracteres) é gerado ao armazenar inicialmente uma configuração no banco de dados. Isso representa a configuração, permitindo que o ID seja armazenado em componentes de aplicativo de texto simples (como arquivos de projeto, complemento ou configurações) sem a divulgação de suas credenciais associadas.

Nota

O diretório pai do qgis-auth.db pode ser definido usando a seguinte variável de ambiente,``QGIS_AUTH_DB_DIR_PATH``, ou definido na linha de comando durante o lançamento com a opção --authdbdirectory.

21.1.2. Custom authentication databases

QGIS can be configured to use a custom authentication database instead of the above mentioned default SQLite one: any database suppported by the Qt SQL module can be used (e.g. PostgreSQL, MySQL, etc), provided that the corresponding Qt SQL driver is available in the system.

This can be useful in scenarios where a user wants to share the same authentication database between multiple QGIS installations, or when a user wants to use a different authentication database than the default SQLite one or when a centralized authentication database is used by QGIS server.

The only way to configure a custom authentication database is by setting the QGIS_AUTH_DB_URI environment variable to the URI of the connection, the URI is in the form of driver://username:password@hostname:port/database?options.

Where:
  • driver is the name of the Qt SQL driver to use, e.g. QPSQL for PostgreSQL, QMYSQL for MySQL, etc.

  • username is the username to use to connect to the database

  • password is the password to use to connect to the database

  • hostname is the hostname of the database server

  • port is the port of the database server

  • database is the name of the database to use

  • options are the options to pass to the driver, e.g. sslmode=require for PostgreSQL

Nota

The schema can be specified in the URI options, e.g. QPSQL://username:password@hostname:port/database?schema=schema_name

The database must exist before starting QGIS, and the user must have the necessary permissions to connect to the database and to create the required tables if they do not exist.

Aviso

The password in the URI is stored in plain text in the environment variable, so it is recommended to use a passwordless user or a user with limited permissions to connect to the database.

Aviso

Any database not based on SQLite is considered to be read-only (this can be changed by Python plugins if necessary).

This is an advanced feature, designed to allow one or more custom authentication databases or even custom Python implementations of credentials storages to be used by QGIS.

The system is also designed to allow for multiple authentication databases to be used but there is currently no user facing interface to manage multiple credential storages so its usage requires manual configuration and management, typically from a Python plugin.

21.1.3. Senha mestra

Para armazenar ou acessar informações confidenciais no banco de dados, o usuário deve definir uma senha mestra. Uma nova senha mestra é solicitada e verificada ao armazenar inicialmente quaisquer dados criptografados no banco de dados. Quando informações confidenciais são acessadas, o usuário é solicitado a fornecer a senha mestra. A senha é então armazenada em cache pelo restante da sessão (até que o aplicativo seja encerrado), a menos que o usuário escolha manualmente uma ação para limpar seu valor em cache. Algumas instâncias de uso do sistema de autenticação não exigem a entrada da senha mestra, como ao selecionar uma configuração de autenticação existente ou ao aplicar uma configuração a uma configuração de servidor (como ao adicionar uma camada WMS).

Você pode optar por salvar a senha na Carteira/Chaveiro do seu computador.

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

Fig. 21.2 Insira uma nova senha mestra

Nota

Um caminho para um arquivo contendo a senha mestra pode ser definido usando a seguinte variável de ambiente, QGIS_AUTH_PASSWORD_FILE.

21.1.3.1. Gerenciando a senha mestre

Uma vez definida, a senha mestra pode ser redefinida; a senha mestra atual será necessária antes da redefinição. Durante este processo, existe a opção de gerar um backup completo do banco de dados atual.

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

Fig. 21.3 Redefinindo a senha mestre

Se o usuário esquecer a senha mestra, não haverá como recuperá-la ou substituí-la. Também não há meio de recuperar informações criptografadas sem saber a senha mestra.

Se um usuário inserir sua senha existente incorretamente três vezes, a caixa de diálogo se oferecerá para apagar o banco de dados.

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

Fig. 21.4 Solicitação de senha após três tentativas inválidas

21.1.4. Configurações de Autenticação

Você pode gerenciar as configurações de autenticação de Configurações na guia Autenticação da caixa de diálogo Opções do QGIS (Configurações ► Opções).

../../../_images/auth-editor-configs2.png

Fig. 21.5 Editor de configurações

Use o |AdicionarSimbologia| botão para adicionar uma nova configuração, o |RemoverSimbologia| botão para remover configurações e o botão |EditarSimbologia| botão para modificar os existentes.

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

Fig. 21.6 Adicionando configuração de dentro do editor de configuração

O mesmo tipo de operações para gerenciamento de configuração de autenticação (Adicionar, Editar e Remover) pode ser feito ao configurar uma determinada conexão de serviço, como configurar uma conexão de serviço OWS. Para isso, existem botões de ação no seletor de configuração para gerenciar totalmente as configurações encontradas no banco de dados de autenticação. Neste caso, não há necessidade de ir para a aba:guilabel:configurações em :guilabel: Autenticação das opções do QGIS, a menos que você precise fazer um gerenciamento de configuração mais abrangente.

../../../_images/auth-selector-wms-connection.png

Fig. 21.7 Caixa de diálogo de conexão WMS mostrando os botões de configuração de autenticação:guilabel:Adicionar, Editar e Remover

Ao criar ou editar uma configuração de autenticação, a informação necessária é um nome, um método de autenticação e qualquer outra informação que o método de autenticação requeira (veja mais sobre os tipos de autenticação disponíveis em:ref:autenticação_métodos).

21.1.5. Métodos de autenticação

As autenticações disponíveis são fornecidas pelos plugins C++ da mesma forma que os plugins do provedor de dados são suportados pelo QGIS. O método de autenticação que pode ser selecionado é relativo ao acesso necessário para o recurso/provedor, por exemplo. HTTP(S) ou banco de dados, e se há suporte no código QGIS e em um plugin. Como tal, alguns plugins de métodos de autenticação podem não ser aplicáveis ​​em todos os lugares em que um seletor de configuração de autenticação é mostrado. Uma lista de plugins de métodos de autenticação disponíveis e seus recursos/provedores compatíveis podem ser acessados ​​em: seleção de menu:Configurações –> Opções e, na aba: guilabel:Autenticação, clique em |opções|:guilabel:botão Plugins Instalados.

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

Fig. 21.8 Lista de plugins de métodos disponíveis

Plugins podem ser criados para novos métodos de autenticação que não requerem que o QGIS seja recompilado. Como o suporte para plugins é atualmente somente C++, o QGIS precisará ser reiniciado para que o novo plugin fique disponível para o usuário. Certifique-se de que seu plug-in seja compilado na mesma versão de destino do QGIS se você pretende adicioná-lo a uma instalação de destino existente.

../../../_images/auth-config-create_basic-auth.png

Fig. 21.9 Configurações básicas de autenticação HTTP

../../../_images/auth-config-create_esritoken.png

Fig. 21.10 Configurações de autenticação de símbolo ESRI

../../../_images/auth-config-create_oauth2.png

Fig. 21.11 Configurações de autenticação OAuth2

../../../_images/auth-config-create_pem-der-paths.png

Fig. 21.12 Configurações de autenticação de caminhos PKI

../../../_images/auth-config-create_pkcs12-paths.png

Fig. 21.13 Configurações de autenticação de caminhos de arquivo PKI PKCS#12

../../../_images/auth-config-create_stored-identity2.png

Fig. 21.14 Configurações de autenticação de identidade armazenada

Nota

A URL do recurso é atualmente um recurso não implementado que eventualmente permitirá que uma configuração específica seja escolhida automaticamente ao conectar-se a recursos em uma determinada URL.

21.1.6. Utilitários de configuração de senha mestra e autenticação

No menu Opções (:seleção de menus: Configurações –> Opções) na aba: guilabel: Autenticação, existem várias ações de utilitários para gerenciar o banco de dados de autenticação e as configurações:

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

Fig. 21.15 Menu de utilitários

  • Inserir senha mestra: abre a caixa de diálogo de inserção de senha mestra, independentemente da execução de qualquer comando de banco de dados de autenticação

  • Limpar senha mestra em cache: anula a senha mestra se ela tiver sido definida

  • Redefinir senha mestra: abre uma caixa de diálogo para alterar a senha mestra (a senha atual deve ser conhecida) e opcionalmente faz uma cópia de segurança do banco de dados atual

  • Limpar cache de acesso de autenticação de rede: limpa o cache de autenticação de todas as conexões

  • Limpar automaticamente o cache de acesso de autenticação de rede em caso de erros de SSL: o cache de conexão armazena todos os dados de autenticação das conexões, mesmo quando a conexão falha. Se você alterar as configurações de autenticação ou autoridades de certificação, você deve limpar o cache de autenticação ou reiniciar o QGIS. Quando esta opção estiver marcada, o cache de autenticação será limpo automaticamente toda vez que ocorrer um erro de SSL e você optar por abortar a conexão

  • Integre a senha mestra à sua carteira/chaveiro: adiciona a senha mestra à sua carteira/chaveiro pessoal

  • Armazenar/atualizar a senha mestra em sua Carteira/Chaveiro: atualiza a senha mestra alterada em sua Carteira/Chaveiro

  • Limpar a senha mestra da sua carteira/chaveiro: exclui a senha mestra da sua carteira/chaveiro

  • Habilitar registro de depuração do auxiliar de senha: habilita uma ferramenta de depuração que conterá todas as informações de registro dos métodos de autenticação

  • Limpar configurações de autenticação em cache: limpa o cache de pesquisa interno para configurações, usado para acelerar as conexões de rede. Isso não limpa o cache do gerenciador de acesso à rede principal do QGIS, o que requer um relançamento do QGIS.

  • Remover todas as configurações de autenticação: limpa o banco de dados de todos os registros de configuração, sem remover outros registros armazenados.

  • Apagar banco de dados de autenticação: agenda uma cópia de segurança do banco de dados atual e a reconstrução completa da estrutura da tabela do banco de dados. As ações são agendadas para um momento posterior, para garantir que outras operações, como carregamento de projetos, não interrompam a operação ou causem erros devido a um banco de dados temporariamente ausente.

    ../../../_images/auth-db-erase.png

    Fig. 21.16 Menu de verificação de apagamento de banco de dados

21.1.7. Usando configurações de autenticação

Normalmente, uma configuração de autenticação é selecionada em uma caixa de diálogo de configuração para serviços de rede (como WMS). No entanto, a ferramenta seletora pode ser incorporada em qualquer lugar que a autenticação seja necessária ou em funcionalidades não essenciais, como em plug-ins PyQGIS ou C++ de terceiros.

Ao usar o seletor: guilabel:` Sem autenticação` é exibido no controle do menu pop-up quando nada é selecionado, quando não há configurações para escolher ou quando uma configuração atribuída anteriormente não pode mais ser encontrada no banco de dados. Os campos:guilabel:Tipo e: guilabel:Identificação são somente leitura e fornecem uma descrição do método de autenticação e o ID da configuração, respectivamente.

../../../_images/auth-selector-no-authentication.png

Fig. 21.17 Seletor de configuração de autenticação sem autenticação

../../../_images/auth-selector-pkcs12-authentication.png

Fig. 21.18 Seletor de configuração de autenticação com configuração selecionada

21.1.8. Vinculações do 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.

Once the master password is entered, the API is open to access authentication configs in the authentication database, similar to how Firefox works. However, no wall against PyQGIS access has been defined. This may lead to issues where a user downloads/installs a malicious PyQGIS plugin or standalone app that gains access to authentication credentials.