Udostępnij za pośrednictwem


Omówienie zabezpieczeń (Service Broker)

Dotyczy:programu SQL ServerAzure SQL Managed Instance

Usługa Service Broker ułatwia pisanie wysoce skalowalnych aplikacji baz danych, które są również bezpieczne i niezawodne. Zabezpieczenia usługi Service Broker umożliwiają usługom hostowanych przez różne wystąpienia programu SQL Server bezpieczne komunikowanie się nawet wtedy, gdy wystąpienia znajdują się na różnych komputerach, na których nie ma innej relacji zaufania lub gdy komputery źródłowe i docelowe nie są połączone z tą samą siecią w tym samym czasie.

Zabezpieczenia usługi Service Broker opierają się na certyfikatach. Ogólne podejście polega na użyciu certyfikatów w celu ustanowienia poświadczeń zdalnej bazy danych, a następnie mapowania operacji z zdalnej bazy danych na użytkownika lokalnego. Uprawnienia użytkownika lokalnego mają zastosowanie do dowolnej operacji w imieniu usługi zdalnej. Certyfikat jest współużytkowany między bazami danych. Żadne inne informacje dla użytkownika nie są udostępniane.

Usługa Service Broker zapewnia dwa różne typy zabezpieczeń — zabezpieczenia okien dialogowych i zabezpieczenia transportu. Zrozumienie tych dwóch typów zabezpieczeń oraz ich współdziałanie pomoże Ci zaprojektować, wdrożyć i administrować aplikacjami usługi Service Broker.

  • Bezpieczeństwo dialogu — szyfruje wiadomości w poszczególnych konwersacjach i weryfikuje tożsamości uczestników dialogu. Zabezpieczenia okien dialogowych zapewniają również zdalną autoryzację i sprawdzanie integralności komunikatów. Zabezpieczenie dialogu ustanawia uwierzytelnianą i zaszyfrowaną komunikację między dwiema usługami.

  • Bezpieczeństwo transportu — uniemożliwia nieautoryzowanym bazom danych wysyłanie komunikatów poprzez Service Broker do baz danych w lokalnym wystąpieniu. Bezpieczeństwo transportu ustanawia uwierzytelnione połączenie sieciowe między dwiema bazami danych.

Zwróć uwagę, że protokół dialogowy i sąsiedni protokół brokera są projektowane wokół przekazywania komunikatów między bazami danych, a nie wykonywania poleceń w zdalnej bazie danych. Ten styl komunikacji pozwala usłudze Service Broker oferować usługi bez potrzeby, aby bazy danych dzieliły się logowaniami do programu SQL Server lub poświadczeniami bezpieczeństwa systemu Windows.

Aby uzyskać więcej informacji na temat certyfikatów, zobacz CREATE CERTIFICATE (Transact-SQL).

Scenariusz zabezpieczeń Adventure Works Cycles

Notatka

Przykłady kodu w tym artykule zostały przetestowane przy użyciu przykładowej bazy danych AdventureWorks2022, którą można pobrać ze strony głównej Przykłady programu Microsoft SQL Server i projekty społeczności.

W przykładowym scenariuszu biznesowym firma Adventure Works Cycles, fikcyjna firma, tworzy usługę Service Broker do dostarczania zamówień części dostawcom. Ta usługa wymaga zabezpieczeń zarówno dla firmy Adventure Works, jak i dostawców. Każdy dostawca musi mieć możliwość zagwarantowania, że tylko istniejący klienci mogą przesyłać zamówienia. Firma Adventure Works musi mieć możliwość zagwarantowania, że tylko kwalifikowani dostawcy mogą otrzymywać zamówienia. Komunikaty między bazą danych AdventureWorks2008R2 i dostawcą muszą być szyfrowane, aby żadna inna firma nie mogła odczytać komunikatu. Aby zapewnić najwyższy poziom bezpieczeństwa, tylko kwalifikowani dostawcy mogą łączyć się z bazą danych AdventureWorks2008R2.

Aby spełnić wymagania dotyczące szyfrowania komunikatów, firma Adventure Works i dostawcy korzystają z zabezpieczeń okna dialogowego usługi Service Broker:

  1. Aby skonfigurować zabezpieczenia okna dialogowego, administrator AdventureWorks2008R2 tworzy użytkownika lokalnego o nazwie VendorOutgoing i tworzy parę kluczy dla tego użytkownika.

  2. Administrator dystrybuuje certyfikat zawierający klucz publiczny pary kluczy do dostawców, którzy muszą uzyskać dostęp do usługi.

  3. Każdy dostawca instaluje certyfikat z adventure works cycles do bazy danych i tworzy użytkownika, który jest właścicielem certyfikatu.

  4. Następnie dostawca tworzy parę kluczy i wysyła informacje na temat nazwy usługi dostawcy i certyfikatu z kluczem publicznym tej pary kluczy do administratora AdventureWorks2008R2.

  5. Administrator AdventureWorks2008R2 tworzy użytkownika dla każdego dostawcy i kojarzy certyfikat od tego dostawcy z użytkownikiem.

  6. Administrator tworzy również powiązanie usługi zdalnej dla każdego dostawcy, który kojarzy nazwę usługi dostawcy z użytkownikiem utworzonym dla dostawcy.

Aby spełnić wymaganie, aby tylko kwalifikowani dostawcy mogli nawiązać połączenie z bazą danych AdventureWorks2008R2, administrator AdventureWorks2008R2 korzysta z zabezpieczeń transportu usługi Service Broker:

  1. Aby skonfigurować zabezpieczenia transportu, administrator AdventureWorks2008R2 tworzy certyfikat w bazie danych "master" instancji serwera SQL, która będzie wysyłać komunikaty.

  2. Administrator AdventureWorks2008R2 wysyła certyfikat do każdego dostawcy.

  3. Każdy administrator dostawcy tworzy użytkownika w bazie danych master w celu posiadania certyfikatu, a następnie instaluje certyfikat w wystąpieniu programu SQL Server, który będzie otrzymywać komunikaty.

  4. Następnie administrator dostawcy tworzy certyfikat w bazie danych master wystąpienia i wysyła klucz publiczny dla tego użytkownika do administratora AdventureWorks2008R2.

  5. Na koniec administrator AdventureWorks2008R2 tworzy użytkownika w bazie danych master w celu posiadania każdego certyfikatu klucza publicznego dostawcy i instaluje każdy certyfikat dostawcy w bazie danych.

Połączenie zabezpieczeń transportu i zabezpieczeń okien dialogowych pomaga administratorowi AdventureWorks2008R2 spełnić wymagania dotyczące zabezpieczeń tej aplikacji. Należy zauważyć, że w tym scenariuszu dostawcy nie mogą zalogować się do bazy danych AdventureWorks2008R2, a administrator firmy Adventure Works nie może zalogować się do baz danych dostawcy. Między bazami danych można wymieniać tylko komunikaty usługi Service Broker.

Zobacz też