20.2. Benutzerauthentifizierung Workflows

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

Abb. 20.19 Generischer Benutzer Workflow

20.2.1. HTTP(S) Authentifikation

Eine der häufigsten Verbindungen findet mittels HTTP (S) statt, z.B. bei WebGIS Servern und die Authentifizierungsmethoden werden oft für diese Art von Verbindungen genutzt. Die Methoden haben Zugriff auf das HTTP-Request Objekt und können sowohl den Request als auch seinen Header manipulieren. Dies ermöglicht viele Formen von Internet-basierten Authentifizierungen. Wenn über HTTP(S) mit der Standard Benutzername-/Passwort-Authentifizierungsmethode verwendet wird, wird bei der Verbindung eine HTTP-Basisauthentifizierung versucht.

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

Abb. 20.20 Konfigurieren einer WMS-Verbindung für HTTP BASIC

20.2.2. Datenbank Authentifikation

Connections to database resources are generally stored as key=value pairs, which will expose usernames and (optionally) passwords, if not using an authentication configuration. When configuring with the new auth system, the key=value will be an abstracted representation of the credentials, e.g. authfg=81t21b9.

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

Abb. 20.21 Einstellen einer Postgress-SSL mit PKI-Verbindung

20.2.3. PKI Authentifikation

Wenn PKI-Komponenten innerhalb des Authentifikationssystems konfiguriert werden, haben Sie die Möglichkeit, Komponenten in die Datenbank zu importieren oder Dateien, die auf Ihrem System gespeichert sind, zu referenzieren. Letzteres kann nützlich sein, wenn solche Komponenten sich häufig verändern oder wenn die Dateien durch einen Systemadministrator verschoben werden. In beiden Fällen müssen Sie ein beliebiges Passwort speichern um Zugang zu privaten Schlüsseln innerhalb der Datenbank zu haben.

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

Abb. 20.22 PKI Konfiguration Workflow

All PKI components can be managed in separate editors within the Certificate Manager, which can be accessed in the Authentication tab in QGIS Options dialog (Settings ‣ Options) by clicking the Manage Certificates button.

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

Abb. 20.23 Öffnen der Zertifikatsverwaltung

In the Certificate Manager, there are editors for Identities, Servers and Authorities. Each of these are contained in their own tabs, and are described below in the order they are encountered in the workflow chart above. The tab order is relative to frequently accessed editors once you are accustomed to the workflow.

Bemerkung

Because all authentication system edits write immediately to the authentication database, there is no need to click the Options dialog OK button for any changes to be saved. This is unlike other settings in the Options dialog.

20.2.3.1. Autoritäten

Sie können verfügbare Zertifikat Autoritäten (Cas) aus dem Autoritäten Reiter im Zertifikate verwalten aus dem Authentifikation Reiter des QGIS Optionen Dialog verwalten.

Wie oben in dem Workflow-Diagramm Bezug genommen wird, ist der erste Schritt importieren oder einer Datei eine CAs zuweisen. Dieser Schritt ist optional und nicht notwendig, wenn Ihre PKI Vertrauenskette ihren Ursprung in einer CA hat, welche bereits auf Ihrem Betriebssystem (OS) installiert ist, wie ein Zertifikat eines kommerziellen Zertifizierungsanbieters. Falls Ihre Authentifizierung keine vertrauenswürdige CA ist, müssen Sie eine importieren oder dem Dateisystempfad eine zuweisen. (Kontaktieren Sie Ihren Systemadministrator, falls Sie sich unsicher sind.)

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

Abb. 20.24 Autoritäteneditor

By default, the root CAs from your OS are available; however, their trust settings are not inherited. You should review the certificate trust policy settings, especially if your OS root CAs have had their policies adjusted. Any certificate that is expired will be set to untrusted and will not be used in secure server connections, unless you specifically override its trust policy. To see the QGIS-discoverable trust chain for any certificate, select it and click the metadata Show information for certificate.

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

Abb. 20.25 Zertifikatsinformation Dialog

You can edit the Trust policy selectString 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 fileSave 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

Abb. 20.26 Speichern der Vertrauensrichtlinien Änderungen

Sie können die gefilterten CAs überprüfen, sowohl die Zwischen- als auch die Stammzertifikate, denen durch Klicken auf sichere Verbindungen getraut wird oder ändern Sie die Standard-Vertrauensrichtlinie indem Sie den transformSettings Optionen Knopf klicken.

Warnung

Die Standard-Vertrauensrichtlinie ändern kann zu Problemen mit sicheren Verbindungen führen.

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

Abb. 20.27 Autoritätenoptionen-Menü

