Frage

(Eine Frage ähnlicher Vene wurde gestellt Vor Aber sowohl die Frage als auch die akzeptierte Antwort geben nicht das Detail an, nach dem ich suche)

Mit der Absicht, einen ASMX -Webdienst unter einem dedizierten Domain -Konto auszuführen, was sind die Nutzungsszenarien und/oder Vor-und Nachteile der Verwendung eines Anwendungspools mit der Identität des Domänenkontos gegenüber Identitätswechsel?

Wir haben 3 kleine interne Webdienste, die unter relativ niedriger Belastung ausgeführt werden, und möchten sie auf ihre eigenen Domänenkonten ausführen (zum Zweck der integrierten Sicherheit mit SQL Server usw.). Ich habe die Auswahl, dedizierte App -Pools für jede Anwendung zu erstellen oder einen einzelnen App -Pool für alle Anwendungen zu haben und die Identitätswechsel in jedem Fall zu verwenden.

Ich verstehe, dass App -Pools die Isolation von Work Process -Prozessen bieten und bei der Verwendung von Leistung Überlegungen zur Verfügung stehen.

War es hilfreich?

Lösung

In der Regel wählen Sie eine unterschiedliche Identität für den Arbeitsprozess (oder ASP.NET -Identitätswechsel), da es zum Zugriff auf lokale/Netzwerkressourcen erforderlich ist, die spezifische Berechtigungen benötigen. Offensichtlicher Abschluss ist, dass Ihr Bewerbungscode unter mehr Berechtigungen ausgeführt wird, als er möglicherweise benötigt wird, und dadurch die Sicherheitsanfälligkeit gegen böswillige Angriffe erhöht.

ASP.NET -Imitation hätte mehr Gemeinkosten, da der Benutzerkontext für jede Anfrage umgeschaltet werden muss. Ich werde empfehlen, einen separaten App -Pool -Ansatz zu erhalten - nur einen Nachteil beim App -Pool -Ansatz ist, dass Sie für jeden von ihnen einen Prozess haben und für jeden Prozess Overhead (aus OS -Sicht) vorhanden ist. Wenn Ihre Anwendungen kleiner sind und keine starken Speicheranforderungen haben, sollte dies kein Problem sein.

Andere Tipps

Wenn Sie möchten, dass Ihre Webdienste über Windows -Authentifizierung eine Verbindung zu SQL herstellen, möchten Sie mit ziemlicher Sicherheit jede Anwendung mit der Option "Dedized App Pool" einrichten. Dies erfordert die geringste Menge an Einrichtung und Verwaltung.

Wenn Sie die Identitätsroute gehen, müssen Sie das Problem "Zwei-Hop" berücksichtigen. Wenn ein Benutzer einen Webdienst anruft, der Identitätswechsel verwendet, kann der Webdienst zugreifen lokal Ressourcen, wie dieser Benutzer. Wenn der Webdienst jedoch versucht, eine Verbindung zu einer nicht lokalen Ressource herzustellen (z. B. eine Datenbank, die auf einem separaten Server ausgeführt wird), ist das Ergebnis ein Authentifizierungsfehler. Der Grund dafür ist, dass NTLM verhindert, dass Ihre Anmeldeinformationen mehr als einen "Hop" machen. Um dies zu verarbeiten, müssten Sie die Kerberos -Delegation verwenden. Die Delegation ist nicht schwer eingerichtet, erfordert jedoch Domain -Administratorrechte, was die Dinge in einigen Unternehmensumgebungen erschweren kann.

Darüber hinaus bedeutet die Verwendung von Identitätswechsel, dass Sie Datenbankberechtigungen für jeden Benutzer verwalten müssen, der möglicherweise Ihren Webdienst besucht. Die Kombination von Datenbankrollen und Anzeigengruppen leistet einen großen Beitrag zur Vereinfachung, aber es ist ein zusätzlicher administrativer Schritt, den Sie möglicherweise nicht durchführen möchten. Es ist auch ein mögliches Sicherheitsrisiko, da bestimmte Benutzer möglicherweise eine Berechtigung erhalten, die größer sind als Ihre Webdienste.

Identitätswechsel ist nützlich, wenn Sie eine gemeinsame Endbenutzererfahrung mit anderen Windows -Diensten benötigen, die auf Windows -Sicherheit basieren.

Beispielsweise verwenden Microsoft SharePoint -Server Identitätswechsel, da Sie mit Webbrowsern auf SharePoint -Dokumentbibliotheken zugreifen können und Mit der Standard Windows Shares UI (Verbindung / Trennen Sie die Netzwerkfreigabe an, basierend auf dem SMB Protokoll). Um sicherzustellen, dass die Sicherheit zwischen den beiden in diesem Fall konsistent ist brauchen Imitation.

Abgesehen von dieser Art von Szenario ist die Identitätsauswechslungen die meiste Zeit nicht nützlich (kann aber viel in Bezug auf die Skalierbarkeit kosten)

Anwendungspool -Profis:

Sie müssen kein .NET -Programmierer sein, um zu verstehen, was los ist.

Der Sicherheitsaspekt verlässt die Domäne des Programmierers und fällt unter den Aufgaben der Infrastruktur

Einfach zu ändern durch IIS mit ordnungsgemäßen Saftey -Überprüfungen, dass der Benutzername beim Einrichten des App -Pools korrekt ist. Dh es lässt dich nicht einen falschen Benutzernamen eingeben.

Identitätswechsel: Profis:

  1. Die Berechtigungen können dokumentiert und durch Änderungen der Konfiguration durch den Quellverlauf zurückverfolgt werden, wenn dort Konfigurationsdateien gespeichert werden.

Imitationsbestimmungen:

  1. Um den Benutzer zu ändern, müssen Sie mit der .NET -Konfiguration vertraut sein, anstatt nur eine Website einzurichten

Ich bin mir nicht sicher, ob ich mir viel anderes vorstellen kann.

Mein Bauch sagt, dass sie für jede der Websites mit verschiedenen Anwendungspools gehen soll, aber es ist Ihre Party.

Ich würde Ihnen raten, die folgende Seite auf Sicherheitsdetails zu überprüfen ...

https://www.attosol.com/sample-aspx-page-to-show-security-details-spasp-net/

Sobald Sie damit fertig sind, werden Sie "genau" sehen, wie Identitätswechsel die Identität verändert.

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