Gewusst wie: Hinzufügen von Codegruppen mit "Caspol.exe"

Aktualisiert: November 2007

Beispielbefehle zum Hinzufügen von Gruppen

Wenn Sie das Sicherheitsrichtlinientool für den Codezugriff (Caspol.exe) zum Hinzufügen einer Codegruppe zu einer Codegruppenhierarchie verwenden, müssen Sie sowohl eine Mitgliedschaftsbedingung als auch einen Berechtigungssatz für die neue Codegruppe definieren. Darüber hinaus müssen Sie die Bezeichnung oder den Namen der übergeordneten Codegruppe angeben, in der Sie die neue Codegruppe hinzufügen. Sie können auch andere Flags für die Codegruppe festlegen. Weitere Informationen zu diesen Flags finden Sie unter Sicherheitsrichtlinientool für den Codezugriff (Caspol.exe).

So fügen Sie der Hierarchie der Codegruppen eine neue Codegruppe hinzu

  • Geben Sie an der Eingabeaufforderung den folgenden Befehl ein:

    caspol [-enterprise|-machine|-user] -addgroup {parentLabel|parentName} mship pset_name [-exclusive {on|off}][-levelfinal {on|off}] [-name name] [-description description text]

    Geben Sie die Richtlinienebenenoption vor der Option –addgroup an. Wenn Sie die Richtlinienebenenoption nicht angeben, fügt Caspol.exe die Codegruppen der standardmäßigen Richtlinienebene hinzu. Die Standardebene für Administratoren ist die Computerrichtlinienebene, für alle anderen ist es die Benutzerrichtlinienebene. Erläuterungen zu diesem Befehl:

    • Das parentLabel-Argument ist die Bezeichnung der übergeordneten Codegruppe für die neue Codegruppe. Sie können auch anstelle von parentLabel den Gruppennamen des übergeordneten Codes (parentName) verwenden. Um diese Informationen zu erhalten, listen Sie die Codegruppen wie unter Gewusst wie: Anzeigen von Codegruppen mit "Caspol.exe" beschrieben auf.

    • Das pset_name-Argument ist der Name des der neuen Codegruppe zuzuordnenden Berechtigungssatzes. Ein benannter Berechtigungssatz kann einer Codegruppe erst dann zugeordnet werden, wenn er auf der Richtlinienebene bekannt ist, an der Sie die neue Codegruppe hinzufügen. Wenn Sie beispielsweise den Berechtigungssatz MyPset einer neuen Codegruppe in der Benutzerrichtlinie zuordnen möchten, muss der Berechtigungssatz MyPset bereits zur Benutzerrichtlinie hinzugefügt worden sein. Die Verwendung eines der von .NET Framework bereitgestellten Standardberechtigungssätze bildet die einzige Ausnahme hierzu. Hier muss der Berechtigungssatz nicht vorher hinzugefügt werden. Informationen zum Hinzufügen von Berechtigungssätzen zu Richtlinienebenen finden Sie unter Gewusst wie: Hinzufügen von Berechtigungssätzen mit "Caspol.exe".

    • Das mship-Argument ist die Mitgliedschaftsbedingung für die neue Codegruppe. Eine Auflistung der Werte für das mship-Argument finden Sie unter Sicherheitsrichtlinientool für den Codezugriff (Caspol.exe).

Hinweis:

Sie können die Option –addgroup nicht verwenden, um mehreren Ebenen gleichzeitig eine Codegruppe hinzuzufügen. Die Codegruppen müssen separat hinzugefügt werden, da aufgrund unterschiedlicher Codegruppenbezeichnungen und der Verfügbarkeit bestimmter Berechtigungssätze Verwechslungen entstehen können.

Beispielbefehle zum Hinzufügen von Gruppen

In den folgenden Prozeduren werden die gängigsten Aufgaben beim Hinzufügen von Codegruppen beschrieben.

