Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Możesz uniemożliwić nieautoryzowanym użytkownikom odbieranie zdarzeń, do których nie powinni mieć dostępu. Dostawca zdarzeń może dostarczyć wystąpienia własnych klas zdarzeń, podobnie jak dostawca rejestru systemu dostarcza klasy, takie jak RegistryKeyChangeEvent. Dostawca zdarzeń może również dostarczać zdarzenia wewnętrzne, takie jak __InstanceCreationEvent. Aby uzyskać więcej informacji, zobacz Pisanie dostawcy zdarzeń.
Dostawca zdarzeń może kontrolować dostęp do adresatów zdarzeń w następujący sposób:
Użycie kontroli dostępu przez zaimplementowanie IWbemEventProviderSecurity::AccessCheck jest najbardziej wydajnym sposobem.
Dostawca określa, czy użytkownik ma uprawnienia do odbierania żądanego zdarzenia. Jeśli użytkownik nie ma wystarczających uprawnień do zarejestrowania, usługa WMI zwraca błąd odmowy dostępu. Użyj tego trybu, gdy dostawca może podjąć decyzję o tym, kto może odbierać zdarzenia. Na przykład dostawca może dostarczyć zdarzenia dotyczące bezpieczeństwa i może wymagać, aby klient miał uprawnienia administratora z włączonym przywilejem SeSecurityPrivilege.
Implementowanie IWbemEventSink::SetSinkSecurity na ujściu używanym do zgłaszania zdarzeń umożliwia ustawienie deskryptora zabezpieczeń (SD) na ujściu dla wszystkich zdarzeń przechodzących.
Usługa WMI przeprowadza kontrole dostępu na podstawie SD. Użyj tego trybu, gdy dostawca nie może podjąć decyzji dotyczącej tego, kto może korzystać z jego wydarzeń, ale może zdecydować o SD dla określonego odbiornika. Na przykład użyj IWbemEventSink::SetSinkSecurity, jeśli dostawca zdarzeń uzyskał kilka obiektów docelowych przez wywołania do IWbemEventSink::GetRestrictedSink i chcesz deskryptora zabezpieczeń dla każdego obiektu docelowego.
Ustawienie właściwości SECURITY_DESCRIPTOR zdarzenia umożliwia ustawienie SD dla każdego zdarzenia.
Użyj tego podejścia, gdy każde zdarzenie dostarczone do ujścia może mieć różne deskryptory zabezpieczeń. Aby użyć tego podejścia, należy wyprowadzić dowolne klasy zdarzeń zewnętrznych określone przez dostawcę z __Event lub __ExtrinsicEvent tak, aby klasa zawierała właściwość SECURITY_DESCRIPTOR. Na przykład dostawca zdarzeń może publikować zdarzenia bezpieczne i normalne za pośrednictwem ujścia. W takim przypadku użyj deskryptora zabezpieczeń konta Administratora do zabezpieczania zdarzeń i deskryptora zabezpieczeń NULL dla normalnych zdarzeń, które mogą być odbierane przez każdego użytkownika.
Zabezpieczanie zdarzeń przez odłączonych dostawców zdarzeń
Niezależni dostawcy zdarzeń różnią się od nieoddzielonych dostawców zdarzeń w sposobie, w jaki rejestrują się w WMI. Wywołanie metody IWbemEventProviderSecurity::AccessCheck dla zdarzeń od dostawcy odłączonego nigdy nie propaguje tokenu dostępu klienta. Usługa WMI obsługuje kontrolę dostępu w taki sam sposób, jak w przypadku sprzężonych dostawców zdarzeń. Aby uzyskać więcej informacji na temat pisania niezależnego dostawcy, zobacz Włączanie dostawcy w aplikacji.
Tylko administratorzy z uprawnieniami FULL_WRITE ustawionymi w WMI Control w Panelu sterowania mogą zgłaszać zdarzenia dla przestrzeni nazw. Aby uzyskać więcej informacji, zobacz Ustawianie zabezpieczeń przestrzeni nazw za pomocą WMI Control.
Tematy pokrewne