Behörighetsadministration för användare, grupp och åtkomst

Att ge åtkomst till en CRX-databas omfattar flera ämnen:

De grundläggande elementen är:

AnvändarkontonCRX autentiserar åtkomsten genom att identifiera och verifiera en användare (av en person eller ett annat program) enligt informationen på användarkontot.

I CRX är varje användarkonto en nod på arbetsytan. Ett CRX-användarkonto har följande egenskaper:

  • Den representerar en användare av CRX.

  • Den innehåller ett användarnamn och lösenord.

  • Gäller den arbetsytan.

  • Den kan inte ha underanvändare. För hierarkiska åtkomsträttigheter bör du använda grupper.

  • Du kan ange åtkomsträttigheter för användarkontot.

    För att förenkla hanteringen rekommenderar vi dock att du (i de flesta fall) tilldelar åtkomsträttigheter till gruppkonton. Att tilldela åtkomsträttigheter för varje enskild användare blir snabbt mycket svårt att hantera (undantagen är vissa systemanvändare när det bara finns en eller två instanser).

GruppkontonGruppkonton är samlingar av användare och/eller andra grupper. De används för att förenkla hanteringen eftersom en ändring av de åtkomsträttigheter som tilldelats en grupp automatiskt tillämpas på alla användare i gruppen. En användare behöver inte tillhöra någon grupp, men tillhör ofta flera.

I CRX har en grupp följande egenskaper:

  • Den representerar en grupp användare med gemensamma åtkomsträttigheter. Till exempel författare eller utvecklare.
  • Gäller den arbetsytan.
  • Den kan ha medlemmar. dessa kan vara enskilda användare eller andra grupper.
  • Hierarkisk gruppering kan uppnås med medlemsrelationer. Du kan inte placera en grupp direkt under en annan grupp i databasen.
  • Du kan definiera åtkomsträttigheter för alla gruppmedlemmar.

Access RightsCRX använder åtkomsträttigheter för att styra åtkomsten till specifika delar av databasen.

Detta görs genom att tilldela behörigheter för att antingen tillåta eller neka åtkomst till en resurs (nod eller sökväg) i databasen. Eftersom olika behörigheter kan tilldelas måste de utvärderas för att avgöra vilken kombination som är tillämplig för den aktuella begäran.

Med CRX kan du konfigurera åtkomsträttigheter för både användar- och gruppkonton. Samma grundläggande utvärderingsprinciper tillämpas sedan på båda.

Hur åtkomsträttigheter utvärderas

OBSERVERA

CRX implementerar åtkomstkontroll enligt definitionen i JSR-283.

En standardinstallation av en CRX-databas är konfigurerad att använda resursbaserade åtkomstkontrollistor. Detta är en möjlig implementering av åtkomstkontrollen JSR-283 och en av implementeringarna i Jackrabbit.

Ämnen och huvudkonton

CRX använder två viktiga begrepp vid utvärdering av åtkomsträttigheter:

  • Ett huvudnamn är en enhet som har åtkomsträttigheter. Huvudposter är:

    • Ett användarkonto

    • Ett gruppkonto

      Om ett användarkonto tillhör en eller flera grupper är det även associerat med vart och ett av dessa gruppobjekt.

  • Ett ämne används för att representera källan för en begäran.

    Den används för att konsolidera de åtkomsträttigheter som är tillämpliga för den begäran. Dessa hämtas från:

    • Användarens huvudnamn

      De rättigheter som du tilldelar direkt till användarkontot.

    • Alla gruppobjekt som är associerade med den användaren

      Alla rättigheter som tilldelats någon av grupperna som användaren tillhör.
      Resultatet används sedan för att tillåta eller neka åtkomst till den begärda resursen.

Kompilera listan över åtkomsträttigheter för ett ämne

I CRX är motivet beroende av:

  • användarens huvudnamn
  • alla gruppobjekt som är associerade med den användaren

Den förteckning över åtkomsträttigheter som är tillämpliga för föremålet är uppbyggd på följande:

  • de rättigheter som du tilldelar direkt till användarkontot
  • plus alla rättigheter som tilldelats någon av grupperna som användaren tillhör

chlimage_1-56

OBSERVERA
  • CRX tar ingen hänsyn till användarhierarkin när listan kompileras.
  • CRX använder bara en grupphierarki när du tar med en grupp som medlem i en annan grupp. Det finns inget automatiskt arv av gruppbehörigheter.
  • Den ordning som du anger grupperna i påverkar inte åtkomsträttigheterna.

Löser begäran och åtkomsträttigheter

