Att ge åtkomst till en CRX-databas omfattar flera ämnen:
De grundläggande elementen är:
Användarkonton - CRX autentiserar åtkomsten genom att identifiera och verifiera en användare (av en person eller ett annat program) enligt de uppgifter som finns 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 ett lösenord.
Gäller för 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 Adobe att du (i de flesta fall) tilldelar åtkomsträttigheter till gruppkonton. Att tilldela åtkomsträttigheter för varje enskild användare blir snabbt svårt att hantera (undantagen är vissa systemanvändare när det bara finns en eller två instanser).
Gruppkonton - Gruppkonton ä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:
Åtkomsträttigheter - CRX 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.
CRX-implementeringar åtkomstkontroll enligt definition 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.
CRX använder två viktiga begrepp vid utvärdering av åtkomsträttigheter:
A huvudnamn är en enhet som har nyttjanderätt. 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.
A ä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 tilldelas till 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.
I CRX beror motivet på:
Den förteckning över åtkomsträttigheter som är tillämpliga för föremålet är uppbyggd på följande:
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 /features
nod i följande databasstruktur:
Åtkomsträttigheterna i CRX utvärderas enligt följande:
Användarprinciper har alltid företräde framför grupprincipobjekt oavsett:
För ett givet huvudobjekt finns (som mest) ett 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.
Den här utvärderingsprocessen är lämplig 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 för 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 för grandChildNode
.aUser
är överflödigt.Åtkomsträttigheter från flera gruppobjekt utvärderas baserat på deras ordning, både i hierarkin och i en enda åtkomstkontrollista.
I följande tabell visas några rekommendationer och metodtips:
Rekommendation... | Orsak... |
Använd grupper | Undvik att tilldela behörigheter per användare. Det finns flera orsaker till detta:
|
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 du konfigurerar en ny installation är väl återbetalt. Genom att använda en tydlig struktur förenklas 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 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. |
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:
Egenskaper
Användar-ID
Kortnamn för kontot 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 agera 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, till exempel under en frånvaro, eller dela en överbelastad belastning på kort sikt.
Om ett konto personifierar ett annat är det 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 kan alla händelser se ut som om de har utförts av användare-A personligen.
Öppna Användaradministration -dialogrutan.
Klicka Skapa användare.
Sedan kan du ange Egenskaper:
Klicka på Spara (grön bocksymbol).
Dialogrutan är utökad så att du kan göra följande:
Prestandaförluster kan ibland ses när nya användare registreras i installationer som har ett stort antal av följande:
Detta tar bort noden för det här huvudkontot från databasen.
Åtkomsthögerposter tas inte bort. Detta garanterar den historiska integriteten.
Du kan definiera Egenskaper för nya eller befintliga konton:
Befintliga egenskaper kan tas bort med papperskorgen.
Förutom lösenordet går det inte att redigera egenskaper, de måste tas bort och återskapas.
The Lösenord är en specialegenskap som du kan ändra genom att klicka på Ändra lösenord länk.
Du kan också ändra lösenordet till ditt eget användarkonto från Säkerhet i CRX Explorer.
Du kan definiera personifierare för antingen nya eller befintliga konton:
Öppna Användaradministration för rätt konto.
Ange vilket konto som ska få personifiera det kontot.
Du kan använda Bläddra… för att välja ett befintligt konto.
Klicka på Spara (grön bocksymbol) för den nya egenskapen.
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:
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.
När 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.
The Ärvd kolumn anger medlemskap som har ärvts som ett resultat av medlemskap i en annan grupp.
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.
Öppna Gruppadministration -dialogrutan.
Klicka Skapa grupp.
Sedan kan du ange Egenskaper:
Klicka på Spara (grön bocksymbol).
Dialogrutan är utökad så att du kan:
Detta tar bort noden för det här huvudkontot från databasen.
Åtkomsthögerposter tas inte bort. Detta garanterar den historiska integriteten.
Du kan definiera egenskaper för nya eller befintliga konton:
Befintliga egenskaper kan tas bort med papperskorgen.
Du kan lägga till medlemmar i den aktuella gruppen:
Öppna Gruppadministration för rätt konto.
Antingen:
Klicka på Spara (grön bocksymbol) för den nya egenskapen.
Eller ta bort en befintlig medlem med papperskorgen.
Med Åtkomstkontroll på fliken CRXDE Lite kan du definiera åtkomstkontrollprinciper och tilldela de relaterade behörigheterna.
Till exempel Aktuell bana Välj önskad resurs i den vänstra rutan på fliken Åtkomstkontroll i den nedre högra rutan:
Policyerna kategoriseras enligt:
Tillämpliga åtkomstkontrollprinciper
Dessa profiler kan tillämpas.
Det här är profiler som är tillgängliga för att skapa en lokal profil. När du väljer och lägger till en tillämplig profil blir den en lokal profil.
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.
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å. När du till exempel anger jcr:namespaceManagement
privilegium, som bara är relevant för databasen, inte en nod.
kapitalbelopp
Ett huvudkonto som är registrerat i databasen.
Du kan antingen skriva i kapitalbelopp eller klicka på ikonen till höger om fältet för att öppna Välj huvudkonto -dialogrutan.
Detta gör att du kan Sök för 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.
För att förenkla hanteringen rekommenderar Adobe 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.
Följande behörigheter är tillgängliga när du lägger till en åtkomstkontrollpost (se Säkerhets-API för fullständig information):
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 Jackrabbit-specifikt 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ås och lås 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:t. |
jcr:write |
Detta är ett sammanställningsprivilegium som innehåller: - jcr:modifyProperties - jcr:addChildNodes - jcr:removeNode - jcr:removeChildNodes |
rep:privilegeManagement |
Registrera ett nytt privilegium. |
Du kan även registrera nya behörigheter:
Välj verktyg sedan Behörighet för att visa de behörigheter som för närvarande är registrerade.
Använd Registreringsprivilegium ikon (+) så att du kan definiera ett privilegium:
Klicka OK att spara. Privilegiet är nu tillgängligt för val.
Välj resursen och öppna Åtkomstkontroll -fliken.
Lägga till en ny Principer för lokal åtkomstkontroll klickar du på + ikonen till höger om Tillämplig åtkomstkontrollprincip lista:
En ny post visas under Principer för lokal åtkomstkontroll:
Klicka på + så att du kan lägga till en post:
För närvarande krävs en tillfällig lösning för att ange en tom sträng.
För detta måste du använda ""
.
Definiera din åtkomstkontrollprincip och klicka OK att spara. Din nya policy är:
CRX validerar ditt val. För ett givet huvudobjekt finns (som mest) en neka och en 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.
Ordningen i listan anger i vilken ordning profilerna tillämpas.
I tabellen Principer för lokal åtkomstkontroll markerar du den önskade posten och drar den till den nya positionen i tabellen.
Ändringarna visas i båda tabellerna för Lokal och Effektiva åtkomstkontrollprinciper.
Välj i verktygsfältet CRXDE Lite verktyg sedan Testa åtkomstkontroll….
En ny dialogruta öppnas i den övre högra rutan. Välj Bana och/eller kapitalbelopp som du vill testa.
Klicka Testa för att se resultaten av markeringen: