Dela via


Säkerhetsöversikt (Service Broker)

gäller för:SQL ServerAzure SQL Managed Instance

Med Service Broker kan du skriva mycket skalbara databasprogram som också är säkra och tillförlitliga. Med Service Broker-säkerhet kan tjänster som hanteras av olika SQL Server-instanser kommunicera på ett säkert sätt, även om instanserna finns på olika datorer som inte har någon annan förtroenderelation eller där käll- och måldatorerna inte är anslutna till samma nätverk samtidigt.

Service Broker-säkerhet förlitar sig på certifikat. Den allmänna metoden är att använda certifikat för att upprätta autentiseringsuppgifter för en fjärrdatabas och sedan mappa åtgärder från fjärrdatabasen till en lokal användare. Behörigheterna för den lokala användaren gäller för alla åtgärder för fjärrtjänstens räkning. Certifikatet delas mellan databaser. Ingen annan information för användaren delas.

Service Broker tillhandahåller två olika typer av säkerhet: dialogsäkerhet och transportsäkerhet. Att förstå dessa två typer av säkerhet och hur de fungerar tillsammans hjälper dig att utforma, distribuera och administrera Service Broker-program.

  • Dialogsäkerhet: Krypterar meddelanden i en enskild dialogkonversation och verifierar identiteterna för deltagarna i dialogrutan. Dialogsäkerhet ger även fjärrauktorisering och kontroll av meddelandeintegritet. Dialogsäkerhet upprättar autentiserad och krypterad kommunikation mellan två tjänster.

  • Transportsäkerhet: Förhindrar att obehöriga databaser skickar Service Broker-meddelanden till databaser i den lokala instansen. Transportsäkerhet upprättar en autentiserad nätverksanslutning mellan två databaser.

Dialogprotokollet och det intilliggande koordinatorprotokollet är utformade för att skicka meddelanden mellan databaser i stället för att köra kommandon på en fjärrdatabas. Med den här kommunikationsstilen kan Service Broker tillhandahålla tjänster utan att det krävs databaser för att dela SQL Server-inloggningar eller Windows-säkerhetsautentiseringsuppgifter.

Mer information om certifikat finns i SKAPA CERTIFIKAT.

Säkerhetsscenario för Adventure Works Cycles

Notis

Kodexemplen i den här artikeln har testats med hjälp av AdventureWorks2025 exempeldatabas som du kan ladda ned från Microsoft SQL Server-exempel och Community Projects startsida.

I ett exempel på ett affärsscenario skapar Adventure Works Cycles, ett fiktivt företag, en Service Broker-tjänst för leverans av delbeställningar till leverantörer. Den här tjänsten kräver säkerhet för både Adventure Works och leverantörerna. Varje leverantör måste kunna garantera att endast befintliga kunder kan skicka beställningar. Adventure Works måste kunna garantera att endast kvalificerade leverantörer kan ta emot beställningar. Meddelanden mellan databasen AdventureWorks2008R2 och en leverantör måste krypteras så att ingen tredje part kan läsa ett meddelande. För att säkerställa högsta möjliga säkerhetsnivå kan endast kvalificerade leverantörer ansluta till databasen AdventureWorks2008R2.

För att uppfylla kravet på att meddelanden måste krypteras använder Adventure Works och leverantörerna dialogsäkerhet för Service Broker:

  1. För att konfigurera dialogsäkerhet skapar AdventureWorks2008R2-administratören en lokal användare med namnet VendorOutgoing och skapar ett nyckelpar för användaren.

  2. Administratören distribuerar certifikatet som innehåller nyckelparets offentliga nyckel till leverantörer som behöver åtkomst till tjänsten.

  3. Varje leverantör installerar certifikatet från Adventure Works Cycles i databasen och skapar en användare som äger certifikatet.

  4. Leverantören skapar sedan ett nyckelpar och skickar information om tjänstnamnet för leverantörstjänsten och ett certifikat med den offentliga nyckeln för nyckelparet till AdventureWorks2008R2-administratören.

  5. AdventureWorks2008R2-administratören skapar en användare för varje leverantör och associerar certifikatet från leverantören med användaren.

  6. Administratören skapar också en fjärrtjänstbindning för varje leverantör som associerar namnet på leverantörstjänsten med den användare som skapats för leverantören.

För att uppfylla kravet att endast kvalificerade leverantörer kan ansluta till databasen AdventureWorks2008R2 använder AdventureWorks2008R2-administratören Service Broker transportsäkerhet:

  1. För att konfigurera transportsäkerhet skapar AdventureWorks2008R2-administratören ett certifikat i master databasen för SQL Server-instansen som ska skicka meddelanden.

  2. AdventureWorks2008R2-administratören skickar certifikatet till varje leverantör.

  3. Varje leverantörsadministratör skapar en användare i master databasen för att äga certifikatet och installerar sedan certifikatet i SQL Server-instansen som tar emot meddelanden.

  4. Leverantörsadministratören skapar sedan ett certifikat i master instansdatabasen och skickar den offentliga nyckeln för användaren till AdventureWorks2008R2-administratören.

  5. Slutligen skapar AdventureWorks2008R2-administratören master en användare i databasen som äger varje leverantörscertifikat för offentlig nyckel och installerar varje leverantörscertifikat i databasen.

Kombinationen av transportsäkerhet och dialogsäkerhet hjälper AdventureWorks2008R2-administratören att uppfylla säkerhetskraven för det här programmet. I det här scenariot kan leverantörer inte logga in på databasen AdventureWorks2008R2 och Adventure Works-administratören kan inte logga in på leverantörsdatabaserna. Endast Service Broker-meddelanden kan utbytas mellan databaserna.