Sdílet prostřednictvím


Architektura technologie ACL

Jmenný prostor System.Security.AccessControl poskytuje přístup k seznamům řízení přístupu (ACL) prostřednictvím vhodných tříd, které abstrahují velkou část složitosti systému zabezpečení Windows ACL. Kromě toho obor názvů System.Security.AccessControl obsahuje několik tříd, které poskytují pokročilý přístup k systému zabezpečení Windows ACL.

Rozhraní .NET Framework poskytuje přístup k ACL seznamům pro následující prostředky:

  • Kryptografické klíče

  • Adresáře

  • Popisovače události čekání

  • Soubory

  • Mutexy

  • Klíče registru

  • Semafory

Každý z těchto prostředků má několik tříd, které můžete použít k vytvoření a úpravě ACL seznamů.

Hierarchie ACL tříd

U většiny scénářů můžete použít vyšší úroveň, abstraktní třídy místo pokročilých tříd pro vytvoření a úpravy ACL seznamů. Pro každý prostředek mají třídy vyšší úrovně následující podobu:

  • Třída, která zapouzdřuje volitelný seznam řízení přístupu (DACL) a systémový seznam řízení přístupu (SACL). Tato třída má název <Resource Name>Security. Například třídy FileSecurity a DirectorySecurity zapouzdřují DACL a SACL seznamy pro soubory a složky.

  • Třída, která zapouzdřuje položku řízení přístupu (ACE). Tato třída má název <Resource Name>AccessRule.

  • Třída, která zapouzdřuje audit ACE. Tato třída má název <Resource Name>AuditRule.

  • Několik výčtů, které umožňují vytvořit zvláštní přístup a pravidla auditování.

  • Úplný seznam všech ACL tříd vysoké úrovně naleznete v tématu Technologické shrnutí pro seznamy ACL.

Přidávání položek řízení přístupu (ACE) do ACL seznamů

Po vytvoření ACE položky pomocí jedné ze tříd pravidel přístupu nebo pravidel pro auditování, můžete k prostředku přidat pravidlo nebo jej použít k odebrání existujícího pravidla z prostředku. Například můžete vytvořit pravidlo pomocí třídy FileSystemAccessRule určující, že pouze správci mohou otevřít soubor. Potom můžete přidat toto pravidlo do objektu FileSecurity nebo z objektu FileSecurity podobné pravidlo odebrat.

Přidání ACE položky, která uděluje přístup nezaručuje, že objekt zabezpečení obdrží přístup, protože pravidlo odepření vždy nahrazuje pravidlo povolení. Například pokud do souboru přidáte pravidlo povolení přístupu pro systémový účet, tak to neznamená, že osoba bude mít přístup, protože jim také podle jiného pravidla může být přístup k souboru odepřen.

Každý objekt <Resource Name>Security asociovaný s prostředkem poskytuje následující metody pro přidání nebo odebrání pravidel přístupu a pravidel pro auditování.

Metoda

Popis

AddAccessRule

a

AddAuditRule

Vyhledá pravidlo přístupu nebo pravidlo pro auditování, které může být sloučeno s novým pravidlem. Pokud žádné nenajde, přidá nové pravidlo.

SetAccessRule

Odebere všechny pravidla pro řízení přístupu se stejným uživatelem a hodnotou AccessControlType (Allow nebo Deny) jako specifikovaným pravidlem, potom přidá specifikované pravidlo.

SetAuditRule

Odstraní všechna pravidla pro auditování se stejným uživatelem jako specifikované pravidlo, bez ohledu na hodnotu AuditFlags. Potom přidá zadané pravidlo.

ResetAccessRule

Odebere všechny pravidla pro řízení přístupu se stejným uživatelem jako specifikované pravidlo bez ohledu na hodnotu AccessControlType. Potom přidá specifikované pravidlo.

RemoveAccessRule

Vyhledá pravidlo pro řízení přístupu se stejným uživatel, kompatibilními příznaky dědičnosti a šíření a hodnotou AccessControlType (Allow nebo Deny) jako specifikovaným pravidlem. Pokud zjistí, že práva obsažená v specifikovaném pravidle přístupu jsou z pravidla odstraněna.

RemoveAuditRule

Vyhledá pravidlo řízení auditu se stejným uživatelem jako specifikované pravidlo a s kompatibilními příznaky dědičnosti a šíření. Pokud zjistí, že práva obsažená ve specifikovaném pravidle jsou z pravidla odstraněna.

RemoveAccessRuleAll

Vyhledá všechna pravidla přístupu se stejným uživatelem a hodnotou AccessControlType (Allow nebo Deny) jako specifikovaným pravidlem. Pokud je najde, tak je odebere.

RemoveAuditRuleAll

Vyhledá všechny pravidla pro auditování se stejným uživatelem jako specifikované pravidlo. Pokud je najde, tak je odstraní.

RemoveAccessRuleSpecific

a

RemoveAuditRuleSpecific

Vyhledá pravidlo přístupu nebo pravidlo pro auditování, které přesně odpovídá specifikovanému pravidlu. Jestliže ho najde, tak ho odebere.

AddAccessRule

a

AddAuditRule

Vyhledá pravidlo přístupu nebo pravidlo pro auditování, které může být sloučeno s novým pravidlem. Pokud žádné nenajde, přidá nové pravidlo.

Získání a nastavení seznamů řízení přístupu

Každý chráněný prostředek má metody, které slouží k získání a nastavení objektu <Resource Name>Security asociovaného s prostředkem. Chcete-li získat existující ACL seznamy pro určitý prostředek, použijte jednu z metod GetAccessControl asociovaných s prostředkem. Chcete-li rozšířit změny zpět k prostředku, použijte jednu z metod SetAccesscontrol asociovaných s prostředkem. Všimněte si, že změny nejsou šířeny zpět k prostředku, dokud je explicitně znovu neaplikujete pomocí jedné z set metod.

Úplný seznam všech get a set metod pro každý chráněný prostředek naleznete v tématu Technologické shrnutí pro seznamy ACL.

Viz také

Další zdroje

Přehled technologie ACL

Zabezpečení v rozhraní .NET Framework