När CRX hanterar begäran jämför den åtkomstbegäran från ämnet med åtkomstkontrollistan på databasnoden:

Så om Linda begär att få uppdatera noden /features i följande databasstruktur:

chlimage_1-57

Prioritetsordning

Åtkomsträttigheterna i CRX utvärderas enligt följande:

  • Användarprinciper har alltid företräde framför grupprincipobjekt oavsett:

    • deras ordning i åtkomstkontrollistan
    • sin position i nodhierarkin
  • För ett givet huvudobjekt finns (högst) 1 neka och 1 tillåt post på en viss nod. Implementeringen rensar alltid bort redundanta poster och ser till att samma privilegium inte finns med i både Tillåt- och Neka-posterna.

OBSERVERA

Den här utvärderingsprocessen passar för den resursbaserade åtkomstkontrollen i en standard-CRX-installation.

Ta två exempel där användaren aUser är medlem i gruppen aGroup:

   + parentNode
     + acl
       + ace: aUser - deny - write
     + childNode
       + acl
         + ace: aGroup - allow - write
       + grandChildNode

I ovanstående fall:

  • aUser saknar skrivbehörighet grandChildNode.
   + parentNode
     + acl
       + ace: aUser - deny - write
     + childNode
       + acl
         + ace: aGroup - allow - write
         + ace: aUser - deny - write
       + grandChildNode

I detta fall:

  • aUser saknar skrivbehörighet grandChildNode.
  • Den andra ACE för aUser är redundant.

Åtkomsträttigheter från flera gruppobjekt utvärderas baserat på deras ordning, både i hierarkin och i en enda åtkomstkontrollista.

Bästa praxis

I följande tabell visas några rekommendationer och metodtips:

Rekommendation... Orsak...
Använd grupper

Undvik att tilldela åtkomsträttigheter per användare. Det finns flera orsaker till detta:

  • Du har många fler användare än grupper, så grupper förenklar strukturen.
  • Grupper ger en översikt över alla konton.
  • Arv är enklare med grupper.
  • Användarna kommer och går. Grupper är långsiktiga.
Var positiv

Använd alltid Allow-satser för att ange åtkomsträttigheter för grupprincipobjektet (när det är möjligt). Undvik att använda programsatsen Neka.

Gruppobjekt utvärderas i ordning, både i hierarkin och i ordning i en enda åtkomstkontrollista.

Behåll det enkelt

Att investera lite tid och fundera när man konfigurerar en ny installation kommer att återbetalas väl.

Att använda en tydlig struktur förenklar det pågående underhållet och administrationen, vilket säkerställer att både dina nuvarande kollegor och/eller framtida efterföljare enkelt kan förstå vad som håller på att implementeras.

Testa Använd en testinstallation för att öva och se till att du förstår relationen mellan olika användare och grupper.
Standardanvändare/grupper Uppdatera alltid standardanvändare och standardgrupper omedelbart efter installationen för att förebygga säkerhetsproblem.

Användaradministration

En standarddialogruta används för Användaradministration.

Du måste vara inloggad på rätt arbetsyta och sedan kan du öppna dialogrutan från båda:

  • länken Användaradministration på huvudkonsolen för CRX
  • menyn Säkerhet i CRX Explorer

chlimage_1-58

Egenskaper

  • Användar-ID

    Kortnamn för kontot som används vid åtkomst till CRX.

  • Huvudnamn

    Ett fullständigt textnamn för kontot.

  • Lösenord

    Behövs vid åtkomst till CRX med det här kontot.

  • ntlmhash

    Tilldelad automatiskt för varje nytt konto och uppdateras när lösenordet ändras.

  • Du kan lägga till nya egenskaper genom att definiera namn, typ och värde. Klicka på Spara (grön bocksymbol) för varje ny egenskap.

Gruppmedlemskap

Detta visar alla grupper som kontot tillhör. Den ärvda kolumnen anger medlemskap som har ärvts som ett resultat av medlemskap i en annan grupp.

Om du klickar på ett GroupID (om tillgängligt) öppnas gruppadministration för den gruppen.

Personifierare

Med personifieringsfunktionen kan en användare arbeta för en annan användares räkning.

Det innebär att ett användarkonto kan ange andra konton (användare eller grupp) som kan användas med deras konto. Med andra ord, om användare-B tillåts personifiera användare-A, kan användare-B vidta åtgärder med hjälp av den fullständiga kontoinformationen för användare-A (inklusive ID, namn och åtkomsträttigheter).

Detta gör att persondatorkonton kan slutföra uppgifter som om de använde det konto de personifierar. t.ex. under frånvaro eller för att på kort sikt dela en för hög belastning.

