Viktigt
Översättning är en gemenskapsinsats du kan gå med i. Den här sidan är för närvarande översatt till 100.00%.
21.1. Översikt över autentiseringssystem

Fig. 21.1 Autentiseringssystemets anatomi
21.1.1. Autentiseringsdatabas
Autentiseringssystemet lagrar autentiseringskonfigurationer i en SQLite-databasfil som finns, som standard, på <profile directory>/qgis-auth.db
.
Denna autentiseringsdatabas kan flyttas mellan QGIS-installationer utan att påverka andra aktuella QGIS-användarinställningar, eftersom den är helt skild från normala QGIS-inställningar. Ett konfigurations-ID (en slumpmässig alfanumerisk sträng med 7 tecken) genereras när en konfiguration initialt lagras i databasen. Detta representerar konfigurationen, vilket gör att ID:t kan lagras i programkomponenter i klartext (t.ex. projekt-, plugin- eller inställningsfiler) utan att de tillhörande autentiseringsuppgifterna avslöjas.
Observera
Den överordnade katalogen för qgis-auth.db kan ställas in med hjälp av följande miljövariabel, QGIS_AUTH_DB_DIR_PATH
, eller ställas in på kommandoraden under start med alternativet --authdbdirectory
.
21.1.2. Anpassade autentiseringsdatabaser
QGIS kan konfigureras att använda en anpassad autentiseringsdatabas istället för den ovan nämnda standard SQLite-databasen: alla databaser som stöds av Qt SQL-modulen kan användas (t.ex. PostgreSQL, MySQL, etc.), förutsatt att motsvarande Qt SQL-drivrutin finns tillgänglig i systemet.
Detta kan vara användbart i scenarier där en användare vill dela samma autentiseringsdatabas mellan flera QGIS-installationer, eller när en användare vill använda en annan autentiseringsdatabas än standard SQLite eller när en centraliserad autentiseringsdatabas används av QGIS-servern.
Det enda sättet att konfigurera en anpassad autentiseringsdatabas är genom att ställa in miljövariabeln QGIS_AUTH_DB_URI
till URI för anslutningen, URI är i form av driver://username:password@hostname:port/database?options
.
- Var:
driver
är namnet på Qt SQL-drivrutinen som ska användas, t.ex.QPSQL
för PostgreSQL,QMYSQL
för MySQL, etc.username
är det användarnamn som ska användas för att ansluta till databasenpassword
är det lösenord som ska användas för att ansluta till databasenhostname
är värdnamnet på databasservernport
är porten till databasserverndatabase
är namnet på den databas som ska användasoptions
är alternativen som ska skickas till drivrutinen, t.ex.sslmode = require
för PostgreSQL
Observera
Schemat kan anges i URI-alternativen, t.ex. QPSQL://användarnamn:lösenord@hostname:port/database?schema=schema_name
Databasen måste finnas innan QGIS startas och användaren måste ha de nödvändiga behörigheterna för att ansluta till databasen och för att skapa de nödvändiga tabellerna om de inte redan finns.
Varning
Lösenordet i URI:n lagras i klartext i miljövariabeln, så vi rekommenderar att du använder en användare utan lösenord eller en användare med begränsade behörigheter för att ansluta till databasen.
Varning
Alla databaser som inte är baserade på SQLite anses vara skrivskyddade (detta kan ändras av Python-plugins vid behov).
Detta är en avancerad funktion som är utformad för att QGIS ska kunna använda en eller flera anpassade autentiseringsdatabaser eller till och med anpassade Python-implementeringar av lagring av autentiseringsuppgifter.
Systemet är också utformat för att möjliggöra användning av flera autentiseringsdatabaser, men det finns för närvarande inget användargränssnitt för att hantera lagring av flera autentiseringsuppgifter, så användningen kräver manuell konfiguration och hantering, vanligtvis från ett Python-plugin.
21.1.3. Huvudlösenord
För att lagra eller få tillgång till känslig information i databasen måste användaren definiera ett ”huvudlösenord”. Ett nytt huvudlösenord begärs och verifieras när krypterade data första gången lagras i databasen. Vid åtkomst till känslig information uppmanas användaren att ange huvudlösenordet. Lösenordet cachelagras sedan under resten av sessionen (tills programmet avslutas), såvida inte användaren manuellt väljer en åtgärd för att rensa det cachelagrade värdet. Vid vissa tillfällen då autentiseringssystemet används krävs inte att huvudlösenordet anges, t.ex. när en befintlig autentiseringskonfiguration väljs eller när en konfiguration tillämpas på en serverkonfiguration (t.ex. när ett WMS-lager läggs till).
Du kan välja att spara lösenordet i datorns Wallet/Keyring
.

