Belangrijk

Vertalen is een inspanning van de gemeenschap waaraan u deel kunt nemen. Deze pagina is momenteel voor 100.00% vertaald.

21.1. Overzicht authenticatiesysteem

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

Fig. 21.1 Anatomie van het authenticatiesysteem

21.1.1. Authenticatie-database

Het authenticatiesysteem slaat configuraties voor authenticatie standaard op in een databasebestand van SQLite, <profile directory>/qgis-auth.db.

Deze authenticatie-database kan worden verplaatst tussen installaties van QGIS zonder andere huidige instellingen van de gebruikers voor QGIS te beïnvloeden, omdat hij volledig afgezonderd is van de normale instellingen voor QGIS. Een ID voor configuratie (een willekeurige 7-tekens lange alfanumerieke tekenreeks) wordt gegenereerd bij het initieel opslaan van een configuratie in de database. Die vertegenwoordigt de configuratie, waarbij het wordt toegestaan de ID op te slaan in platte tekst componenten van de toepassing, (zoals project-, plug-in, of instellingsbestanden) zonder de daarmee geassocieerde gegevens prijs te geven.

Notitie

De bovenliggende map van de qgis-auth.db kan worden ingesteld met behulp van de volgende omgevingsvariabele, QGIS_AUTH_DB_DIR_PATH, of worden ingesteld op de opdrachtregel bij het opstarten met behulp van de optie --authdbdirectory.

21.1.2. Aangepaste authenticatie-databases

QGIS kan worden geconfigureerd om een aangepaste database voor authenticatie te gebruiken in plaats van de hierboven genoemde standaard van SQLite: elke database die wordt ondersteund door de module Qt SQL kan worden gebruikt (bijv. PostgreSQL, MySQL, etc), vooropgesteld dat het corresponderende stuurprogramma voor Qt SQL beschikbaar is op het systeem.

Dit kan nuttig zijn voor scenario’s waar een gebruiker dezelfde database voor authenticatie wil delen over meerdere installaties van QGIS, of als een gebruiker een andere database voor authenticatie wil gebruiken dan de standaard van SQLite of als een gecentraliseerde database voor authenticatie door QGIS server wordt gebruikt.

De enige manier om een aangepaste database voor authenticatie te configureren is door de omgevingsvariabele QGIS_AUTH_DB_URI in te stellen op de URI van de verbinding, de URI is in de vorm van driver://gebruikersnaam:wachtwoord@hostnaam:poort/database?opties.

Waar:
  • driver de naam is van het te gebruiken stuurprogramma van Qt SQL, bijv. QPSQL voor PostgreSQL, QMYSQL voor MySQL, etc.

  • gebruikersnaam is de gebruikersnaam om mee te verbinden met de database

  • wachtwoord is het wachtwoord om mee te verbinden met de database

  • hostnaam is de hostnaam van de server voor de database

  • poort is de poort van de server van de database

  • database is de naam van de te gebruiken database

  • opties zijn de opties om door te geven aan het stuurprogramma, bijv. sslmode=require voor PostgreSQL

Notitie

Het schema kan worden gespecificeerd in de opties van de URI, bijv. QPSQL://gebruikersnaam:wachtwoord@hostnaam:poort/database?schema=schema_naam

De database moet bestaan voordat QGIS wordt opgestart en de gebruiker moet de benodigde rechten hebben om met de database te mogen verbinden en om de vereiste tabellen te maken, als die nog niet bestaan.

Waarschuwing

Het wachtwoord wordt in de URI in platte tekst opgeslagen in de omgevingsvariabele, het wordt dus aanbevolen om een gebruiker zonder wachtwoord of een gebruiker met beperkte rechten te gebruiken om met de database te verbinden.

Waarschuwing

Elke database die niet is gebaseerd op SQLite wordt geacht alleen-lezen te zijn (dit kan, indien nodig, worden gewijzigd door plug-ins van Python).

