24.2. 用户身份验证工作流

../../../_images/auth-user-usage.png

图 24.19 通用用户工作流

24.2.1. HTTP(S)身份验证

最常见的资源连接之一是通过HTTp(S),例如Web地图服务器,身份验证方法插件通常适用于这些类型的连接。方法插件可以访问HTTP请求对象,并且可以操作请求及其标头。这允许多种形式的基于互联网的身份验证。通过HTTPS(S)进行连接时,如果使用标准的用户名/密码认证方式,则会在连接时尝试使用HTTPS基本认证。

../../../_images/auth-http-basic-wms.png

图 24.20 为HTTP Basic配置WMS连接

24.2.2. 数据库身份验证

到数据库资源的连接通常存储为 key=value 对,它将公开用户名和(可选)密码,如果 not 使用身份验证配置。使用身份验证系统进行配置时, key=value 将是凭据的抽象表示,例如 authfg=81t21b9

../../../_images/auth-db-ssl-pki.png

图 24.21 配置带PKI的Postgres SSL连接

24.2.3. PKI身份验证

在身份验证系统中配置PKI组件时,您可以选择将组件导入数据库或引用存储在文件系统中的组件文件。如果这些组件经常更改,或者组件将由系统管理员更换,则后者可能很有用。在这两种情况下,您都需要存储访问数据库中的私钥所需的任何密码。

../../../_images/auth-pki-config.png

图 24.22 PKI配置工作流

所有PKI组件都可以在 Certificate Manager ,可以在 Authentication QGIS中的选项卡 Options 对话框 (Settings ► Options ),请点击 Manage Certificates 纽扣。

../../../_images/auth-open-Certificate-manager.png

图 24.23 打开证书管理器

Certificate Manager ,有适用于 IdentitiesServersAuthorities 。每个选项卡都包含在各自的选项卡中,并按照它们在上面的工作流程图中遇到的顺序在下面进行描述。一旦您习惯了工作流,Tab键顺序是相对于经常访问的编辑器的。

备注

由于所有身份验证系统都会立即编辑对身份验证数据库的写入,因此无需单击 Options 对话框 OK 按钮,以保存任何更改。这与选项对话框中的其他设置不同。

24.2.3.1. 当局

您可以从管理可用的证书颁发机构(CA) Authorities 选项卡中的 Certificate managerAuthentication QGIS的选项卡 Options 对话框中。

如上面的工作流程图所示,第一步是导入或引用CA文件。此步骤是可选的,如果您的PKI信任链源自操作系统(OS)中已安装的根CA,例如来自商业证书供应商的证书,则可能不需要此步骤。如果正在进行身份验证的根CA不在操作系统的受信任根CA中,则需要将其导入或引用其文件系统路径。(如果不确定,请联系您的系统管理员。)

../../../_images/auth-editor-authorities.png

图 24.24 权威编辑

默认情况下,操作系统中的根CA可用;但是,不会继承它们的信任设置。您应该检查证书信任策略设置,特别是在您的操作系统根CA已调整其策略的情况下。除非明确覆盖其信任策略,否则任何过期的证书都将被设置为不受信任,并且不会在安全服务器连接中使用。要查看任何证书的QGIS可发现信任链,请将其选中,然后单击 元数据 Show information for certificate

../../../_images/auth-authority-imported_cert-info-chain.png

图 24.25 证书信息对话框

You can edit the Trust policy 选择字符串 for any selected certificate within the chain. Any change in trust policy to a selected certificate will not be saved to the database unless the 文件保存 Save certificate trust policy change to database button is clicked per selected certification. Closing the dialog will not apply the policy changes.

../../../_images/auth-authority-edit-trust_save-not-close.png

图 24.26 保存信任策略更改

You can review the filtered CAs, both intermediate and root certificates, that will be trusted for secure connections or change the default trust policy by clicking the 转换设置 Options button.

警告

更改默认信任策略可能会导致安全连接出现问题。

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

图 24.27 权限选项菜单

您可以从包含多个CA的文件中导入CA或保存文件系统路径,或导入单个CA。对于包含多个CA链证书的文件,标准PEM格式的根证书位于文件底部,所有后续签名的子证书位于文件上方靠近文件开头的位置。

CA证书导入对话框将查找文件中的所有CA证书,而不考虑其顺序,并且还提供了导入被认为无效的证书的选项(以防您想要覆盖其信任策略)。您可以在导入时重写信任策略,也可以稍后在 Authorities 编辑。

../../../_images/auth-authority-import.png

图 24.28 导入证书对话框

备注

如果要将证书信息粘贴到 PEM text 字段中,请注意,不支持加密证书。

24.2.3.2. 身份

您可以从管理可用的客户端身份包 Identities 选项卡中的 Certificate managerAuthentication QGIS的选项卡 Options 对话框中。身份是根据启用了PKI的服务对您进行身份验证的工具,通常由客户端证书和私钥组成,它们可以作为单独的文件,也可以合并到单个“捆绑”文件中。捆绑包或私钥通常受密码短语保护。

导入任何证书颁发机构(CA)后,您可以选择将任何身份捆绑包导入身份验证数据库。如果您不希望存储身份,则可以在单个身份验证配置中引用其组件文件系统路径。

../../../_images/auth-editor-identities.png

图 24.29 身份编辑器