Fig. 21.2 Ange nytt huvudlösenord
Observera
En sökväg till en fil som innehåller huvudlösenordet kan anges med hjälp av följande miljövariabel, QGIS_AUTH_PASSWORD_FILE
.
21.1.3.1. Hantering av huvudlösenordet
När huvudlösenordet har ställts in kan det återställas; det aktuella huvudlösenordet måste anges innan återställningen kan göras. Under denna process finns det möjlighet att generera en fullständig säkerhetskopia av den aktuella databasen.

Fig. 21.3 Återställning av huvudlösenord
Om användaren glömmer huvudlösenordet finns det inget sätt att hämta eller åsidosätta det. Det finns inte heller något sätt att hämta krypterad information utan att känna till huvudlösenordet.
Om en användare skriver in sitt befintliga lösenord felaktigt tre gånger kommer dialogrutan att erbjuda sig att radera databasen.

Fig. 21.4 Lösenordsuppmaning efter tre ogiltiga försök
21.1.4. Konfigurationer för autentisering
Du kan hantera autentiseringskonfigurationer från Configurations i Autentisering-fliken i QGIS Options-dialogrutan ( ).

Fig. 21.5 Redaktör för konfigurationer
Använd knappen för att lägga till en ny konfiguration, knappen
för att ta bort konfigurationer och knappen
för att ändra befintliga konfigurationer.

Fig. 21.6 Lägga till konfiguration från konfigurationsredigeraren
Samma typ av åtgärder för hantering av autentiseringskonfiguration (Lägg till, Redigera och Ta bort) kan göras när du konfigurerar en viss tjänsteanslutning, t.ex. konfigurering av en OWS-tjänsteanslutning. För detta ändamål finns det åtgärdsknappar i konfigurationsväljaren för fullständig hantering av konfigurationer som finns i autentiseringsdatabasen. I det här fallet behöver du inte gå till fliken configurations i Authentication i QGIS-alternativen om du inte behöver göra en mer omfattande konfigurationshantering.

Fig. 21.7 WMS-anslutningsdialog med knapparna Add, Edit och Remove för autentiseringskonfiguration
När du skapar eller redigerar en autentiseringskonfiguration krävs ett namn, en autentiseringsmetod och eventuell annan information som autentiseringsmetoden kräver (se mer om tillgängliga autentiseringstyper i Autentiseringsmetoder).
21.1.5. Autentiseringsmetoder
Tillgängliga autentiseringar tillhandahålls av C++-plugins på ungefär samma sätt som plugins för dataleverantörer stöds av QGIS. Vilken autentiseringsmetod som kan väljas beror på vilken åtkomst som behövs för resursen/providern, t.ex. HTTP(S) eller databas, och om det finns stöd i både QGIS-koden och ett insticksprogram. Därför kan det hända att vissa insticksprogram för autentiseringsmetoder inte är tillämpliga överallt där en väljare för autentiseringskonfiguration visas. En lista över tillgängliga insticksprogram för autentiseringsmetoder och deras kompatibla resurser/providers kan nås genom att gå till Autentication, klicka på knappen Installed Plugins.

Fig. 21.8 Lista över tillgängliga metodplugins
Plugins kan skapas för nya autentiseringsmetoder som inte kräver att QGIS kompileras om. Eftersom stödet för insticksprogram för närvarande endast är C++ måste QGIS startas om för att det nya insticksprogrammet ska bli tillgängligt för användaren. Se till att ditt insticksprogram är kompilerat mot samma målversion av QGIS om du tänker lägga till det i en befintlig målinstallation.

Fig. 21.9 Konfigurationer för grundläggande HTTP-autentisering

Fig. 21.10 Konfigurationer för ESRI Token-autentisering

Fig. 21.11 Konfigurationer för OAuth2-autentisering

Fig. 21.12 PKI-sökvägar autentisering konfigurationer

Fig. 21.13 PKI PKCS#12 filsökvägar autentisering konfigurationer