So fügen Sie eine Codegruppe für Code aus dem Intranet hinzu

  • Verwenden Sie die Option -zone, und geben Sie Intranet als Mitgliedschaftswert an.

    Der folgende Befehl verknüpft den Berechtigungssatz Everything mit Code aus dem Intranet. Darüber hinaus erhält die Codegruppe den Namen Intranet_CG. Zum Verweisen auf die neu erstellte Codegruppe können Sie anstelle der numerischen Bezeichnungen auch diesen Namen verwenden.

    caspol –addgroup 1.1. –zone Intranet Everything –name "Intranet_CG"
    

So fügen Sie eine Codegruppe für Code von für Internet Explorer vertrauenswürdigen Sites hinzu

  • Verwenden Sie die Option –zone, und geben Sie Trusted als Mitgliedschaftswert an.

    Mit dem folgenden Befehl wird der Berechtigungssatz LocalIntranet mit dem Code aus der vertrauenswürdigen Zone verknüpft und die neue Codegruppe als untergeordnete Gruppe des Stammes der Codegruppenhierarchie eingefügt.

    caspol -addgroup All_Code -zone Trusted LocalIntranet
    

So fügen Sie eine Codegruppe für Code von einem bestimmten Softwareherausgeber hinzu

  • Verwenden Sie die Option –pub, und geben Sie eine Zertifikatsdatei, eine signierte Datei oder die hexadezimale Darstellung eines X.509-Zertifikats an.

    Diese Mitgliedschaftsbedingung funktioniert nur, wenn die Dateien von einem Softwareherausgeber entsprechend signiert sind. Die Mitgliedschaftsbedingung kann auf Grundlage einer tatsächlichen Zertifikatsdatei oder einer signierten EXE-Datei erstellt werden.

    Beispiel: Die Zertifikatsdatei für FourthCoffee (FourthCoffee.cer) ist verfügbar. Mit dem folgenden Befehl fügen Sie den Computerrichtlinien eine Codegruppe für Code hinzu, der von FourthCoffee veröffentlicht wurde, und ordnen der neuen Gruppe den Berechtigungssatz Nothing zu. Die Codegruppe wird als untergeordnete Codegruppe des Stammes hinzugefügt.

    caspol –machine –addgroup 1 –pub –cert FourthCoffee.cer Nothing
    

So fügen Sie eine Codegruppe für Code von einer bestimmten Website hinzu

  • Verwenden Sie die Option –site, und geben Sie den URL der Website an.

    Hinweis:

    Da DNS-Namen prinzipiell geändert werden können, ist die Verwendung einer Website als Mitgliedschaftsbedingung keine wirkungsvolle Möglichkeit, um die Identität von Code zu ermitteln. Verwenden Sie nach Möglichkeit Mitgliedschaftsbedingungen mit einem starken Namen, Herausgebermitgliedschaftsbedingungen oder Hashmitgliedschaftsbedingungen.

    Der folgende Befehl verknüpft den Berechtigungssatz Intranet mit Code von www.microsoft.com.

    caspol –addgroup 1 –site www.microsoft.com Intranet
    

So fügen Sie eine Codegruppe für Code von einem bestimmten URL hinzu

  • Verwenden Sie die Option –url, und geben Sie den URL der Website an.

    Der URL muss ein Protokoll wie http://, https:// oder ftp:// enthalten. Außerdem kann ein Platzhalterzeichen (*) verwendet werden, um mehrere Assemblys von einem bestimmten URL anzugeben.

    Hinweis:

    Da ein URL anhand mehrerer Namen gekennzeichnet werden kann, kann durch Verwenden eines URLs als Mitgliedschaftsbedingung die Identität von Code nicht sicher festgestellt werden. Verwenden Sie nach Möglichkeit Mitgliedschaftsbedingungen mit einem starken Namen, Herausgebermitgliedschaftsbedingungen oder Hashmitgliedschaftsbedingungen.

    caspol –user –addgroup 1 –url https://www.contoso.com/bin/* FullTrust
    caspol –user –addgroup 1 –url https://www.contoso.com/bin/MyAssembly.dll FullTrust
    