导入身份包时,它可以受密码保护或不受保护,并且可以包含形成信任链的CA证书。信任链证书不会在此导入;它们可以单独添加到 Authorities 标签。

在导入时,捆绑包的证书和私钥将存储在数据库中,密钥的存储使用QGIS主密码进行加密。随后使用数据库中存储的捆绑包将只需要输入主密码。

支持由PEM/DER(.pem/.der)和PKCS#12(.p12/.pfx)组件组成的个人身份包。如果密钥或捆绑包受密码保护,则需要密码才能在导入前验证组件。同样,如果捆绑包中的客户端证书无效(例如,其生效日期尚未开始或已过),则无法导入捆绑包。

../../../_images/auth-identity-import_paths.png

图 24.30 PEM/DER身份导入

../../../_images/auth-identity-import_bundle-valid.png

图 24.31 PKCS#12身份导入

24.2.4. 处理坏层

有时,与项目文件一起保存的身份验证配置ID不再有效,这可能是因为当前身份验证数据库与上次保存项目时不同,或者由于凭据不匹配。在这种情况下, Handle bad layers 对话框将在QGIS启动时显示。

../../../_images/auth-handle-bad-layers.png

图 24.32 使用身份验证处理错误的层

如果发现数据源具有与其关联的身份验证配置ID,则您将能够对其进行编辑。这样做将自动编辑数据源字符串,其方式与在文本编辑器中打开项目文件并编辑字符串的方式大致相同。

../../../_images/auth-handle-bad-layers-edit.png

图 24.33 编辑错误层的身份验证配置ID

24.2.5. 更改身份验证配置ID

有时,您需要更改与访问资源关联的身份验证配置ID。在某些情况下,这一点很有用:

  • Resource auth config ID is no longer valid :当您已切换身份验证数据库添加需要时,可能会发生这种情况 align 已与资源关联的ID的新配置。

  • Shared project files :如果您打算在用户之间共享项目,例如通过共享文件服务器,您可以 predefine 7个字符(包含 a-z 和/或 0-9 ),它与资源关联。然后,各个用户更改特定于其资源凭据的身份验证配置的ID。当项目打开时,该ID在身份验证数据库中找到,但凭据因用户而异。

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

图 24.34 更改层的身份验证配置ID(已解锁的黄色文本字段)

警告

更改身份验证配置ID被视为高级操作,只有在充分了解其必要性的情况下才能执行此操作。这就是为什么在编辑ID之前需要单击一个锁定按钮来解锁ID的文本字段。

24.2.6. QGIS服务器支持

使用具有身份验证配置的图层的项目文件作为QGIS服务器中地图的基础时,QGIS需要执行几个附加设置步骤才能加载资源:

  • 身份验证数据库需要可用

  • 身份验证数据库的主密码需要可用

实例化身份验证系统时,服务器将创建或使用 qgis-auth.db 处于活动状态的文件 user profile ,或由 QGIS_AUTH_DB_DIR_PATH 环境变量。可能是服务器的用户没有主目录,在这种情况下,请使用环境变量来定义服务器的用户具有读/写权限且不在Web可访问目录中的目录。

要将主密码传递给服务器,请将其写入文件系统上服务器进程用户可读的路径下的第一行文件,并使用 QGIS_AUTH_PASSWORD_FILE 环境变量。确保将文件限制为服务器的进程用户只读,并且不将文件存储在可通过Web访问的目录中。

备注

QGIS_AUTH_PASSWORD_FILE 变量将在访问后立即从服务器环境中删除。

24.2.7. SSL服务器例外

../../../_images/auth-ssl-config.png

图 24.35 SSL服务器异常

您可以从管理SSL服务器配置和例外 Servers 选项卡中的 Authentication 优质地理信息系统部分 Options 对话框中。

有时,当连接到一台SSL服务器时,SSL“握手”或服务器的证书会出现错误。您可以忽略这些错误或创建一个SSL服务器配置作为例外。这类似于Web浏览器允许您覆盖SSL错误,但具有更精细的控制。

警告

除非您完全了解服务器和客户端之间的整个SSL设置,否则不应创建SSL服务器配置。相反,应向服务器管理员报告该问题。

备注

某些PKI设置使用与用于验证SSL服务器证书的链完全不同的CA信任链来验证客户端身份。在这种情况下,为连接服务器创建的任何配置不一定会修复您的客户端身份验证问题,只有您的客户端身份的颁发者或服务器管理员可以修复该问题。

您可以通过单击 符号系统添加 纽扣。或者,也可以在连接过程中发生SSL错误时添加配置,并向您显示 SSL Error 对话框(在该对话框中可以暂时忽略错误,也可以将错误保存到数据库并忽略):

../../../_images/auth-server-exception.png

图 24.36 手动添加配置

../../../_images/auth-server-error-add-exception.png

图 24.37 在SSL错误期间添加配置

将SSL配置保存到数据库后,即可对其进行编辑或删除。

../../../_images/auth-editor-servers.png

图 24.38 现有的SSL配置

../../../_images/auth-server-edit.png

图 24.39 编辑现有的SSL配置

如果您要预配置SSL配置,并且导入对话框不适用于您的服务器连接,则可以通过 Python Console 通过运行以下代码(替换 https://bugreports.qt-project.org 使用您的服务器的URL):

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)

如果出现任何错误,这将打开一个SSL错误对话框,您可以在其中选择将配置保存到数据库。