-
Notifications
You must be signed in to change notification settings - Fork 48
Behörigheter
Nedan följer en kort redogörelse på hur man sätter upp en AD-koppling i en Node-uppsättning, så att vissa lager filtreras, beroende på grupptillhörighet.
1. Sätt upp en lastbalanserare eller proxy framför Hajk som autentiserar användaren och lägger på en header med användarnamnet
Det här är en absolut grundläggande förutsättning: Hajk-backenden behöver få in ett användarnamn från någon komponent i uppsättningen. Användarnamnet ska skickas på varje request, som en header. Standardnamnet på headern är X-Control-Header. Värdet som skickas ska vara användarens sAMAccountName.
2. Konfigurera Backend så att den har kontakt med LDAP-servern
Nu måste vi tala om för Hajks backend att ta till sig värdet på X-Control-Header och ställa frågan vidare till LDAP-servern för att utläsa vilka grupper som användaren tillhör. Dessutom vill vi begränsa varifrån requests till Backend får komma – de ska endast skickas från vår proxy, annars kan ju vem som helst förfalska ett värde på headern och skicka med i requests och därmed låtsas vara en användare man inte är!
Inställningen görs i .env-filen som hittas i rooten på installationen. Filen innehåller mycket kommentarer så det är tydligt var AD-inställningarna görs. De börjar alla med ”AD_*”. Exempelfil, utan data, finns här:.
Hajk behöver ha ett eget användarnamn i LDAP-uppsättningen med rättigheter att söka i trädet. Uppgifterna anges på raderna AD_USER och AD_PASS.
Det går bra att koppla mot både LDAP eller LDAPS. I det sistnämda fallet måste man ange certifikat och lite annat, läs mer här:. Stäm av med din IT-systemkunnige om vilka inställningar som gäller.
Glöm inte att begränsa varifrån requests till Backend får komma. Ange IP-adressen/adresserna till proxyn som en kommaseparerad lista på AD_TRUSTED_PROXY_IPS.
Säkerställ även att AD_LOOKUP_ACTIVE har satts till true, läs mer här:.
Slutligen, om header-namnet är annat än X-Control-Header så går det bra att ange i AD_TRUSTED_HEADER.
3. Starta backend och verifiera att uppkopplingen fungerar
När Backend startar upp görs ett försök att koppla upp mot LDAP-servern. Om allt gick bra ser du följande i loggen från Backend: [INFO] service.auth - Connection to ldaps://blabla.example.se succeeded.
Om du däremot ser detta så har du glömt att slå på AD-funktionaliteten: [INFO] service.auth - AD_LOOKUP_ACTIVE is set to 'false' in .env. Not enabling ActiveDirectory authentication.
4. Ställ in vad som syns för de respektive AD-grupperna
Nu när Backend får in ett användarnamn och kan slå upp grupptillhörigheterna direkt i LDAP så är vi redo att börja låsa ut kartor/lager/verktyg.
Det görs genom att man generellt anger en kommaseparerad lista (med AD-gruppnamnen) på de delar av Hajk som man vill låsa. För att dessa fält ska synas i Admin UI behöver följande sättas till true: "authentication_active": true
Du hittar raden i config.json.
Så här begränsar vi åtkomst till hela kartor:
Motsvarande finns som sagt för lager:
Det finns motsvarande för Redigeringstjänster, Söktjänster och Verktyg också. Leta efter rutan Tillträde.