Dit is een geavanceerde mogelijkheid, ontworpen om een of meer aangepaste databases voor authenticatie mogelijk te maken of zelfs aangepaste implementaties van Python voor het opslaan van inloggegevens te laten gebruiken door QGIS.

Het systeem is ook ontworpen om mogelijk te maken dat meerdere databases voor authenticatie worden gebruikt, maar er is momenteel geen op de gebruiker gerichte interface om meerdere opslag voor inloggegevens te beheren, dus het gebruiken ervan vereist handmatige configuratie en beheer, gewoonlijk vanuit een plug-in van Python.

21.1.3. Hoofdwachtwoord

Een gebruiker moet een hoofdwachtwoord definiëren om gevoelige informatie in de database op te slaan of er toegang tot te verkrijgen. Een nieuw hoofdwachtwoord wordt verzocht en geverifieerd bij het initieel opslaan van versleutelde informatie in de database. Wanneer toegang wordt gezocht tot gevoelige informatie wordt de gebruiker gevraagd het hoofdwachtwoord in te voeren. Het wachtwoord wordt opgeslagen voor de rest van die sessie (totdat de toepassing wordt afgesloten), tenzij de gebruiker handmatig een actie kiest om de opgeslagen waarde te verwijderen. Sommige instances van het gebruik van het authenticatiesysteem vereisen geen invoer van het hoofdwachtwoord, zoals bij het kiezen van een bestaande configuratie voor authenticatie, of het toepassen van een configuratie op een configuratie voor een server (zoals bij het toevoegen van een WMS-laag).

U kunt er voor kiezen het wachtwoord op te slaan in de Wallet/Keyring van uw computer.

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

Fig. 21.2 Nieuw hoofdwachtwoord invoeren

Notitie

Een pad naar een bestand dat het hoofdwachtwoord bevat kan worden ingesteld met behulp van de volgende omgevingsvariabele, QGIS_AUTH_PASSWORD_FILE.

21.1.3.1. Hoofdwachtwoord beheren

Eenmaal ingesteld kan het hoofdwachtwoord worden hersteld; het huidige hoofdwachtwoord is voorafgaand aan het herstellen nodig. Gedurende dit proces bestaat er een optie om een volledige back-up van de huidige database te genereren.

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

Fig. 21.3 Hoofdwachtwoord opnieuw instellen

Als de gebruiker het hoofdwachtwoord vergeet, bestaat er geen manier om het terug te vinden of te overschrijven. Er bestaat ook geen manier om versleutelde informatie terug te halen zonder het hoofdwachtwoord te kennen.

Als een gebruiker zijn bestaande hoofdwachtwoord drie keer foutief invoert, zal een dialoogvenster aanbieden om de database te wissen.

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

Fig. 21.4 Na drie ongeldige pogingen wordt naar het wachtwoord gevraagd

21.1.4. Configuraties voor authenticatie

U kunt configuraties voor authenticatie beheren vanuit Configuraties op de tab Authenticatie van het dialoogvenster QGIS Opties (Extra ► Opties).

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

Fig. 21.5 Configuraties bewerken

Gebruik de knop symbologyAdd om een nieuwe configuratie toe te voegen, de knop symbologyRemove om configuraties te verwijderen, en de knop symbologyEdit om bestaande aan te passen.

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

Fig. 21.6 Configuraties vanuit de bewerker voor Configuraties toevoegen

Hetzelfde type bewerkingen voor het beheren van configuraties voor authenticatie (Toevoegen, Bewerken en Verwijderen) kan ook worden uitgevoerd bij het configureren van een bepaalde serviceverbinding, zoals het configureren van een serviceverbinding voor OWS. Daarvoor zijn er binnen de configuratieselectie actieknoppen voor het volledig beheren van configuraties die kunnen worden gevonden in de authenticatie-database. In dat geval is er geen noodzaak om te gaan naar de Configuraties op de tab Authenticatie van Opties van QGIS, tenzij u meer uitgebreid beheer van de configuraties wilt uitvoeren.

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

