Sdílet prostřednictvím


Objekty zabezpečení a identity

Spravovaný kód může zjistit identitu nebo roli objektu zabezpečení prostřednictvím objektu zabezpečení, který obsahuje odkaz na objekt Identita. Může to být užitečné pro porovnání objektů identity a zabezpečení do známých pojmů jako uživatelské a skupinové účty. Ve většině síťových prostředí, uživatelské účty představují uživatele nebo programy, zatímco skupinové účty představují určité kategorie uživatel a práv, které mohou mít. Podobně objekty identity rozhraní .NET Framework představují uživatele, zatímco role představují členství a kontexty zabezpečení. V rozhraní .NET Framework zapouzdří objekt zabezpečení objekt identity i role. Aplikace rozhraní .NET framework udělují práva objektu zabezpečení na základě jeho identity nebo častěji členství v roli.

Objekty identity

Objekt identity zapouzdřuje informace o uživateli nebo ověřovaném subjektu. Na jejich základní úrovni objekty identity obsahují název a typ ověření. Název může být jak jméno uživatele, tak i název účtu systému Windows, zatímco typ ověřování může být buď protokol podporovaného přihlášení, jako je například protokol Kerberos V5, nebo vlastní hodnota. Rozhraní .NET Framework definuje objekt GenericIdentity, který lze použít pro většinu vlastních scénářů přihlašování a více specializovaný objekt WindowsIdentity, který lze použít, pokud chcete, aby aplikace spoléhala na ověřování systému Windows. Navíc můžete definovat svou vlastní třídu identity, která zapouzdří vlastní uživatelské informace.

Rozhraní IIdentity definuje vlastnosti pro přístup k názvu a typu ověřování, jako je například protokol Kerberos V5 nebo protokol NTLM. Všechny třídy Identita implementují rozhraní IIdentity. Neexistuje nutná relace mezi objektem Identita a tokenem procesu systému Windows NT, pod kterým je aktuálně prováděno vlákno. Avšak pokud objekt Identita je objekt WindowsIdentity, identita je považována, že představuje token zabezpečení systému Windows NT.

Objekty zabezpečení

Objekt zabezpečení představuje kontext zabezpečení v němž je spuštěn kód. Aplikace, které implementují zabezpečení založené na rolích, udělují práva na základě role spojené s objektem zabezpečení. Podobně jako objekty identity rozhraní .NET Framework nabízí objekt GenericPrincipal a objekt WindowsPrincipal. Můžete také definovat své vlastní třídy zabezpečení.

Rozhraní IPrincipal definuje vlastnosti pro přístup přidruženého objektu Identita, jakož i metoda pro určování, zda uživatel identifikován objektem zabezpečení je členem dané role. Všechny třídy zabezpečení implementují rozhraní IPrincipal stejně jako jakékoli další vlastnosti a metody, které jsou nezbytné. Například modul CLR (Common Language Runtime) poskytuje třídu WindowsPrincipal, které implementuje další funkce pro mapování členství ve skupinách systému Windows NT nebo Windows 2000 k rolím.

Objekt zabezpečení je vázán na kontext objektu volání (CallContext) v rámci domény aplikace (AppDomain). Výchozí kontext volání je vytvořen vždy s každou novou doménou aplikace, takže je vždy k dispozici kontext volání k přijmutí objektu zabezpečení. Při vytvoření nového vlákna je vytvořen objekt CallContext také pro vlákno. Odkaz na objekt zabezpečení je automaticky zkopírován z vytvářeného vlákna na CallContext nového vlákna. Pokud modul runtime nemůže určit, který objekt zabezpečení patří tvůrci vlákna, následuje výchozí zásady pro vytvoření objektu zabezpečení a Identity.

Konfigurovatelné zásady specifické pro doménu aplikace definují pravidla pro rozhodování, jaký typ objektu zabezpečení přidružit nové doméně aplikace. Pokud to umožňují zásady zabezpečení, modul runtime může vytvořit objekty zabezpečení a Identity, které reflektují token operačního systému asociovaný s aktuálně prováděným vláknem. Ve výchozím nastavení používá modul runtime objekty zabezpečení a Identity, které představují neověřené uživatele. Modul runtime nevytváří tyto výchozí objekty zabezpečení a Identity, dokud se kód nepokusí o přístup k nim.

Důvěryhodný kód, který vytváří doménu aplikace, může nastavit zásady domény aplikace, která řídí konstrukci výchozích objektů zabezpečení a Identity. Tyto zásady specifické pro doménu aplikace platí pro všechny spuštěné vlákna v dané doméně aplikace. Nespravovaný, důvěryhodný hostitel ze své podstaty má možnost tuto zásadu nastavit, ale spravovaný kód, který nastaví tuto zásadu, musí mít System.Security.Permissions.SecurityPermission pro ovládání zásad domény.

Při přenosu objektu zabezpečení mezi doménami aplikace, ale v rámci stejného procesu (a tedy ve stejném počítači), vzdálená infrastruktura zkopíruje odkaz na objekt zabezpečení přidružený kontextu volajícího na volaný kontext.

Viz také

Úkoly

Postupy: Vytvoření objektu WindowsPrincipal

Postupy: Vytvoření objektů GenericPrincipal a GenericIdentity

Koncepty

Nahrazení objektu zabezpečení

Zosobnění a návrat

Zabezpečení založené na rolích

Další zdroje

Klíčové koncepty zabezpečení