So fügen Sie eine Codegruppe hinzu, die andere Berechtigungen auf einer Richtlinienebene überschreibt

  • Legen Sie das –exclusive-Flag für die neue Codegruppe fest.

    Mit dem folgenden Befehl fügen Sie eine Codegruppe unter der Intranet_cg-Codegruppe hinzu. Die neue Codegruppe gewährt den Berechtigungssatz Everything, wenn die Zone vertrauenswürdig ist, und überschreibt dabei alle Berechtigungen, die möglicherweise von anderen Codegruppen gewährt werden.

    caspol –addgroup "Intranet_cg" –zone Trusted Everything –exclusive on
    

So fügen Sie eine Codegruppe mit einer benutzerdefinierten Mitgliedschaftsbedingung hinzu

  • Verwenden Sie die Option –custom, und geben Sie eine XML-Datei an, die die XML-Serialisierung der benutzerdefinierten Mitgliedschaftsbedingung enthält.

    Caspol.exe unterstützt die Verwendung von benutzerdefinierten Mitgliedschaftsbedingungen in Richtlinien, wodurch das Richtliniensystem sehr gut erweitert werden kann.

    Der folgende Befehl fügt dem Stamm der Benutzerrichtlinie eine neue Codegruppe hinzu. Diese neue Codegruppe enthält eine benutzerdefinierte Mitgliedschaftsbedingung, die in der NewMembershipCondition.xml-Datei gespeichert ist. Sie gewährt Assemblys, die diese Mitgliedschaftsbedingung erfüllen, volle Vertrauenswürdigkeit.

    caspol –user –addgroup All_Code –custom NewMembershipCondition.xml FullTrust
    

So fügen Sie eine Codegruppe mit einem Namen und einer Beschreibung hinzu

  1. Verwenden Sie die Option –name, und geben Sie einen Namen für die Codegruppe an. Namen, die Leerzeichen enthalten, müssen in doppelte Anführungszeichen (" ") eingeschlossen werden.

  2. Verwenden Sie die Option –description, und geben Sie eine Beschreibung für die Codegruppe an.

Anhand des Namens können Sie zu einem späteren Zeitpunkt auf eine Codegruppe verweisen. Der Name bietet eine bessere Unterstützung als numerische Bezeichnungen für Skripterstellungs-Richtlinienänderungen.

Standardrichtlinien enthalten Standardnamen. Sofern nicht explizit durch einen Administrator geändert, vereinfachen die Standardnamen für Administratoren, die Caspol.exe verwenden, den Zugriff auf bestimmte Codegruppen über Richtlinien und Computer hinaus.

Mit dem folgenden Befehl fügen Sie unter der Gruppe All_Code eine Codegruppe in den Computerrichtlinien hinzu. Die neue Codegruppe überprüft, ob der starke Name FourthCoffee vorhanden ist (wie in Signed.exe der Fall), und gewährt Code, der auf diese Weise signiert ist, die volle Vertrauenswürdigkeit (FullTrust). Der Codegruppe wird der Name FouthCoffeeStrongName und eine entsprechende Beschreibung zugewiesen.

caspol –machine –addgroup All_Code –strong –file signed.exe FullTrust –name FouthCoffeeStrongName –description "Code group granting trust to code signed by FourthCoffee"
Hinweis:

Wenn derselbe Name in mehreren Codegruppen vorkommt, verwendet Caspol.exe die erste gefundene Codegruppe mit dem angegebenen Namen. Es werden alle untergeordneten Codegruppen einer Codegruppe und erst anschließend gleichgeordnete Gruppen gesucht.

Siehe auch

Konzepte

Sicherheitsrichtlinienmodell

Referenz

Sicherheitsrichtlinientool für den Codezugriff (Caspol.exe)

Weitere Ressourcen

Konfigurieren der Sicherheitsrichtlinien mit dem Sicherheitsrichtlinientool für den Codezugriff (Caspol.exe)

Konfigurieren von Codegruppen mit Caspol.exe