Technologické shrnutí pro seznamy ACL
Toto téma shrnuje informace o spravovaném rozhraní API pro volitelné seznamy řízení přístupu (DACL), systémové seznamy řízení přístupu (SACL) a položky řízení přístupu (ACE). Můžete použít třídy v oboru názvů System.Security.AccessControl k programovému přístupu DACL, SACL a ACE pro několik typů chráněných prostředků v rozhraní .NET Framework verze 2.0 a novější.
Spravované rozhraní API seznamů ACL usnadňuje práci se seznamy ACL lépe, než nespravovaná implementace poskytnutím několika tříd, které se budou nepřetržitě starat o mnoho podrobností. Například není možné vytvořit null DACL ve spravované implementaci a již není nutné se obávat, že omylem vytvoříte nezabezpečené DACL z důvodu nesprávného objednání vašich ACE.
Klíčová slova
Seznam řízení přístupu (ACL), volitelný seznam řízení přístupu (DACL), systémový seznam řízení přístupu (SACL), položka řízení přístupu (ACE), audit ACE
Obory názvů
Související technlogie
Zabezpečení v rozhraní .NET Framework
Základní informace
Volitelný seznam řízení přístupu (DACL), který je někdy zkrácený na ACL, je mechanismus použitý k ochraně prostředků, například souborů a složek pomocí systému Microsoft Windows NT. DACL obsahuje více položek řízení přístupu (ACE), které přiřadí objekt zabezpečení (obvykle uživatelský účet nebo skupina účtů) s pravidlem, které řídí použití prostředku. DACL a ACE umožňují povolit nebo odepřít práva prostředkům založená na oprávněních, které je možné přiřadit uživatelským účtům. Například můžete vytvořit ACE a použít jej pro seznam DACL souboru k zabránění jeho čtení komukoli kromě správce.
Systémový seznam řízení přístupu (SACL), který se někdy nazývá audit ACE, je mechanismus ovládající zprávy o auditu přidružené k prostředku. Podobně jako DACL, SACL obsahuje ACE definující pravidla auditu pro daný prostředek. Audit ACE vám umožňuje zaznamenat úspěšné nebo neúspěšné pokusy o přístup k prostředku, ale liší se od přístupu ACE, protože neurčují účty, které mohou prostředek použít. Například můžete vytvořit ACE a použít jej pro SACL souboru k protokolování všech úspěšných pokusů o otevření souboru.
Třídy ACL v kostce
Následující tabulka uvádí hlavní třídy, které můžete použít pro snadné vytváření a upravování ACL v několika oblastech technologie. Toto není vyčerpávající seznam oboru názvů System.Security.AccessControl, ale spíše seznam primárních tříd, které byste měli používat k práci s ACL.
Technologická oblast |
Třídy |
---|---|
Kryptografické klíče |
|
Adresáře |
|
Popisovače události čekání |
|
Soubory |
|
Mutexy |
|
Klíče registru |
|
Semafory |
Chcete-li se dotázat na stávající informaci ACL pro prostředek nebo použít upravené informace ACL na prostředek, musíte použít jednu z několika metod, které umožňují přístup do ACL existujícího prostředku. Třídy v předchozí tabulce poskytují metody pro vytváření a upravování ACL, ale neposkytují způsob, jak se dotázat nebo použít ACL.
Každý prostředek má přidružené metody, které se používají s ACL během vytvoření prostředku (obvykle přetížení konstruktoru), které načtou ACL pro existující prostředek a použijí ACL pro existující prostředek.
V následující tabulce jsou uvedeny metody používané k získání a nastavení ACL pro každou oblast technologie. Tyto metody jsou umístěny v několika oborech názvů mimo obor názvů System.Security.AccessControl a jsou součástí vysoké úrovně tříd, které představují určitý prostředek. Například pro dotaz na ACL pro zadaný adresář můžete použít metodu Directory.GetAccessControl k získání objektu DirectorySecurity, který zapouzdří DACL a SACL pro adresář. Všimněte si, že některé prostředky, jako jsou například soubory a adresáře, mají několik rovnocenných metod v různých třídách, které umožňují přístup do ACL.
Technologická oblast |
Metody pro získání a nastavení ACL |
---|---|
Kryptografické klíče |
CspParameters.CryptoKeySecurity CspParameters.CspParameters CspParameters.CspParameters |
Adresáře |
DirectoryInfo.GetAccessControl |
Popisovače události čekání |
EventWaitHandle.GetAccessControl EventWaitHandle.SetAccessControl EventWaitHandle.EventWaitHandle |
Soubory |
FileStream.FileStream |
Mutexy |
Mutex.Mutex |
Klíče registru |
|
Semafory |
Semaphore.Semaphore |