Sie können CAs importieren oder speichern ein Dateisystempfad aus einer Datei, welche mehrere CAs enthält oder importieren einzelne CAs. Das Standard PEM Format für Dateien, welche mehrere CA Kettenzertifikate enthalten, haben das Stammzertifikat am Ende der Datei und alle anschließend unterzeichneten Zertifikate oben, am Anfang der Datei.

Der CA Zertifikat-Importieren-Dialog wird alle CA Zertifikate innerhalb einer Datei finden, unabhängig von der Reihenfolge und gibt auch die Möglichkeit Zertifikate zu importieren, die als ungültig betrachtet werden (falls Sie deren Vertrauensrichtlinien überschreiben). Sie können die Vertrauensrichtlinie nach dem Import außer Kraft setzen, oder tun Sie es später in dem Autoritäten Editor.

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

Abb. 20.28 Zertifikat importieren Dialog

Bemerkung

Wenn Sie Zertifikatinformationen in das PEM Text Feld einfügen, beachten Sie, dass verschlüsselte Zertifikate nicht unterstützt werden.

20.2.3.2. Identitäten

Sie können verfügbare Client-Identitäts-Bündel über den Reiter Identitäten des Zertifikat Manager im Reiter Authentifizierung im Dialog QGIS Optionen. Eine Identität authentifiziert Sie gegen einen PKI-fähigen Dienst und besteht in der Regel aus einem Client-Zertifikat und einen privaten Schlüssel, entweder als separate Dateien oder kombiniert in einer einzigen „gebündelten“ Datei. Das Bündel oder private Schlüssel sind oft Paßphrase geschützt.

Sobald Sie alle Zertifizierungsstellen (CAs) importiert haben können Sie optional alle Identitätsbündel in die Authentifizierungsdatenbank importieren. Wenn Sie die Identitäten nicht speichern möchten, können Sie ihre Komponentendateisystempfade innerhalb einer einzelnen Authentifizierungskonfiguration referenzieren.

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

Abb. 20.29 Identitäteneditor

Wenn ein Identitäts-Bündel importieren, können diese Passwort-geschützt oder ungeschützt sein und CA-Zertifikate enthalten, die eine Vertrauenskette bilden. Vertrauenskette Zertifizierungen werden nicht an dieser Stelle importiert; sie können separat unter dem Reiter guilabel:Authoritäten hinzugefügt werden.

Beim Import wird das Zertifikats und der Private Key eines Bündels in der Datenbank gespeichert, wobei der Speicher des Schlüssels über das QGIS Master Passwort verschlüsselt ist. Die anschließende Verwendung des gespeicherten Bündels aus der Datenbank erfordert dann nur Eingabe des QGIS Master Passworts.

Persönliche Identitäts-Bündel bestehend aus PEM/DER (.pem / .der) und PKCS#12 (.p12/.pfx) Komponenten werden unterstützt. Wenn ein Schlüssel oder ein Bündel passwortgeschützt ist, wird das Passwort benötigt, um die Komponente zu validieren, bevor sie importiert wird. Wenn das Client-Zertifikat in dem Bündel ungültig ist (zum Beispiel ist das Datum des Inkrafttretens noch nicht gestartet oder abgelaufen), kann das Bündel nicht importiert werden.

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

Abb. 20.30 PEM/DER Identität importieren

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

Abb. 20.31 PKCS#12 Identität importieren

20.2.4. Defekte Layer behandeln

Gelegentlich kommt es vor, dass die ID der Authentifizierungs-Konfiguration, die mit einer Projektdatei gespeichert wird, nicht mehr gültig ist, möglicherweise, weil die aktuelle Authentifizierungsdatenbank sich geändert hat, seitdem das Projekt zuletzt gespeichert wurde, oder aufgrund einer fehlenden Übereinstimmung der Anmeldeinformationen. In solchen Fällen öffnet sich der Dialog Defekte Layer behandeln beim Starten von QGIS.

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

Abb. 20.32 Defekte Layer mit Authentifizierung behandeln

Wenn eine Datenquelle eine ihr zugewiesene Authentifizierungs Konfigurations-ID besitzt, können Sie diese bearbeiten. Dadurch wird der Pfad der Datenquelle automatisch geändert, so wie es beim Öffnen der Projektdatei mit einem Texteditor und dem bearbeiten von Zeichenfolgen passiert.

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

Abb. 20.33 Defekte Layer mit Authentifikationskonfiguration bearbeiten

20.2.5. Kennung der Authentifikationskonfiguration ändern

Occasionally, you will need to change the authentication configuration ID that is associated with accessing a resource. There are instances where this is useful:

  • Resource auth config ID is no longer valid: This can occur when you have switched auth databases add need to align a new configuration to the ID already associated with a resource.

  • Shared project files: If you intended to share projects between users, e.g. via a shared file server, you can predefine a 7-character (containing a-z and/or 0-9) that is associated with the resource. Then, individual users change the ID of an authentication configuration that is specific to their credentials of the resource. When the project is opened, the ID is found in the authentication database, but the credentials are different per user.

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