Fig. 21.7 Dialoogvenster WMS-verbinding dat de knoppen voor configuratie voor authenticatie Toevoegen, Bewerken, en Verwijderen weergeeft

Bij het maken of bewerken van een configuratie voor authenticatie, is de info die wordt vereist een naam, een authenticatiemethode en elke andere info die nodig is voor de authenticatiemethode (vind meer over de beschikbare typen authenticatie in Authenticatiemethoden).

21.1.5. Authenticatiemethoden

Beschikbare authenticaties worden verschaft door plug-ins voor C++ op nagenoeg dezelfde manier als dat plug-ins voor gegevensproviders worden ondersteund door QGIS. De methode van authenticatie die kan worden geselecteerd is relatief aan de toegang die wordt verleend voor de bron/provider, bijv. HTTP(S) of database, en of er ondersteuning is in zowel de code voor QGIS als een plug-in. Daarom zouden sommige plug-ins voor authenticatiemethoden niet overal toegepast kunnen worden waar een selectie voor een configuratie voor authenticatie wordt weergegeven. Een lijst van beschikbare plug-ins voor authenticatiemethoden en hun compatibele bron/providers kan worden bereikt via Extra ► Opties en, op de tab Authenticatie, klik op de knop options Geïnstalleerde plug-ins.

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

Fig. 21.8 Lijst met beschikbare plug-ins voor methoden

Plug-ins kunnen worden gemaakt voor nieuwe authenticatiemethoden die geen QGIS nodig hebben om opnieuw te worden gecompileerd. Omdat de ondersteuning voor plug-ins momenteel alleen C++ is, dient QGIS opnieuw te worden opgestart om de nieuw geïnstalleerde plug-in beschikbaar te maken voor de gebruiker. Zorg er voor dat uw plug-in is gecompileerd voor dezelfde doelversie van QGIS als u van plan bent om hem toe te voegen aan een bestaande doelinstallatie.

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

Fig. 21.9 Configuraties voor basis HTTP-authenticatie

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

Fig. 21.10 Configuraties authenticatie voor tokens van ESRI

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

Fig. 21.11 Configuraties voor authenticatie voor OAuth2

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

Fig. 21.12 Configuraties voor authenticatie PKI-paden

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

Fig. 21.13 Configuraties voor authenticatie PKI PKCS#12 bestandspaden

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

Fig. 21.14 Opgeslagen identiteit configuraties voor authenticatie

Notitie

De Bron-URL is momenteel een niet geïmplementeerde mogelijkheid die er uiteindelijk toe moet leiden dat een bepaalde configuratie automatisch wordt gekozen bij het verbinden met bronnen op een opgegeven URL.

21.1.6. Gereedschappen voor hoofdwachtwoord en configuratie voor authenticatie

In het menu Opties (Extra ► Opties) op de tab Authenticatie, staan verschillende acties voor gereedschappen om de authenticatiedatabase en de configuraties te beheren:

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

