Delen via


Beveiligingsoverzicht (Service Broker)

van toepassing op:SQL ServerAzure SQL Managed Instance

Service Broker helpt u bij het schrijven van uiterst schaalbare databasetoepassingen die ook veilig en betrouwbaar zijn. Met Service Broker-beveiliging kunnen services die worden gehost door verschillende SQL Server-exemplaren veilig communiceren, zelfs wanneer de exemplaren zich op verschillende computers bevinden die geen andere vertrouwensrelatie hebben of waarbij de bron- en doelcomputers niet tegelijkertijd met hetzelfde netwerk zijn verbonden.

Service Broker-beveiliging is afhankelijk van certificaten. De algemene benadering is het gebruik van certificaten om de referenties van een externe database vast te stellen en vervolgens bewerkingen van de externe database toe te wijzen aan een lokale gebruiker. De machtigingen voor de lokale gebruiker zijn van toepassing op elke bewerking namens de externe service. Het certificaat wordt gedeeld tussen databases. Er worden geen andere gegevens voor de gebruiker gedeeld.

Service Broker biedt twee verschillende typen beveiliging: dialoogvensterbeveiliging en transportbeveiliging. Als u deze twee typen beveiliging begrijpt en hoe ze samenwerken, kunt u Service Broker-toepassingen ontwerpen, implementeren en beheren.

  • Dialoogvensterbeveiliging: Hiermee versleutelt u berichten in een afzonderlijk dialoogvenstergesprek en controleert u de identiteiten van deelnemers in het dialoogvenster. Dialoogvensterbeveiliging biedt ook controle van externe autorisatie en berichtintegriteit. Met dialoogbeveiliging wordt een geverifieerde en versleutelde communicatie tussen twee services tot stand gebracht.

  • Transportbeveiliging: hiermee voorkomt u dat niet-geautoriseerde databases Service Broker-berichten verzenden naar databases in het lokale exemplaar. Transportbeveiliging brengt een geverifieerde netwerkverbinding tot stand tussen twee databases.

Het dialoogvensterprotocol en het aangrenzende brokerprotocol zijn ontworpen om berichten tussen databases door te geven in plaats van opdrachten uit te voeren op een externe database. Met deze communicatiestijl kan Service Broker services leveren zonder dat databases SQL Server-aanmeldingen of Windows-beveiligingsreferenties hoeven te delen.

Zie CREATE CERTIFICATE voor meer informatie over certificaten.

Adventure Works Cycles-beveiligingsscenario

Notitie

De codevoorbeelden in dit artikel zijn getest met behulp van de AdventureWorks2025 voorbeelddatabase, die u kunt downloaden van de Microsoft SQL Server-voorbeelden en communityprojecten startpagina.

In een voorbeeld van een bedrijfsscenario maakt Adventure Works Cycles, een fictief bedrijf, een Service Broker-service voor het leveren van onderdelenorders aan leveranciers. Deze service vereist beveiliging voor zowel Adventure Works als de leveranciers. Elke leverancier moet kunnen garanderen dat alleen bestaande klanten orders kunnen indienen. Adventure Works moet kunnen garanderen dat alleen gekwalificeerde leveranciers orders kunnen ontvangen. Berichten tussen de AdventureWorks2008R2-database en een leverancier moeten worden versleuteld, zodat er geen externe partij een bericht kan lezen. Om ervoor te zorgen dat het hoogste beveiligingsniveau mogelijk is, kunnen alleen gekwalificeerde leveranciers verbinding maken met de AdventureWorks2008R2-database.

Om te voldoen aan de vereiste dat berichten moeten worden versleuteld, maken Adventure Works en de leveranciers gebruik van servicebrokerdialoogvensterbeveiliging:

  1. Voor het instellen van dialoogvensterbeveiliging maakt de beheerder AdventureWorks2008R2 een lokale gebruiker met de naam VendorOutgoing en maakt een sleutelpaar voor die gebruiker.

  2. De beheerder distribueert het certificaat met de openbare sleutel van het sleutelpaar aan leveranciers die toegang nodig hebben tot de service.

  3. Elke leverancier installeert het certificaat van Adventure Works Cycles in de database en maakt een gebruiker die eigenaar is van het certificaat.

  4. De leverancier maakt vervolgens een sleutelpaar en verzendt informatie over de servicenaam voor de leverancierservice en een certificaat met de openbare sleutel van dat sleutelpaar naar de beheerder AdventureWorks2008R2.

  5. De adventureWorks2008R2-beheerder maakt een gebruiker voor elke leverancier en koppelt het certificaat van die leverancier aan de gebruiker.

  6. De beheerder maakt ook een externe servicebinding voor elke leverancier die de naam van de leverancierservice koppelt aan de gebruiker die voor de leverancier is gemaakt.

Om te voldoen aan de vereiste dat alleen gekwalificeerde leveranciers verbinding kunnen maken met de AdventureWorks2008R2-database, maakt de AdventureWorks2008R2-beheerder gebruik van Service Broker-transportbeveiliging:

  1. Als u transportbeveiliging wilt instellen, maakt de beheerder van AdventureWorks2008R2 een certificaat in de master database van het SQL Server-exemplaar waarmee berichten worden verzonden.

  2. De AdventureWorks2008R2-beheerder stuurt het certificaat naar elke leverancier.

  3. Elke leverancierbeheerder maakt een gebruiker in de master database om eigenaar te zijn van het certificaat en installeert vervolgens het certificaat in het SQL Server-exemplaar dat berichten ontvangt.

  4. De leverancierbeheerder maakt vervolgens een certificaat in de master database van het exemplaar en stuurt de openbare sleutel voor die gebruiker naar de beheerder AdventureWorks2008R2.

  5. Ten slotte maakt de AdventureWorks2008R2-beheerder een gebruiker in de master database om eigenaar te zijn van elk certificaat van de openbare sleutel van de leverancier en installeert elk leveranciercertificaat in de database.

De combinatie van transportbeveiliging en dialoogvensterbeveiliging helpt de AdventureWorks2008R2-beheerder aan de beveiligingsvereisten van deze toepassing te voldoen. In dit scenario kunnen leveranciers zich niet aanmelden bij de Database AdventureWorks2008R2 en kan de Beheerder van Adventure Works zich niet aanmelden bij de leveranciersdatabases. Alleen Service Broker-berichten kunnen worden uitgewisseld tussen de databases.