Aktualizace zásad zabezpečení
Výchozí zásady zabezpečení neví o existenci všech vlastních oprávnění. Například pojmenovaná sada oprávnění Vše obsahuje všechny vestavěné přístupové oprávnění kódu, které poskytuje modul runtime, ale neobsahuje žádné vlastní oprávnění. Chcete-li aktualizovat zásady zabezpečení tak, že ví o vašem vlastním oprávnění, musíte provést tři věci:
Zkontrolujte, že zásady jsou si vědomy vašeho vlastního oprávnění.
Přidejte sestavení do seznamu důvěryhodných sestavení.
Sdělte zásadám zabezpečení, jaký kód by měl mít udělen přístup ve vašem vlastním oprávnění.
Důležité |
---|
V rozhraní .NET Framework verze 4 se modul CLR (Common Language Runtime) vzdaluje od poskytování zásad zabezpečení pro počítače.Microsoft doporučuje použití zásad omezení softwaru systému Windows jako náhradu za zásady zabezpečení modulu CLR.Informace v tomto tématu se vztahují na rozhraní .NET Framework verze 3.5 a starší; nevztahují se na .NET Framework 4 a novější.Další informace o této a dalších změnách naleznete v tématu Změny zabezpečení v rozhraní .NET Framework 4. |
Kontrola, že zásady jsou si vědomy vašeho vlastního oprávnění.
Chcete-li, aby si zásady byly vědomy vašeho vlastního oprávnění, musíte:
Vytvořit novou sadu oprávnění s názvem zahrnující vaše vlastní oprávnění. (Můžete upravit existující pojmenovanou sadu oprávnění namísto vytváření nové.)
Sadu oprávnění pojmenujte.
Sdělte zásadám zabezpečení, že existuje sada oprávnění s názvem.
Další informace naleznete v tématu Nástroj zásady zabezpečení přístupu kódu (Caspol.exe) nebo Nástroj konfigurace .NET framework (Mscorcfg.msc). Můžete přidat novou sadu oprávnění v jednom z několika způsobů. Pomocí nástroje zásady zabezpečení přístupu kódu (Caspol.exe) můžete vytvořit .xml soubor, který obsahuje XML zastoupení vlastní sady oprávnění, a potom tento soubor přidat do zásad zabezpečení v počítači, kde se má spustit kód. Pomocí nástroje pro konfiguraci rozhraní .NET Framework (Mscorcfg.msc) můžete zkopírovat existující sadu oprávnění a přidat XML zastoupení oprávnění do nové sady oprávnění.
Chcete-li zaručit, že vaše XML zastoupení je platné a správně představuje vaše oprávnění, můžete jej generovat pomocí kódu podobně jako v příkladu, který následuje. Všimněte si, že tento kód vytvoří vlastní oprávnění nazývané MyCustomPermission, inicializované do stavu bez omezení. Pokud vaše vlastní oprávnění neimplementuje IUnrestrictedPermission, nebo pokud nechcete nastavit zásady k udělení svolení pro oprávnění do stavu bez omezení, použijte konstruktor k inicializaci vašeho oprávnění do stavu, který chcete.
Imports System
Imports System.IO
Imports System.Security
Imports System.Security.Permissions
Class PSetXML
Public Shared Sub Main()
Dim perm As New MyCustomPermission(PermissionState.Unrestricted)
Dim pset As New NamedPermissionSet("MyPermissionSet", PermissionState.None)
pset.Description = "Permission set containing my custom permission"
pset.AddPermission(perm)
Dim file As New StreamWriter("mypermissionset.xml")
file.Write(pset.ToXml())
file.Close()
End Sub
End Class
using System;
using System.IO;
using System.Security;
using System.Security.Permissions;
class PSetXML {
public static void Main()
{
MyCustomPermission perm =
new MyCustomPermission(PermissionState.Unrestricted);
NamedPermissionSet pset =
new NamedPermissionSet("MyPermissionSet", PermissionState.None);
pset.Description = "Permission set containing my custom permission";
pset.AddPermission(perm);
StreamWriter file = new StreamWriter("mypermissionset.xml");
file.Write(pset.ToXml());
file.Close();
}
}
Po vytvoření .xml souboru obsahující vaši sadu oprávnění, můžete ji přidat do zásad zabezpečení. Chcete-li použít Caspol.exe, zadejte následující na příkazový řádek:
caspol –machine –addpset mypermissionset.xml
Když se Caspol.exe zeptá, zda chcete přidat sestavení obsahující vaše vlastní oprávnění do seznamu důvěryhodných sestavení, zadejte ano.
Chcete-li přidat .xml soubor obsahující vaši sadu oprávnění pomocí nástroje pro konfiguraci rozhraní .NET framework, vyberte uzel Zásady zabezpečení modulu runtime, a pak vyberte úroveň zásad, které chcete upravit. Klikněte pravým tlačítkem myši na Sady oprávnění a vyberte Nový. Přidejte sadu oprávnění pomocí průvodce.
Přidání sestavení do seznamu důvěryhodných sestavení.
Protože se vaše vlastní oprávnění bude podílet na systému zabezpečení pro rozhraní .NET Framework, musí být plně důvěryhodné (jak musí být jakýkoli kód, který využívá systém zabezpečení). Získáte úplný vztah důvěryhodnosti pro vaše sestavení jejím přidáním do seznamu důvěryhodných sestavení. Po přidání sestavení vašeho vlastního oprávnění k seznamu pomocí Caspol.exe (jak je popsáno dříve), musíte také přidat libovolné sestavení odkazující na vaší třídu oprávnění. Chcete-li přidat další sestavení do seznamu pomocí Caspol.exe, v příkazovém řádku zadejte následující:
caspol -addfulltrust mypermissionset.dll
Chcete-li zobrazit seznam plně důvěryhodných sestavení, použijte následující příkaz:
caspol -listfulltrust
Protože sestavení vašeho vlastního oprávnění (a jakákoli sestavení, na které odkazuje) bude plně důvěryhodné v systému zabezpečení, je důležité, aby tyto soubory byly podepsané kryptograficky silným názvem. Caspol.exe nepřidá sestavení do seznamu plné důvěryhodnosti, pokud nemá silný název.
K přidání sestavení do seznamu plné důvěryhodnosti sestavení pomocí nástroje pro konfiguraci rozhraní .NET framework, klikněte pravým tlačítkem myši na uzel Zásady zabezpečení modulu runtime a vyberte Důvěrné sestavení. Použijte průvodce k důvěřování sestavení.
Upozornění Pokud sestavení implementuje vlastní odkazy objektů zabezpečení jiných sestavení, musíte nejprve přidat odkazovaná sestavení do seznamu plně důvěryhodných sestavení. Vlastní objekty zabezpečení vytvořené pomocí jazyka Visual Basic, Visual C++ nebo JScript, se odkazují na nebo Microsoft.VisualBasic.dll, Microsoft.VisualC.dll nebo Microsoft.JScript.dll. Tyto sestavení nejsou v seznamu sestavení úplné důvěryhodnosti ve výchozím nastavení. Před přidáním vlastního objektu zabezpečení musíte příslušné sestavení přidat do seznamu úplné důvěryhodnosti. Pokud tak neučiníte, přerušíte systém zabezpečení, což je příčinou selhání načtení všech sestavení. V takovém případě možnost Caspol.exe -all -reset nemůže opravit zabezpečení. K opravě zabezpečení musíte ručně upravit soubory zabezpečení k odebrání vlastního objektu zabezpečení.
Nastavení zásad, které chcete udělit pro své vlastní oprávnění
Vaši novou sadu oprávnění musíte spojit s příslušným kódem skupiny tak, že zásady zabezpečení přidělí vlastní oprávnění kódu, který by je měl mít. To lze provést úpravou existující skupiny kódu nebo přidáním nové skupiny kódu identifikující sadu kódu, které by mělo být uděleno svolení vlastního oprávnění. Další informace o skupinách kódu naleznete v tématu Zásady zabezpečení. Použijte následující příkaz Caspol.exe k zajištění, že sada oprávnění mypermissionset udělila kódu povolení, který splňuje podmínky členství ve skupině kódu LocalIntranet:
caspol -user -chggroup 1.2. mypermissionset
V tomto příkladu jmenovka 1.2 představuje skupinu kódu LocalIntranet. Chcete-li zobrazit všechny skupiny kódu a jejich přidružené jmenovky, zadejte následující příkaz:
caspol -list
Chcete-li zobrazit seznam sad oprávnění, použijte následující příkaz:
caspol -listpset
Chcete-li, aby sada oprávnění mypermissionset udělila přístup členům skupiny kódu LocalIntranet pomocí nástroje konfigurace rozhraní .NET Framework, vyberte uzel Zásady zabezpečení modulu runtime, a pak vyberte zásadu Machine. Klikněte pravým tlačítkem myši na uzel LocalIntranet_Zone a vyberte Vlastnosti. Změňte sadu oprávnění pomocí karty Sada oprávnění.
Viz také
Odkaz
Caspol.exe (Code Access Security Policy Tool)
Mscorcfg.msc (.NET Framework Configuration Tool)