Om ett konto personifierar ett annat är det väldigt svårt att se. Loggfilerna innehåller ingen information om att personifiering har skett för händelserna. Så om användare-B personifierar användare-A ser alla händelser ut som om de utförts av användare-A personligen.

Skapa ett användarkonto

  1. Öppna dialogrutan Användaradministration.

  2. Klicka på Skapa användare.

  3. Sedan kan du ange Egenskaper:

    • ​Används som kontonamn.
    • ​Lösenord krävs vid inloggning.
    • Principal Name för att ange ett fullständigt textnamn.
    • Mellanliggande sökväg som kan användas för att skapa en trädstruktur.
  4. Klicka på Spara (grön bocksymbol).

  5. Dialogrutan utökas så att du kan:

    1. Konfigurera Egenskaper.
    2. Se Gruppmedlemskap.
    3. Definiera personifierare.
OBSERVERA

Prestandaförluster kan ibland ses när nya användare registreras i installationer som har ett stort antal av följande:

  • användare
  • grupper med många medlemmar

Uppdatera ett användarkonto

  1. Med dialogrutan Användaradministration öppnar du listvyn för alla konton.
  2. Navigera genom trädstrukturen.
  3. Klicka på det konto du vill öppna för redigering.
  4. Gör en ändring och klicka sedan på Spara (grön bocksymbol) för den posten.
  5. Klicka på Stäng för att slutföra, eller Lista… om du vill återgå till listan över alla användarkonton.

Ta bort ett användarkonto

  1. Med dialogrutan Användaradministration öppnar du listvyn för alla konton.
  2. Navigera genom trädstrukturen.
  3. Välj önskat konto och klicka på Ta bort användare; kontot tas bort omedelbart.
OBSERVERA

Detta tar bort noden för det här huvudkontot från databasen.

Åtkomsthögerposter tas inte bort. Detta garanterar den historiska integriteten.

Definiera egenskaper

Du kan definiera egenskaper för antingen nya eller befintliga konton:

  1. Öppna dialogrutan Användaradministration för det aktuella kontot.
  2. Definiera ett egenskapsnamn.
  3. Välj Typ i listrutan.
  4. Definiera värdet.
  5. Klicka på Spara (grön klicksymbol) för den nya egenskapen.

Befintliga egenskaper kan tas bort med papperskorgssymbolen.

Med undantag för Lösenordet går det inte att redigera egenskaper, de måste tas bort och återskapas.

Ändra lösenordet

Lösenordet är en speciell egenskap som du kan ändra genom att klicka på länken Ändra lösenord.

Du kan också ändra lösenordet till ditt eget användarkonto på menyn Säkerhet i CRX Explorer.

Definiera en personifierare

Du kan definiera personifierare för antingen nya eller befintliga konton:

  1. Öppna dialogrutan Användaradministration för det aktuella kontot.

  2. Ange vilket konto som ska få personifiera det kontot.

    Du kan använda Bläddra… för att välja ett befintligt konto.

  3. Klicka på Spara (grön bocksymbol) för den nya egenskapen.

Gruppadministration

En standarddialogruta används för gruppadministration.

Du måste vara inloggad på rätt arbetsyta och sedan kan du öppna dialogrutan från båda:

  • länken Gruppadministration på huvudkonsolen för CRX
  • menyn Säkerhet i CRX Explorer

chlimage_1-8

Egenskaper

  • GruppID

    Kortnamn för gruppkontot.

  • Huvudnamn

    Ett fullständigt textnamn för gruppkontot.

  • Du kan lägga till nya egenskaper genom att definiera namn, typ och värde. Klicka på Spara (grön bocksymbol) för varje ny egenskap.

  • Medlemmar

    Du kan lägga till användare eller andra grupper som medlemmar i den här gruppen.

Gruppmedlemskap

Detta visar alla grupper som det aktuella gruppkontot tillhör. Den ärvda kolumnen anger medlemskap som har ärvts som ett resultat av medlemskap i en annan grupp.

Om du klickar på ett GroupID öppnas dialogrutan för den gruppen.

Medlemmar

Visar alla konton (användare och/eller grupper) som är medlemmar i den aktuella gruppen.

Kolumnen Ärvd anger medlemskap som har ärvts som ett resultat av medlemskap i en annan grupp.

OBSERVERA

När rollen Ägare, Redigerare eller Visningsprogram tilldelas till en användare i en resursmapp skapas en ny grupp. Gruppnamnet har formatet mac-default-<foldername> för varje mapp som rollerna är definierade för.

