Sichere WCF-Dienst gehostet in IIS 7 die Windows-Authentifizierung unter Verwendung von definierten Gruppe beschränkt oder Benutzern

StackOverflow https://stackoverflow.com/questions/1166794

Frage

Wie ein WCF-Dienst in IIS 7 Zugang gehostet konfigurieren für nur definierte Benutzer / Gruppen zu ermöglichen.

Vorhandene Konfiguration:

<authentication mode="Windows"/> 

<services>     
 <service name="MyService.Test" behaviorConfiguration="MyService.TestBehavior">
  <endpoint address="" binding="wsHttpBinding" contract="MyService.ITest">
   <identity>
    <dns value="localhost"/>
   </identity>
  </endpoint>
  <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
 </service>
</services>
<behaviors>
 <serviceBehaviors>
  <behavior name="MyService.TestBehavior">
   <serviceMetadata httpGetEnabled="true"/>
   <serviceDebug includeExceptionDetailInFaults="true"/>          
  </behavior>        
 </serviceBehaviors>
</behaviors>

Ich mag dann Berechtigungen (Benutzer oder Gruppen) konfigurieren, dass entweder in den web.config oder im Dateisystem auf Dateien oder Ordner.

War es hilfreich?

Lösung

Vor allem, wenn Sie in einer Intranet-Umgebung sind, können Sie und sollten netTcpBinding wechseln - es ist schneller, es flexibler ist, kann niemand nennen von außen in (über Firewalls.) - perfekt

- Weiter Sie Windows-Anmeldeinformationen haben standardmäßig aktiviert mit wsHttpBinding und mit netTcpBinding. In einer WCF Welt, würden Sie nicht in der Regel sichere Dateien oder Ordner - was Sie Service-Anrufe sind sichern würden - und so sind mit Windows-Anmeldeinformationen einfach zu tun - nur ein Attribut Principal auf Ihre Service-Implementierung hinzufügen, und Sie werden getan:

class MyService : IMyService
{
  [PrincipalPermission(SecurityAction.Demand, Role="SysAdmin")]
  public void SensitiveMethod()
  {
   ....
  }
}

sollte gut funktionieren.

Wenn Sie wirklich Dateien und Ordner müssen sichern, können Sie immer die Datei web.config verwenden und die üblichen Zugriffsberechtigungen auf Basis von Windows Benutzername und Gruppen angeben - aber das hat nichts mit WCF zu tun, wirklich

Marc

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top