Ich hatte gerade ein Interview in Redmond, wo sie mich eine Tonne Fragen zu Sicherheit Fragen rund um asp.net fragte. Eine der Fragen, die sie stellten, bestand darin, eine sichere Intranetanwendung so zu konfigurieren, dass eingeschränkte Delegierung für den Zugriff auf SQL Server verwendet wurde. In diesem Szenario ist ein AD-Benutzerkonto delegierter Zugriff auf den SQL Server. Der ganze Zweck ist natürlich, a) keinen Benutzernamen/Passwort irgendwo auf dem Webserver zu speichern (web.config) und b) ein abstrahiertes Sicherheitsmodell bereitzustellen, das in Active Directory verwaltet werden kann.Anonymer Zugriff (IIS) und SQL Server
Das brachte mich dazu, darüber nachzudenken, wie ich meine Seiten all die Jahre für den anonymen Zugang konfiguriert habe. Normalerweise werde ich meine IIS-Websites unter Verwendung des standardmäßigen anonymen Kontos ausführen und die Verbindungszeichenfolge in web.config speichern (verschlüsselt und manchmal im Klartext). Dies erfordert natürlich, dass Ihr SQL Server im gemischten Modus ausgeführt wird. Meine Frage ist also, ob wir die Verbindungszeichenfolge überhaupt in web.config gespeichert haben und nur ein eindeutiges anonymes Domänenkonto für die bestimmte Website erstellt haben, auf die db_datareader in SQL Server zugreifen würde. Gibt es einen Grund, warum es eine schlechte Idee wäre, dies zu tun?
Ich habe versucht, an alle Szenarien zu denken, wo dies eine schlechte Idee wäre, und die einzige, die ich denke, ist, wo ein "Hacker" den Code auf dem Webserver kompromittiert hat, und irgendwie Zugriff auf Ihre SQL Server ... aber das könnte in beiden Szenarien passieren.
Kennt jemand die beste Praxis hier?
Im ersten Absatz erwähne ich eingeschränkte Delegation. Dies erfordert ein Domänenkonto und nimmt die Identität eines Benutzers an, dessen Zugriff auf den SQL Server "beschränkt" ist, nichts anderes in der Farm. In diesem Szenario ist Ihr Benutzer nicht in der Lage, direkt über die App auf SQL zuzugreifen. –