Skapa ett gruppkonto

  1. Öppna dialogrutan Gruppadministration.

  2. Klicka på Skapa grupp.

  3. Sedan kan du ange Egenskaper:

    • Principal Name för att ange ett fullständigt textnamn.
    • Mellanliggande sökväg som kan användas för att skapa en trädstruktur.
  4. Klicka på Spara (grön bocksymbol).

  5. Dialogrutan utökas så att du kan:

    1. Konfigurera Egenskaper.
    2. Se Gruppmedlemskap.
    3. Hantera medlemmar.

Uppdatera ett gruppkonto

  1. Med dialogrutan Gruppadministration öppnar du listvyn för alla konton.
  2. Navigera genom trädstrukturen.
  3. Klicka på det konto du vill öppna för redigering.
  4. Gör en ändring och klicka sedan på Spara (grön bocksymbol) för den posten.
  5. Klicka på Stäng för att slutföra, eller Lista… om du vill återgå till listan över alla gruppkonton.

Ta bort ett gruppkonto

  1. Med dialogrutan Gruppadministration öppnar du listvyn för alla konton.
  2. Navigera genom trädstrukturen.
  3. Välj önskat konto och klicka på Ta bort grupp; kontot tas bort omedelbart.
OBSERVERA

Detta tar bort noden för det här huvudkontot från databasen.

Åtkomsthögerposter tas inte bort. Detta garanterar den historiska integriteten.

Definiera egenskaper

Du kan definiera egenskaper för nya eller befintliga konton:

  1. Öppna dialogrutan Gruppadministration för det aktuella kontot.
  2. Definiera ett egenskapsnamn.
  3. Välj Typ i listrutan.
  4. Definiera värdet.
  5. Klicka på Spara (grön bocksymbol) för den nya egenskapen.

Befintliga egenskaper kan tas bort med papperskorgssymbolen.

Medlemmar

Du kan lägga till medlemmar i den aktuella gruppen:

  1. Öppna dialogrutan Gruppadministration för det aktuella kontot.

  2. Antingen:

    • Ange namnet på den obligatoriska medlemmen (användar- eller gruppkonto).
    • Eller använd Bläddra… om du vill söka efter och välja det huvudkonto (användar- eller gruppkonto) som du vill lägga till.
  3. Klicka på Spara (grön bocksymbol) för den nya egenskapen.

Eller ta bort en befintlig medlem med papperskorgssymbolen.

Behörighetshantering

Med fliken Åtkomstkontroll på CRXDE Lite kan du definiera åtkomstkontrollprinciper och tilldela de relaterade behörigheterna.

För Aktuell sökväg väljer du den resurs som krävs i den vänstra rutan, fliken Åtkomstkontroll i den nedre högra rutan:

crx_accescontrol_tab

Policyerna kategoriseras enligt:

  • Tillämpliga åtkomstkontrollprinciper

    Dessa profiler kan tillämpas.

    Dessa profiler är tillgängliga för att skapa en lokal profil. När du har valt och lagt till en tillämplig princip blir den en lokal princip.

  • Principer för lokal åtkomstkontroll

    Detta är åtkomstkontrollprinciper som du har tillämpat. Du kan sedan uppdatera, beställa eller ta bort dem.

    En lokal princip åsidosätter alla principer som ärvs från den överordnade principen.

  • Effektiva åtkomstkontrollprinciper

    Detta är de åtkomstkontrollprinciper som nu gäller för alla åtkomstbegäranden. De visar de aggregerade policyer som härletts från både lokala policyer och eventuella ärvda från det överordnade.

Välj profil

Du kan välja profiler för:

  • Aktuell bana

    Som i exemplet ovan väljer du en resurs i databasen. Profiler för den här "aktuella sökvägen" visas.

  • Databas

    Väljer åtkomstkontroll på databasnivå. Om du till exempel anger privilegiet jcr:namespaceManagement, som bara är relevant för databasen, är det inte en nod.

  • kapitalbelopp

    Ett huvudkonto som är registrerat i databasen.

    Du kan antingen skriva in namnet Principal eller klicka på ikonen till höger om fältet för att öppna dialogrutan Välj säkerhetsobjekt.

    Detta gör att du kan söka efter en användare eller grupp. Välj önskat huvudkonto i listan och klicka sedan på OK för att överföra värdet tillbaka till föregående dialogruta.

crx_access_control_selectpal

OBSERVERA

För att förenkla hanteringen rekommenderar vi att du tilldelar åtkomsträttigheter till gruppkonton, inte enskilda användarkonton.

Det är enklare att hantera ett fåtal grupper än många användarkonton.

Behörighet

Följande behörigheter är tillgängliga när du lägger till en åtkomstkontrollpost (mer information finns i API):

