Verwalten der Sicherheit (Service Broker)

Service Broker bietet ein flexibles Sicherheitsframework zum Sichern Ihrer Anwendungen. In diesem Thema werden die Aspekte zur Verwaltung der Service Broker-Sicherheit erläutert.

Planen der Sicherheit

Jede Anwendung hat eigene Sicherheitsanforderungen. Ein Teil der Sicherheitsverwaltung besteht in der sorgfältigen Planung der Anforderungen für Ihre Anwendung. Die in SQL Server integrierte Transportsicherheit, die Dialogsicherheit und die Sicherheitsinfrastruktur sorgen gemeinsam für das Sichern Ihrer Anwendung.

Alle Anwendungen verwenden die in SQL Server integrierte Sicherheitsinfrastruktur. Jeder Vorgang in SQL Server findet in einem bestimmten Sicherheitskontext statt. In den meisten Fällen erstellen Sie speziell für die Anwendung SQL Server-Datenbankprinzipale. So können Sie sicherstellen, dass jeder Schritt in der Anwendung in einem Sicherheitskontext mit nur den Privilegien ausgeführt wird, die für diesen Schritt erforderlich sind. Der Prinzipal, den Sie z. B. für die interne Aktivierung angeben, benötigt Ausführungsberechtigungen für die gespeicherte Prozedur, die Service Broker aktiviert. Die gespeicherte Prozedur selbst kann die Identität eines Benutzers annehmen, der die RECEIVE-Berechtigung für die Warteschlange und die UPDATE-Berechtigung für eine bestimmte Tabelle aufweist. Sie entwerfen Ihre Anwendung so, dass der Sicherheitskontext für die Anwendung auf jeder Stufe keine Berechtigung zum Durchführen unerwarteter Vorgänge hat.

Anwendungen, die Nachrichten zwischen SQL Server-Instanzen senden, können die Transportsicherheit, die Dialogsicherheit oder beides verwenden. Die Transport- und die Dialogsicherheit bieten etwas unterschiedlichen Schutz.

Die Service Broker-Dialogsicherheit bietet eine End-to-End-Verschlüsselung sowie eine Autorisierung für Konversationen zwischen bestimmten Diensten. Deshalb hilft die Dialogsicherheit auch, Daten vor Überprüfungen oder Änderungen während der Übertragung zu schützen. Anwendungen, die vertrauliche oder sensible Daten übertragen oder die Nachrichten über nicht vertrauenswürdige Netzwerke übertragen, sollten die Dialogsicherheit verwenden. Anhand der Dialogsicherheit kann ein Konversationsteilnehmer den anderen Konversationsteilnehmer identifizieren.

Da die Dialogsicherheit für bestimmte Dienste gilt, müssen Sie diese für jeden Dienst konfigurieren, der die Dialogsicherheit verwendet. Eine Instanz kann die Dialogsicherheit jedoch für einige Konversationen verwenden und für andere Konversationen zulassen, dass diese unverschlüsselt übertragen werden. So können z. B. Konversationen mit einem Dienst, der die Kundeninformationen aktualisiert, die Dialogsicherheit verwenden, wohingegen Konversationen, die einfach Daten zu Teilenummern suchen, keine Dialogsicherheit benötigen.

Service Broker verwendet die Remotedienstbindungen in der Datenbank, die die Konversation beginnt, um die Sicherheit für die Konversation zu ermitteln. Deshalb verwendet Service Broker den Dienstnamen, um die Sicherheit für den Dienst zu ermitteln. In Fällen, in denen mehr als eine Instanz des gleichen Zieldiensts vorhanden ist, muss das Routing für die initiierenden Dienste vorsichtig verwaltet werden, sodass die initiierenden Dienste nur mit den Zieldiensten kommunizieren, die übereinstimmende Zertifikate enthalten. Alle Dienste mit demselben Namen müssen mit demselben Zertifikat konfiguriert sein.

Die Service Broker-Transportsicherheit verhindert nicht autorisierte Netzwerkverbindungen mit Service Broker-Endpunkten, entdeckt Änderungen von Nachrichten, die gerade übertragen werden, und bietet optional eine Punkt-zu-Punkt-Verschlüsselung. So können Sie Ihre Datenbank vor dem Empfangen unerwünschter Nachrichten schützen. Da die Transportsicherheit für Netzwerkverbindungen gilt, wird die Transportsicherheit automatisch auf alle Verbindungen zwischen den SQL Server-Instanzen angewendet. Beachten Sie jedoch, dass die Transportsicherheit keine End-to-End-Verschlüsselung und keine Authentifizierung für einzelne Konversationen bietet.

Verwalten der Sicherheit

Das Verwalten der Sicherheit für Service Broker-Anwendungen besteht aus zwei Hauptaufgaben: Prüfen der Anwendungskonfiguration und Ersetzen der von der Anwendung verwendeten Zertifikate.

Prüfen Sie die Anwendung regelmäßig, um zu gewährleisten, dass die Sicherheitskonfiguration unverändert ist und den Unternehmensanforderungen für die Anwendung entspricht.

Die Dialogsicherheit basiert auf Zertifikaten für die Authentifizierung und Verschlüsselung. Die Transportsicherheit kann ebenfalls Zertifikate verwenden. Ein Zertifikat weist einen bestimmten Zeitraum auf, innerhalb dessen das Zertifikat gültig ist. Das Zertifikat ist nicht gültig, bevor dieser Zeitraum beginnt oder nachdem dieser Zeitraum abgelaufen ist. Service Broker verwendet keine Zertifikate, die derzeit nicht gültig sind. Außerdem enthält SQL Server die ACTIVE FOR BEGIN_DIALOG-Option, um Service Broker ein Zertifikat zur Verfügung zu stellen. Erstellen oder laden Sie zum Aktualisieren von Zertifikaten neue Zertifikate, wobei die Option zum Beginnen des Dialogs auf OFF festgelegt ist. Sobald alle Zertifikate geladen sind, müssen Sie die aktuellen Zertifikate in allen Datenbanken ändern, damit sie Service Broker nicht mehr zur Verfügung stehen. Ändern Sie die neuen Zertifikate dann, indem Sie die ACTIVE FOR BEGIN_DIALOG-Option so festlegen, dass diese Zertifikate Service Broker zur Verfügung stehen.

Weitere Informationen zu Zertifikaten finden Sie unter Zertifikate und Service Broker und CREATE CERTIFICATE (Transact-SQL).