Fig. 21.15 menu Gereedschappen

  • Hoofdwachtwoord invoeren: opent het dialoogvenster voor het invoeren van het hoofdwachtwoord, onafhankelijk van een opdracht voor de database voor authenticatie

  • Hoofdwachtwoord uit cache verwijderen: verwijdert het hoofdwachtwoord als dat is ingesteld

  • Hoofdwachtwoord opnieuw instellen: opent een dialoogvenster om het hoofdwachtwoord te wijzigen (het huidige hoofdwachtwoord moet bekend zijn) en optioneel een back-up te maken van de huidige database

  • Cache voor toegang netwerk authenticatie leegmaken: leegt de cache voor authenticatie van alle verbindingen

  • Automatisch cache voor toegang netwerk authenticatie bij fouten in SSL leegmaken: de cache voor de verbinding slaat alle gegevens voor authenticatie voor verbindingen op, ook als de verbinding mislukt. Wanneer u configuraties voor authenticatie of autoriteiten voor certificaten wijzigt zou u de cache voor authenticatie leeg moeten maken of QGIS opnieuw moeten starten. Als deze optie is geselecteerd zal de cache voor authenticatie automatisch leeg worden gemaakt, elke keer als er een SSL-fout optreedt en u er voor kiest de verbinding af te breken

  • Hoofdwachtwoord integreren met uw Wallet/Keyring: voegt het hoofdwachtwoord toe aan uw persoonlijke Wallet/Keyring

  • Het hoofdwachtwoord opslaan/bijwerken in uw Wallet/Keyring: werkt het gewijzigde hoofdwachtwoord bij in uw Wallet/Keyring

  • Verwijder het hoofdwachtwoord uit uw Wallet/Keyring: verwijdert het hoofdwachtwoord uit uw Wallet/Keyring

  • Log voor hulp bij debuggen van wachtwoord inschakelen: schakelt een gereedschap voor debuggen in dat alle informatie van het loggen zal bevatten van de methoden voor authenticatie

  • Gecachete configuraties voor authenticatie verwijderen: leegt de interne cache voor opzoeken van configuraties gebruikt om netwerkverbindingen te versnellen. Dit schoont niet de beheerscache van het bronnetwerk van QGIS op, die opnieuw starten van QGIS vereist.

  • Alle configuraties voor authenticatie verwijderen: schoont de database van alle records voor configuratie, zonder andere opgeslagen records te verwijderen.

  • Authenticatiedatabase wissen: maakt een taak aan voor een volledige back-up van de huidige database en een volledige herbouw van de tabelstructuur van de database. De acties worden later gepland om er voor te zorgen dat andere bewerkingen, zoals het laden van een project, de bewerking niet onderbreken of fouten veroorzaken door een tijdelijk ontbrekende database.

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

    Fig. 21.16 Verificatiemenu Database wissen

21.1.7. Configuratie voor authenticatie gebruiken

Gewoonlijk wordt een configuratie voor authenticatie geselecteerd in een dialoogvenster voor configuratie van een netwerkservice (zoals WMS). Echter, de widget voor selectie van de configuratie kan overal worden ingebed waar authenticatie nodig is, of in niet-bron functionaliteit, zoals in derde-partij PyQGIS of plug-ins voor C++.

Bij het gebruiken van de selectiemogelijkheid wordt Geen authenticatie weergegeven in het besturingselement van het pop-upmenu als niets is geselecteerd, wanneer er geen configuraties zijn om uit te kiezen, of wanneer een eerder toegewezen configuratie niet kan worden gevonden in de database. De velden Type en ID zijn alleen-lezen en geven respectievelijk een beschrijving van de authenticatiemethode en de ID van de configuratie.

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

Fig. 21.17 Selectie voor configuratie voor authenticatie zonder authenticatie

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

Fig. 21.18 Selectie voor configuratie voor authenticatie met geselecteerde configuratie

21.1.8. Python-bindingen

Alle klassen en publieke functies hebben sip-bindingen, uitgezonderd QgsAuthCrypto, omdat beheer van het hashen van het hoofdwachtwoord en encryptie van de authenticatiedatabase zou moeten worden afgehandeld via de hoofdtoepassing en niet via Python.

Als het hoofdwachtwoord eenmaal is ingevoerd, is de API geopend om toegang te verkrijgen voor de configuraties voor authenticatie in de database voor authenticatie, soortgelijk aan de manier waarop Firefox werkt. Er is echter geen muur tegen toegang door PyQGIS gedefinieerd. Dit kan leiden tot problemen als een gebruiker een schadelijke plug-in of zelfstandige toepassing voor PyQGIS downloadt/installeert, die toegang verkrijgt tot gegevens voor authenticatie.