Udostępnij za pośrednictwem


Ustawianie zabezpieczeń procesu aplikacji klienckiej

Aplikacje klienckie, które wywołują interfejsy WMI, mogą kontrolować poziomy zabezpieczeń swoich procesów. Wszystkie aplikacje WMI uzyskują dostęp do usługi WMI za pośrednictwem modelu COM i można wywołać funkcję COM CoInitializeSecurity w celu ustawienia zabezpieczeń procesów. Aplikacje, które tworzą wywołania asynchroniczne do usługi WMI, oraz aplikacje, które rejestrują się jako odbiorcy zdarzeń, ustawiają poziomy zabezpieczeń wywołań do usługi WMI.

Jeśli nie wykonasz jawnego wywołania CoInitializeSecurity, COM wywołuje ją niejawnie przy użyciu wartości z rejestru. Jednak wartości rejestru mogą mieć niższe ustawienia personifikacji i uwierzytelniania, które nie zapewniają bezpieczeństwa wymaganego dla usługi WMI. Aby uzyskać więcej informacji, zobacz Ustawianie domyślnego poziomu zabezpieczeń procesu przy użyciu języka C++.

Nie zaleca się dostępu asynchronicznego do usługi WMI. Asynchroniczne wywołanie zwrotne umożliwia użytkownikowi nieuwierzytelnionemu dostarczanie danych do odbiornika. Stwarza to zagrożenie bezpieczeństwa dla skryptów i aplikacji. Aby wyeliminować ryzyko, należy użyć komunikacji semisynchronicznej lub synchronicznej lub przeprowadzić odpowiednie kontrole dostępu w aplikacji klienckiej. Aby uzyskać więcej informacji, zobacz w sekcji 'Wywoływanie metody'.

Wywołania dowolnego z serwerów proxy WMI (IWbemServices, IEnumWbemClassObject,IWbemCallResultlub IWbemRefresher) używają wskaźnika spoza procesu. Aby uzyskać więcej informacji na temat ustawień domyślnych i zaleceń, zobacz Ustawianie zabezpieczeń w usłudze IWbemServices i innych serwerach proxy.

Poniższa procedura opisuje kroki, które należy wykonać, aby ustawić zabezpieczenia usługi WMI w procesie aplikacji.

Aby ustawić zabezpieczenia usługi WMI w procesie aplikacji

  1. Określ poziomy zabezpieczeń wymagane dla systemów operacyjnych Windows, na których działa aplikacja kliencka.
  2. Wywołaj funkcję COM CoInitializeSecurity, aby ustawić domyślne zabezpieczenia dla procesu, w którym działa aplikacja kliencka. Deklaruje to, ile zabezpieczeń wymagają inne aplikacje w celu uzyskania dostępu do procesu, w którym działa aplikacja.
  3. Jeśli musisz zmienić zabezpieczenia na pojedynczym serwerze proxy, na przykład podczas innego wywołania usługi IWbemServices, wywołaj CoSetProxyBlanket.
  4. Jeśli musisz kontrolować zdalny sprzęt lub obiekt systemowy, który wymaga większej liczby uprawnień, użyj funkcji AdjustTokenPrivileges, aby włączyć niezbędne uprawnienia. Należy pamiętać, że nie można włączyć uprawnień, które nie zostały jeszcze przypisane do tego procesu. Aby uzyskać więcej informacji, zobacz Sprawdzanie dostępu do obiektów prywatnych.

Aby uzyskać więcej informacji na temat ustawiania domyślnego poziomu zabezpieczeń procesu, zobacz Ustawianie domyślnego poziomu zabezpieczeń procesu przy użyciu języka C++ i Ustawienie domyślnego poziomu zabezpieczeń procesu przy użyciu języka VBScript.