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

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

Fig. 22.1 Anatomia do sistema de autenticação

22.1.1. Banco de Dados de Autenticação

O novo sistema de autenticação armazena as configurações de autenticação em um arquivo de banco de dados SQLite localizado, por padrão, em: arquivo:/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.

22.1.2. 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. 22.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.

22.1.2.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. 22.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. 22.4 Solicitação de senha após três tentativas inválidas

22.1.3. 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. 22.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. 22.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. 22.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).

22.1.4. 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. 22.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. 22.9 Configurações básicas de autenticação HTTP

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

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

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

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

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

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

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

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

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

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

22.1.5. 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. 22.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. 22.16 Menu de verificação de apagamento de banco de dados

22.1.6. 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. 22.17 Seletor de configuração de autenticação sem autenticação

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

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

22.1.7. Vinculações do Python

Todas as classes e funções públicas têm ligações sip, exceto QgsAuthCrypto, uma vez que o gerenciamento do hashing da senha mestra e da criptografia do banco de dados de autenticação deve ser feito pelo aplicativo principal, e não via Python. Veja: ref:autenticação_segurança_considerações sobre o acesso ao Python.