Abb. 20.34 Kennung einer Layer Authentifikationskonfiguration ändern (entsichert gelbes Textfeld)

Warnung

Das Ändern der Auth-Config-ID ist eine erweiterte Operation und sollte nur in Betracht gezogen werden, wenn es notwendig ist. Aus diesem Grund gibt es eine Lock-Taste, die geklickt werden muss, um das ID Text-Feld vor der Bearbeitung zu entsperren.

20.2.6. QGIS Server Unterstützung:

Wenn eine Projektdatei verwendet wird mit Layern, die eine Authentifizierung konfiguriert haben und vom QGIS Server verwendet werden sollen, gibt es ein paar zusätzliche Schritte zu beachten, um mit QGIS die Ressource zu laden:

  • Authentifizierungsdatenbank muss verfügbar sein

  • Das Authentifizierungsdatenbank Hauptpasswort muss verfügbar sein

Wenn das Authentifizierungssystem initiiert wird, wird der Server die Datei qgis-auth.db im Ordner ~/.qgis2/ oder einem durch die Variable QGIS_AUTH_DB_DIR_PATH definierten Ordner ablegen. Es kann sein, dass der Server Benutzer kein HOME-Verzeichnis hat. In diesem Fall verwenden Sie die entsprechende Umgebungsvariable, um ein Verzeichnis zu definieren, in dem der Server Benutzer Lese-/Schreibberechtigungen hat und das nicht innerhalb des Web zugänglichen Bereichs liegt.

Um das Master-Passwort an den Server zu übergeben, schreiben sie dieses in die erste Zeile einer Datei im Pfad des Dateisystems, der durch den Server Prozess Benutzer lesbar ist und definiert ist durch die QGIS_AUTH_PASSWORD_FILE Umgebungsvariable . Stellen Sie sicher, dass die Datei nur lesbar ist durch den Server Prozess Benutzer und nicht in einem über das Web zugänglichen Verzeichnis liegt.

Bemerkung

QGIS_AUTH_PASSWORD_FILE variable will be removed from the Server environment immediately after accessing.

20.2.7. SSL Serverausnahme

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

Abb. 20.35 SSL Serverausnahmen

Sie können SSL-Server-Konfigurationen und Ausnahmen über den Reiter Server im Abschnitt Authentifizierung des QGIS Menüs Optionen verwalten.

Manchmal, wenn sie sich mit einem SSL-Server verbinden, gibt es Fehler beim SSL „Handshake“ oder mit dem Zertifikat des Servers. Sie können diese Fehler ignorieren oder eine SSL-Server-Konfiguration als eine Ausnahme erstellen. Dies ist ähnlich wie bei Web-Browsern, wo Sie SSL-Fehler ausser Kraft setzen können, aber mit einer besseren Kontrolle.

Warnung

Sie sollten keine SSL-Server-Konfiguration erstellen, wenn Sie keine umfassenden Kenntnisse des gesamten SSL-Setups zwischen dem Server und Client besitzen. Stattdessen wenden Sie sich besser an den Server-Administrator.

Bemerkung

Einige PKI-Setups verwenden eine völlig andere CA-Vertrauenskette, um Client-Identitäten zu validieren, als der Ablauf bei der Validierung eines SSL-Server-Zertifikats. Unter solchen Umständen behebt die Erstellung einer neuen Konfiguration für den Verbindungsserver nicht unbedingt das Problem, sodass sich sich den diesem Fall nur einen Serveradministrator wenden können.

You can pre-configure an SSL server configuration by clicking the signPlus button. Alternatively, you can add a configuration when an SSL error occurs during a connection and you are presented with an SSL Error dialog (where the error can be ignored temporarily or saved to the database and ignored):

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

Abb. 20.36 Manuell eine Konfiguration hinzufügen

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

Abb. 20.37 Konfiguration während einem SSL Fehler hinzufügen

Sobald eine SSL-Konfiguration in der Datenbank gespeichert wird, kann sie bearbeitet oder gelöscht werden.

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

Abb. 20.38 Bestehende SSL Konfiguration

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

Abb. 20.39 Bestehende SSL Konfiguration bearbeiten

If you want to pre-configure an SSL configuration and the import dialog is not working for your server’s connection, you can manually trigger a connection via the Python Console by running the following code (replace https://bugreports.qt-project.org with the URL of your server):

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)

Dies wird ein SSL-Fehler-Dialog öffnen, wenn Fehler auftreten, wo Sie die Konfiguration in die Datenbank speichern können.