22.2. Werkstromen voor authenticatie van gebruikers
22.2.1. HTTP(S)-authenticatie
Een van de meest voorkomende verbindingen naar bronnen is via HTTP(S), bijv. servers voor webkaarten, en plug-ins voor methoden van authenticatie werken vaak met deze typen verbindingen. Plug-ins voor methoden hebben toegang tot het object HTTP request en kunnen zowel het request als de kopteksten daarvan manipuleren. Dit maakt vele vormen van authenticatie op basis van internet mogelijk. Wanneer wordt verbonden via HTTP(S) met behulp van de standaardmethode authenticatie gebruikersnaam/wachtwoord zal bij het verbinden authenticatie HTTP BASIC worden geprobeerd.
22.2.2. Database authenticatie
Verbindingen naar databasebronnen worden over het algemeen opgeslagen als paren sleutels=waarde
, die gebruikersnamen en (optioneel) wachtwoorden laten zien, indien geen configuratie voor authenticatie wordt gebruikt. Bij het configureren met het systeem voor authenticatie, zal de sleutel=waarde
een abstracte weergave zijn van de inloggegevens, bijv. authfg=81t21b9
.
22.2.3. PKI-authenticatie
Bij het configureren van componenten van PKI in het systeem van authenticatie moet u de optie hebben om componenten te importeren in de database of te verwijzen naar opgeslagen bestanden voor componenten op uw bestandssysteem. Het laatste zou nuttig zijn als dergelijke componenten regelmatig wijzigen, of als de componenten zullen worden vervangen door een systeembeheerder. In elk geval zult u een wachtwoord moeten opslaan dat nodig is om toegang te krijgen tot private sleutels binnen de database.
Alle componenten voor PKI kunnen in afzonderlijke bewerkers worden beheerd binnen Certificaten beheren, waar toegang toe kan worden verkregen via de tab Authenticatie in QGIS, dialoogvenster Opties ( ) door te klikken op de knop Certificaten beheren.
In Certificaten beheren, staan bewerkers voor Identiteiten, Servers en Autoriteiten. Elk hiervan is opgenomen in zijn eigen tab, en ze worden hieronder beschreven in de volgorde waarin zij worden tegengekomen in de kaart voor de werkstroom hierboven. De volgorde van de tabs is relatief aan frequent gebruikte bewerkers als u eenmaal gewend bent aan de werkstroom.
Notitie
Het is niet noodzakelijk om in het dialoogvenster Opties op de knop OK te drukken voor het opslaan van de wijzigingen, omdat alle bewerkingen aan het systeem voor authenticatie direct naar de database voor authenticatie worden geschreven. Dit wijkt af van andere instellingen in het dialoogvenster Opties.
22.2.3.2. Identiteiten
U kunt de beschikbare bundels met identiteiten voor cliënten beheren vanaf de tab Identiteiten in Certificaten beheren op de tab Authenticatie van het dialoogvenster Opties van QGIS. Een identiteit is wat u authenticeert voor een PKI-ingeschakelde service en bestaat gewoonlijk uit een certificaat voor een cliënt en een persoonlijke sleutel, ofwel als afzonderlijke bestanden of gecombineerd in één enkel “gebundeld” bestand. De bundel of persoonlijke sleutel is vaak beveiligd met een wachtwoord.
Als u eenmaal enkele Certificaat Autoriteiten (CA’s) hebt geïmporteerd kunt u optioneel enige identiteitsbundels in de database voor authenticatie importeren. Als u de identiteiten niet wilt opslaan, kunt u naar de paden voor het bestandssysteem voor hun componenten verwijzen met een individuele configuratie voor authenticatie.
Bij het importeren van een identiteitsbundel, mag die beveiligd zijn met een wachtwoord of niet beveiligd, en mag CA-certificaten bevatten die een keten van vertrouwen vormen. Vertrouwde ketencertificaten zullen hier niet geïmporteerd worden; zij kunnen afzonderlijk worden toegevoegd onder de tab Autoriteiten.
Bij het importeren zullen het certificaat van de bundel en de persoonlijke sleutel worden opgeslagen in de database, met de opslag van de sleutel versleuteld met behulp van het hoofdwachtwoord van QGIS. Volgend gebruik van de opgeslagen bundel uit de database zal alleen het invoeren van het hoofdwachtwoord vergen.
Persoonlijke identiteitsbundels, bestaande uit PEM/DER (.pem/.der) en PKCS#12 (.p12/.pfx) componenten, worden ondersteund. Als een sleutel of bundel met een wachtwoord is beveiligd, zal het wachtwoord nodig zijn om, voorafgaande aan het importeren, de component te valideren. Idem, als het certificaat van de cliënt in de bundel ongeldig is (bijvoorbeeld omdat de geldigheidsdatum nog niet is begonnen of is verlopen) kan de bundel niet worden geïmporteerd.
22.2.4. Probleemlagen afhandelen
Af en toe komt het voor dat de ID voor de configuratie voor de authenticatie, die werd opgeslagen in een projectbestand, niet langer geldig is, mogelijk omdat de huidige database voor authenticatie anders is dan toen het project voor het laatst werd opgeslagen, of vanwege het niet overeenkomen van de inloggegevens. In dergelijke gevallen zal het dialoogvenster Probleemlagen afhandelen worden weergegeven bij het opstarten van QGIS.
Als een gegevensbron wordt gevonden met daaraan een ID voor een configuratie voor authenticatie geassocieerd, zult u in staat zijn het te bewerken. Door dat te doen zal automatisch de tekenreeks van de gegevensbron worden bewerkt, nagenoeg op dezelfde manier als het openen van het projectbestand in een tekstverwerker en de tekenreeks te bewerken.
22.2.5. Configuratie voor authenticatie ID wijzigen
Af en toe zult u het ID voor de configuratie van authenticatie die is geassocieerd met toegang tot een bron moeten wijzigen. Er zijn gevallen wanneer dit nuttig is:
Bron voor ID configuratie van authenticatie is niet langer geldig: Dit kan voorkomen als u gewisseld bent van database voor authenticatie en een nieuwe configuratie voor de ID moet uitlijnen voor de ID die al geassocieerd is met een bron.
Gedeelde projectbestanden: Als u van plan bent projecten te delen met andere gebruikers, bijv. via een server met gedeelde bestanden, kunt u een tekenreeks met 7 tekens vooraf definiëren (die a-z en/of 0-9 bevat) die is geassocieerd met de bron. Daarna wijzigen individuele gebruikers de ID van een configuratie van authenticatie die specifiek is voor hun inloggegevens. Als het project wordt geopend, wordt de ID gevonden in de database voor authenticatie, maar de inloggegevens verschillen per gebruiker.
Waarschuwing
Wijzigen van de ID voor configuratie van authenticatie wordt beschouwd als een geavanceerde bewerking en zou alleen moeten worden uitgevoerd als de volledige kennis aanwezig is voor het waarom het nodig is. Dat is waarom er een knop voor vastzetten is waarop moet worden geklikt, om het tekstveld van de ID los te maken, voorafgaande aan het bewerken van de ID.
22.2.6. QGIS Server ondersteuning
Bij het gebruiken van een projectbestand, met lagen die configuraties voor authenticatie hebben, als basis voor een kaart in QGIS Server, zijn er een aantal aanvullende stappen voor instellen noodzakelijk voor QGIS om de bronnen te laden:
Database voor authenticatie moet beschikbaar zijn
Hoofdwachtwoord voor database voor authenticatie moet beschikbaar zijn
Bij het instantiëren van het systeem voor authenticatie zal Server het bestand qgis-auth.db
in het actieve gebruikersprofiel; of de map die is gedefinieerd in de omgevingsvariabele QGIS_AUTH_DB_DIR_PATH
, maken of gebruiken. Het kan zijn dat de gebruiker van Server geen map HOME heeft, in welk geval, de omgevingsvariabele wordt gebruikt om een map te definiëren waar de gebruiker lees/schrijf-rechten heeft en die niet is gelegen in de vanaf het web toegankelijke mappen.
Schrijf, om het hoofdwachtwoord door te kunnen geven aan Server, het in de eerste regel van een bestand op het pad van het bestandssysteem dat is te lezen door de gebruiker van de processen van Server en wordt gedefinieerd met behulp van de omgevingsvariabele QGIS_AUTH_PASSWORD_FILE
. Zorg er voor het bestand te beperken tot alleen te lezen door de gebruiker van de processen van Server en sla het bestand niet op in mappen die toegankelijk zijn vanaf het web.
Notitie
De variabele QGIS_AUTH_PASSWORD_FILE
wordt direct uit de omgeving van Server verwijderd nadat toegang is verleend
22.2.7. SSL server uitzonderingen
U kunt de configuraties en uitzonderingen van SSL-server beheren vanaf de tab Servers in het gedeelte Authenticatie van het dialoogvenster Opties in QGIS.
Soms, tijdens het verbinden met een SSL-server, zijn er fouten met de SSL “handshake” of het certificaat van de server. U kunt deze fouten negeren of een configuratie voor een SSL-server maken als uitzondering. Dit is soortgelijk aan hoe webbrowsers u toestaan fouten van SSL te overschrijven, maar met een meer fijner beheer.
Waarschuwing
U zou geen configuratie voor een SSL-server moeten maken, tenzij u de volledige kennis heeft van de gehele instelling van SSL tussen de server en de cliënt. Rapporteer in plaats daarvan het probleem bij de beheerder van de server.
Notitie
Sommige instellingen van PKI gebruiken een volledige andere keten van vertrouwen van CA’s dan de keten die wordt gebruikt om het certificaat van de SSL-server te valideren. Onder dergelijke omstandigheden zal niet elke gemaakte configuratie voor de verbindende server noodzakelijkerwijze een probleem met de validatie van de identiteit van uw cliënt oplossen, en alleen de uitgever van de identiteit van uw cliënt of de beheerder van de server kunnen het probleem oplossen.
U kunt vooraf een configuratie voor een SSL-server configureren door te klikken op de knop . Als alternatief kunt u een configuratie toevoegen als een SSL-fout optreedt gedurende een verbinding en u wordt geconfronteerd met een dialoogvenster SSL Error (waar de fout tijdelijk kan worden genegeerd of kan worden opgeslagen naar de database en genegeerd):
Als een SSL-configuratie eenmaal is opgeslagen in de database, kan die worden bewerkt of verwijderd.
Als u vooraf een SSL-configuratie wilt configureren en het dialoogvenster voor importeren werkt niet voor de verbinding van uw server, kunt u handmatig een verbinding activeren via de Python Console door de volgende code uit te voeren (vervang https://bugreports.qt-project.org
door de URL van uw 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)
Dit zal een dialoogvenster voor SSL-fouten openen als er een fout optreedt, waar u er voor kunt kiezen de configuratie op te slaan naar de database.