Mindestbetriebssystemberechtigungen zum Erstellen einer Named Pipe (WCF) erforderlich

8

Ich habe eine exe, die im Kontext des angemeldeten Benutzers läuft. Die Exe verwendet WCF, um sich selbst als Named Pipe Server zu definieren (sie wird von mehreren Clients aufgerufen).

Benötigt der Benutzer eine bestimmte Berechtigung für die Exe, um die Named Pipe erstellen zu können? Ich habe versucht, als ein Benutzer mit ziemlich minimalen Berechtigungen (dh nur in der lokalen Benutzergruppe) ausgeführt, und das funktioniert gut - aber ich bin besorgt, dass wenn ich auf der Client-Site bereitstellen, die Benutzer in gewisser Weise eingeschränkt werden können bedeutet, dass die Named Pipe Erstellung nicht funktioniert.

    
Paul Nearney 04.11.2010, 15:56
quelle

1 Antwort

15

Für einen lokal angemeldeten Benutzer sind keine speziellen Berechtigungen erforderlich, um das Service-Ende eines WCF-Services mithilfe der netNamedPipe-Bindung einzurichten.

Sie müssen sich jedoch darüber sorgen, ob die Clients den Dienst finden und eine Verbindung zu ihm herstellen können. Es gibt zwei Aspekte:

  1. Die Clients müssen in einem Sicherheitskontext ausgeführt werden, der nicht durch eine Netzwerkanmeldung festgelegt wurde (z. B. Identitätswechsel eines Remotebenutzers in einer Webanwendung). Dies liegt daran, dass WCF den Zugriff auf eine Anmeldung verweigert, die Mitglied der Gruppe NETWORK USERS ist.
  2. Wenn Sie mit Vista oder Windows7 arbeiten, muss die Dienst-Exe mit der Berechtigung SeCreateGlobalPrivilege ausgeführt werden, wenn der Dienst für Clients zugänglich sein soll, die außerhalb der Sitzung des angemeldeten Benutzers ausgeführt werden. Dies liegt daran, dass der WCF-Dienst den Pipe-Namen in einem freigegebenen Speicherobjekt veröffentlichen muss, damit Clients ihn finden können: Wenn der WCF-Service-Stack dieses gemeinsam genutzte Speicherobjekt im globalen Namespace (für alle Anmeldesitzungen sichtbar) erstellen kann. Wenn es jedoch nicht über die erforderlichen Berechtigungen verfügt, erstellt es das Shared Memory-Objekt im lokalen Namespace (nur innerhalb derselben Anmeldesitzung sichtbar). Die Bereitstellung des WCF-Dienstes als Windows-Dienst ist der einzige einfache Weg, um ihn mit dieser Berechtigung auszuführen und somit für Clients außerhalb seiner Sitzung sichtbar zu machen.

Weitere Details hier wenn Sie interessiert sind.

    
Chris Dickson 29.11.2010, 17:34
quelle