Fig. 21.14 Lagrade konfigurationer för identitetsautentisering
Observera
Resource URL är för närvarande en ej implementerad funktion som så småningom kommer att göra det möjligt att automatiskt välja en viss konfiguration vid anslutning till resurser på en viss URL.
21.1.6. Verktyg för Master Password och Auth Config
Under menyn Options (Authentication finns det flera verktyg för att hantera autentiseringsdatabasen och konfigurationerna:
) på fliken
Fig. 21.15 Verktygsmeny
Input master password: öppnar dialogrutan för inmatning av huvudlösenordet, oberoende av om något autentiseringsdatabaskommando utförs
Clear cached master password: återställer masterlösenordet om det har ställts in
Reset master password: öppnar en dialogruta för att ändra huvudlösenordet (det aktuella lösenordet måste vara känt) och eventuellt säkerhetskopiera den aktuella databasen
Clear network authentication access cache: rensar autentiseringscachen för alla anslutningar
Automatiskt rensa nätverksautentiseringens åtkomstcache vid SSL-fel: Anslutningscachen lagrar alla autentiseringsdata för anslutningar, även när anslutningen misslyckas. Om du ändrar autentiseringskonfigurationer eller certifikatutfärdare bör du rensa autentiseringscachen eller starta om QGIS. När det här alternativet är markerat rensas autentiseringscachen automatiskt varje gång ett SSL-fel inträffar och du väljer att avbryta anslutningen
Integrera huvudlösenordet med din plånbok/nyckelring: lägger till huvudlösenordet i din personliga plånbok/nyckelring
Lagra/uppdatera huvudlösenordet i din plånbok/nyckelring: uppdaterar det ändrade huvudlösenordet i din plånbok/nyckelring
Radera huvudlösenordet från din plånbok/nyckelring: raderar huvudlösenordet från din plånbok/nyckelring
Enable password helper debug log: aktiverar ett felsökningsverktyg som kommer att innehålla all logginformation för autentiseringsmetoderna
Rensa cachade autentiseringskonfigurationer: rensar den interna cacheminnet för konfigurationer, som används för att snabba upp nätverksanslutningar. Detta rensar inte QGIS centrala nätverksåtkomsthanterares cache, vilket kräver en omstart av QGIS.
Remove all authentication configurations: rensar databasen från alla konfigurationsposter, utan att ta bort andra lagrade poster.
Erase authentication database: schemalägger en säkerhetskopia av den aktuella databasen och en fullständig återuppbyggnad av databasens tabellstruktur. Åtgärderna schemaläggs till en senare tidpunkt för att säkerställa att andra åtgärder, t.ex. projektladdning, inte avbryter åtgärden eller orsakar fel på grund av en tillfälligt saknad databas.
Fig. 21.16 Meny för verifiering av DB-radering
21.1.7. Använda autentiseringskonfigurationer
Vanligtvis väljs en autentiseringskonfiguration i en konfigurationsdialog för en nätverkstjänst (t.ex. WMS). Väljarwidgeten kan dock bäddas in var som helst där autentisering behövs eller i icke-kärnfunktioner, som i PyQGIS- eller C++-plugins från tredje part.
När väljaren används visas No authentication i popup-menyn när ingenting har valts, när det inte finns några konfigurationer att välja mellan eller när en tidigare tilldelad konfiguration inte längre finns i databasen. Fälten Type och Id är skrivskyddade och innehåller en beskrivning av autentiseringsmetoden respektive konfigurationens ID.

Fig. 21.17 Konfigurationsväljare för autentisering utan autentisering

Fig. 21.18 Konfigurationsväljare för autentisering med vald konfiguration
21.1.8. Python-bindningar
Alla klasser och offentliga funktioner har sip-bindningar, utom QgsAuthCrypto
, eftersom hanteringen av huvudlösenordets hashing och auth-databasens kryptering bör hanteras av huvudappen och inte via Python.
När huvudlösenordet har angetts är API:et öppet för åtkomst till autentiseringskonfigurationer i autentiseringsdatabasen, på samma sätt som Firefox fungerar. Ingen mur mot PyQGIS-åtkomst har dock definierats. Detta kan leda till problem där en användare laddar ner/installerar ett skadligt PyQGIS-plugin eller en fristående app som får tillgång till autentiseringsuppgifter.