Namn på privilegium Vilken styr privilegiet att...
jcr:read Hämta en nod och läs dess egenskaper och värden.
rep:write Detta är ett helkaninsspecifikt aggregeringsprivilegium för jcr:write och jcr:nodeTypeManagement.
jcr:all Det här är ett aggregerat privilegium som innehåller alla andra fördefinierade privilegier.
Avancerat
crx:replicate Utför replikering av en nod.
jcr:addChildNodes Skapa underordnade noder för en nod.
jcr:lifecycleManagement Utför livscykelåtgärder på en nod.
jcr:lockManagement Låsa och låsa upp en nod; uppdatera ett lås.
jcr:modifyAccessControl Ändra en nods åtkomstkontrollprinciper.
jcr:modifyProperties Skapa, ändra och ta bort egenskaperna för en nod.
jcr:namespaceManagement Registrera, avregistrera och ändra namnutrymmesdefinitioner.
jcr:nodeTypeDefinitionManagement Importera nodtypsdefinitioner till databasen.
jcr:nodeTypeManagement Lägg till och ta bort blandade nodtyper och ändra den primära nodtypen för en nod. Detta inkluderar även alla anrop till importmetoderna Node.addNode och XML där den nya nodens mixin eller primära typ uttryckligen anges.
jcr:readAccessControl Läs en nods åtkomstkontrollprincip.
jcr:removeChildNodes Ta bort underordnade noder för en nod.
jcr:removeNode Ta bort en nod.
jcr:retentionManagement Utför kvarhållningsåtgärder på en nod.
jcr:versionManagement Utför versionsåtgärder på en nod.
jcr:workspaceManagement Skapa och ta bort arbetsytor med JCR API.
jcr:write Detta är ett aggregeringsprivilegium som innehåller:
- jcr:modifyProperties
- jcr:addChildNodes
- jcr:removeNode
- jcr:removeChildNodes
rep:privilegeManagement Registrera ett nytt privilegium.

Registrerar nya behörigheter

Du kan även registrera nya behörigheter:

  1. Välj Verktyg i verktygsfältet och Behörigheter för att visa de behörigheter som för närvarande är registrerade.

    ac_privilegier

  2. Använd ikonen Registreringsbehörighet (+) för att öppna dialogrutan och definiera ett nytt privilegium:

    ac_privilegieregister

  3. Klicka på OK för att spara. Privilegiet är nu tillgängligt för val.

Lägga till en åtkomstkontrollpost

  1. Markera resursen och öppna fliken Åtkomstkontroll.

  2. Om du vill lägga till en ny Local Access Control Policies klickar du på ikonen + till höger om listan Tillämplig åtkomstkontrollprincip:

    crx_accescontrol_applicable

  3. En ny post visas under Lokala åtkomstkontrollprinciper:

    crx_accescontrol_newlocal

  4. Klicka på ikonen + för att lägga till en ny post:

    crx_accescontrol_addentry

    OBSERVERA

    För närvarande krävs en tillfällig lösning för att ange en tom sträng.

    Därför måste du använda "".

  5. Definiera din åtkomstkontrollprincip och klicka på OK för att spara. Din nya policy kommer att:

    • visas under Princip för lokal åtkomstkontroll
    • ändringarna återspeglas i Effektiva åtkomstkontrollprinciper.

CRX validerar ditt val; för ett givet huvudkonto finns (högst) 1 neka och 1 tillåt post på en viss nod. Implementeringen rensar alltid bort redundanta poster och ser till att samma privilegium inte finns med i både Tillåt- och Neka-posterna.

Principer för lokal åtkomstkontroll vid beställning

Ordningen i listan anger i vilken ordning profilerna tillämpas.

  1. I tabellen Local Access Control Policies markerar du den önskade posten och drar den till den nya positionen i tabellen.

    crx_accescontrol_reorder

  2. Ändringarna visas i båda tabellerna för Local och Effektiva åtkomstkontrollprinciper.

Ta bort en åtkomstkontrollprincip

  1. I tabellen Local Access Control Policies klickar du på den röda ikonen (-) till höger om posten.
  2. Posten tas bort från båda tabellerna för Local och Effektiva åtkomstkontrollprinciper.

Testa en åtkomstkontrollprincip

  1. I verktygsfältet CRXDE Lite väljer du Verktyg och sedan Testa åtkomstkontroll….

  2. En ny dialogruta öppnas i den övre högra rutan. Välj den sökväg och/eller Principal som du vill testa.

  3. Klicka på Testa för att se resultatet av din markering:

    crx_accescontrol_test

På denna sida