24.1. 身份验证系统概述

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

图 24.1 身份认证系统剖析

24.1.1. 身份验证数据库

新身份验证系统将身份验证配置存储在默认情况下位于以下位置的SQLite数据库文件中 <profile directory>/qgis-auth.db

此身份验证数据库可以在QGIS安装之间移动,而不会影响其他当前的QGIS用户首选项,因为它与正常的QGIS设置完全分开。最初将配置存储到数据库时,会生成配置ID(随机的7个字符的字母数字字符串)。这表示配置,从而允许ID存储在纯文本应用程序组件(如项目、插件或设置文件)中,而不会泄露其关联的凭据。

备注

的父目录。 qgis-auth.db 可以使用以下环境变量进行设置, QGIS_AUTH_DB_DIR_PATH ,或在启动期间在命令行上使用 --authdbdirectory 选择。

24.1.2. 主密码

若要在数据库中存储或访问敏感信息,用户必须定义 master password 。在最初将任何加密数据存储到数据库时,请求并验证新的主密码。当访问敏感信息时,系统会提示用户输入主密码。然后在会话的其余部分缓存密码(直到应用程序退出),除非用户手动选择清除其缓存值的操作。使用身份验证系统的某些实例不需要输入主密码,例如在选择现有身份验证配置或将配置应用于服务器配置时(例如在添加WMS层时)。

您可以选择将密码保存在 Wallet/Keyring 你的电脑。

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

图 24.2 输入新的主密码

备注

可以使用以下环境变量设置包含主密码的文件的路径。 QGIS_AUTH_PASSWORD_FILE

24.1.2.1. 管理主密码

一旦设置,就可以重置主密码;在重置之前需要当前的主密码。在此过程中,可以选择生成当前数据库的完整备份。

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

图 24.3 重置主密码

如果用户忘记了主密码,则无法检索或覆盖它。在不知道主密码的情况下,也无法检索加密信息。

如果用户三次输入错误的现有密码,该对话框将提供擦除数据库。

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

图 24.4 三次无效尝试后提示密码

24.1.3. 身份验证配置

您可以从管理身份验证配置 ConfigurationsAuthentication QGIS选项对话框的选项卡 (Settings ► Options )。

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

图 24.5 配置编辑器

使用 符号系统添加 按钮以添加新配置,则 符号系统移除 按钮以删除配置,并使用 符号系统编辑 按钮来修改现有的文件。

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

图 24.6 从配置编辑器中添加配置

在配置给定的服务连接时,可以执行相同类型的身份验证配置管理操作(添加、编辑和删除),例如配置OWS服务连接。为此,配置选择器中有一些操作按钮,用于全面管理身份验证数据库中的配置。在这种情况下,不需要转到 configurations 在……里面 Authentication 选项卡,除非您需要进行更全面的配置管理。

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

图 24.7 显示WMS连接对话框 AddEdit ,以及 Remove 身份验证配置按钮

创建或编辑身份验证配置时,所需信息包括名称、身份验证方法以及身份验证方法所需的任何其他信息(有关可用身份验证类型的详细信息,请参阅 身份验证方法 )。

24.1.4. 身份验证方法

可用的身份验证由C++插件提供,与QGIS支持数据提供程序插件的方式非常相似。可以选择的身份验证方法与资源/提供者所需的访问权限相关,例如HTTP(S)或数据库,以及QGIS码和插件是否都支持。因此,某些身份验证方法插件可能不适用于显示身份验证配置选择器的任何地方。有关可用身份验证方法插件及其兼容资源/提供程序的列表,请访问 Settings ► Options 而且,在 Authentication 选项卡中,单击 选项 Installed Plugins 纽扣。

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

图 24.8 可用方法插件列表

可以为不需要重新编译QGIS的新身份验证方法创建插件。由于目前对插件的支持仅限于C++,QGIS将需要重新启动才能使新的插件可供用户使用。如果您打算将插件添加到现有的目标安装中,请确保您的插件是针对相同的目标版本进行编译的。

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

图 24.9 基本的HTTP身份验证配置

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

图 24.10 ESRI令牌身份验证配置

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

图 24.11 OAuth2身份验证配置

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

图 24.12 PKI路径身份验证配置

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

图 24.13 PKI PKCS#12文件路径身份验证配置

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

图 24.14 存储的身份验证配置

备注

资源URL当前是 unimplemented 最终将允许在连接到给定URL处的资源时自动选择特定配置的功能。

24.1.5. 主密码和身份验证配置实用程序

在选项菜单下 (Settings ► Options ))中 Authentication 选项卡中,有几个实用程序操作可用于管理身份验证数据库和配置:

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

图 24.15 实用程序菜单

  • Input master password :打开主密码输入对话框,独立于执行任何身份验证数据库命令

  • Clear cached master password :取消设置主密码(如果已设置

  • Reset master password :打开一个对话框以更改主密码(必须知道当前密码)并可选地备份当前数据库

  • Clear network authentication access cache :清除所有连接的身份验证缓存

  • Automatically clear network authentication access cache on SSL errors :连接缓存存储连接的所有身份验证数据,连接失败时也是如此。如果更改身份验证配置或证书颁发机构,则应清除身份验证缓存或重新启动QGIS。选中此选项后,每次发生SSL错误且您选择中止连接时,将自动清除身份验证缓存

  • Integrate master password with your Wallet/Keyring :将主密码添加到您的个人钱包/钥匙扣

  • Store/update the master password in your Wallet/Keyring :更新钱包/钥匙圈中更改的主密码

  • Clear the master password from your Wallet/Keyring :从您的钱包/钥匙环中删除主密码

  • Enable password helper debug log :启用将包含身份验证方法的所有日志信息的调试工具

  • Clear cached authentication configurations :清除用于加快网络连接速度的配置的内部查找缓存。这不会清除QGIS的核心网络访问管理器的缓存,这需要重新启动QGIS。

  • Remove all authentication configurations :清除数据库中的所有配置记录,而不删除其他存储的记录。

  • Erase authentication database :计划当前数据库的备份并完全重建数据库表结构。这些操作被安排在以后的时间,以确保其他操作,如项目加载,不会因为临时缺少数据库而中断操作或导致错误。

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

    图 24.16 数据库擦除验证菜单

24.1.6. 使用身份验证配置

通常,在网络服务(例如WMS)的配置对话框中选择认证配置。但是,选择器小部件可以嵌入到任何需要身份验证的地方,也可以嵌入到非核心功能中,比如在第三方PyQGIS或C++插件中。

当使用选择器时, No authentication 当未选择任何内容、没有可供选择的配置或在数据库中找不到以前分配的配置时,弹出菜单控件中会显示。这个 TypeId 字段为只读,分别提供身份验证方法和配置ID的说明。

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

图 24.17 不带身份验证的身份验证配置选择器

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

图 24.18 具有所选配置的身份验证配置选择器

24.1.7. Python绑定

所有类和公共函数都有sip绑定,除了 QgsAuthCrypto ,因为主密码散列和身份验证数据库加密的管理应该由主应用程序处理,而不是通过Python。看见 安全注意事项 关于访问Python的问题。