Gewusst wie: Endpunkte im Unternehmen sperren
Von Großunternehmen wird oft gefordert, dass Anwendungen unter Einhaltung der Sicherheitsrichtlinien der Unternehmen entwickelt werden. In diesem Thema wird behandelt, wie eine Clientendpunktbestätigung entwickelt und installiert wird, die zur Validierung aller auf Computern installierten Windows Communication Foundation (WCF)-Clientanwendungen verwendet werden kann.
In diesem Fall handelt es sich bei der Bestätigung um eine Clientbestätigung, da dieses Endpunktverhalten dem Clientabschnitt <commonBehaviors> der Datei machine.config hinzugefügt wird. WCF lädt gemeinsame Endpunktverhalten nur für Clientanwendungen und gemeinsame Dienstverhalten nur für Dienstanwendungen. Um diese Bestätigung für Dienstanwendungen installieren zu können, muss es sich bei der Bestätigung um ein Dienstverhalten handeln. Weitere Informationen finden Sie unter dem Abschnitt <commonBehaviors>.
Tipp
Dienst- oder Endpunktverhalten, die nicht mit dem AllowPartiallyTrustedCallersAttribute-Attribut (APTCA) markiert sind und die dem Abschnitt <commonBehaviors> einer Konfigurationsdatei hinzugefügt wurden, werden nicht ausgeführt, wenn die Anwendung in einer teilweise vertrauenswürdigen Umgebung ausgeführt wird. In diesem Fall wird keine Ausnahme ausgelöst. Um die Ausführung gemeinsamer Verhalten, wie z. B. Bestätigungen, zu erzwingen, müssen Sie einen der beiden folgenden Schritte ausführen:
– Markieren Sie das gemeinsame Verhalten mit dem AllowPartiallyTrustedCallersAttribute-Attribut, damit es ausgeführt werden kann, wenn es als teilweise vertrauenswürdige Anwendung bereitgestellt wird. Beachten Sie, dass auf dem Computer ein Registrierungseintrag festgelegt werden kann, um die Ausführung von mit APTCA markierten Assemblys zu verhindern. Weitere Informationen finden Sie unter How to: Make APTCA Assemblies Inaccessible to Partially Trusted Code. – Wenn die Anwendung als voll vertrauenswürdige Anwendung bereitgestellt wird, stellen Sie sicher, dass die Benutzer die Sicherheitseinstellungen für den Codezugriff nicht dahingehend ändern können, dass die Anwendung in einer teilweise vertrauenswürdigen Umgebung ausgeführt werden kann. Wenn sie dies können, dann wird die benutzerdefinierte Bestätigung nicht ausgeführt, und es wird keine Ausnahme ausgelöst. Eine Möglichkeit, dieses sicherzustellen, wird unter der levelfinal-Option für Code Access Security Policy Tool (Caspol.exe) beschrieben. Weitere Informationen finden Sie unter Empfehlungen für eine teilweise vertrauenswürdige Umgebung und Unterstützte Bereitstellungsszenarien.So erstellen Sie eine Endpunktbestätigung
Erstellen Sie ein IEndpointBehavior mit den gewünschten Bestätigungsschritten in der Validate-Methode. Der folgende Code veranschaulicht dies.
Erstellen Sie ein neues BehaviorExtensionElement, das die in Schritt 1 erstellte Endpunktbestätigung registriert. Das folgende Codebeispiel veranschaulicht diesen Vorgang.
Stellen Sie sicher, dass die kompilierte Assembly mit einem starken Namen signiert wird. Weitere Informationen finden Sie unter Strong Name Tool (Sn.exe) und in den Compilerbefehlen für Ihre Sprache.
So installieren Sie die Bestätigung auf dem Zielcomputer
Installieren Sie die Endpunktbestätigung mithilfe des entsprechenden Mechanismus. In einem Unternehmen kann dies die Verwendung der Gruppenrichtlinie und des Systems Management Server (SMS) sein.
Installieren Sie die mit einem starkem Namen signierte Assembly mit dem Global Assembly Cache Tool (Gacutil.exe) im globalen Assemblycache.
Verwenden Sie die System.Configuration-Namespacetypen, um Folgendes durchzuführen:
- Fügen Sie die Erweiterung dem Abschnitt <behaviorExtensions> unter Angabe eines vollqualifizierten Typnamens hinzu, und sperren Sie das Element.
- Fügen Sie das Verhaltenselement der EndpointBehaviors-Eigenschaft des <commonBehaviors> hinzu, und sperren Sie das Element. (Um eine Bestätigung auf der Dienstseite zu installieren, muss die Bestätigung ein IServiceBehavior sein und zur ServiceBehaviors-Eigenschaft hinzugefügt werden.) Das folgende Codebeispiel veranschaulicht die ordnungsgemäße Konfiguration nach den Schritten a und b. Einziger Unterschied ist, dass hier kein starker Name vergeben wird.
- Speichern Sie die Datei machine.config. Das folgende Codebeispiel führt alle Aufgaben in Schritt 3 durch, speichert aber eine lokale Kopie der geänderten Datei machine.config.
Beispiel
Das folgende Codebeispiel veranschaulicht, wie ein gemeinsames Verhalten zu einer machine.config-Datei hinzugefügt und wie eine Kopie auf der Festplatte gespeichert wird. Dieses InternetClientValidatorBehavior
-Beispiel stammt aus Security Validation.
Sicherheit
Sie können darüber hinaus die Elemente der Konfigurationsdatei verschlüsseln. Weitere Informationen finden Sie im Abschnitt "Siehe auch".
Siehe auch
Weitere Ressourcen
Verschlüsseln von Konfigurationsdateielementen mithilfe von DPAPI (möglicherweise in englischer Sprache)
Verschlüsseln von Konfigurationsdateielementen mithilfe von RSA (möglicherweise in englischer Sprache)