Aracılığıyla paylaş


Olayları Güvenli Bir Şekilde Sağlama

Yetkisiz kullanıcıların erişimi olmaması gereken olayları almasını engelleyebilirsiniz. Olay sağlayıcınız, Sistem Kayıt Defteri SağlayıcısıRegistryKeyChangeEventgibi sınıflar sağladığı gibi kendi olay sınıflarının örneklerini sağlayabilir. Olay sağlayıcınız __InstanceCreationEventgibi iç olayları da sunabilir. Daha fazla bilgi için bkz. Etkinlik Sağlayıcısı Yazma.

Olay sağlayıcısı, olay alıcılarına erişimi aşağıdaki yollarla denetleyebilir:

  • IWbemEventProviderSecurity::AccessCheck uygulayarak erişim denetimini kullanmak en verimli yoldur.

    Sağlayıcı, tüketicinin istenen olayı alma ayrıcalıklarına sahip olup olmadığını belirler. Tüketici kayıt için yeterli ayrıcalıklara sahip değilse WMI, erişim reddedildi hatası döndürür. Sağlayıcı olayları kimlerin alabileceğine karar verebilirse bu modu kullanın. Örneğin, bir sağlayıcı güvenlikle ilgili olaylar sağlayabilir ve tüketicinin SeSecurityPrivilege ayrıcalığı etkinken yönetici ayrıcalıklarına sahip olmasını gerektirebilir.

  • Olayları oluşturmak için kullanılan havuza IWbemEventSink::SetSinkSecurityuygulanması, geçen tüm olaylar için havuz üzerinde bir güvenlik tanımlayıcısı (SD) ayarlanmasına olanak tanır.

    WMI, SD temelinde erişim denetimleri gerçekleştirir. Sağlayıcı, olaylarını kimin kullanmasına izin verilmeyen ancak belirli bir havuz için SD'ye karar verebildiği durumlarda bu modu kullanın. Örneğin, olay sağlayıcınız IWbemEventSink::GetRestrictedSink çağrısıyla birkaç alıcı elde ettiyse ve her bir alıcı için bir güvenlik tanımlayıcısı istiyorsanız, IWbemEventSink::SetSinkSecurity kullanın.

  • Bir olayın SECURITY_DESCRIPTOR özelliğini ayarlamak, her olay için bir SD ayarlanmasına olanak tanır.

    Havuza teslim edilen her olayın farklı güvenlik tanımlayıcıları olabileceği durumlarda bu yaklaşımı kullanın. Bu yaklaşımı kullanmak için, sınıfınızın SECURITY_DESCRIPTOR özelliğini içermesi için sağlayıcınız tarafından tanımlanan ek olay sınıflarından herhangi birini __Event veya __ExtrinsicEvent türetin. Örneğin, olay sağlayıcınız havuz aracılığıyla hem güvenli hem de normal olayları yayımlayabilir. Bu durumda, güvenli olaylar için Administrators hesabı güvenlik tanımlayıcısını ve herkes tarafından alınabilecek normal olaylar için NULL güvenlik tanımlayıcısını kullanın.

Ayrılmış Olay Sağlayıcılarla Etkinlikleri Güvenceye Alma

Ayrıştırılmış olay sağlayıcıları, WMI'ye kaydettikleri şekilde, ayrıştırılmamış olay sağlayıcılarından farklıdır. Ayrılmış bir sağlayıcıdan gelen olaylar için IWbemEventProviderSecurity::AccessCheck çağrısı, hiçbir zaman istemci erişim belirtecini yaymaz. WMI, erişim denetimini, eşlenmeyen olay sağlayıcılarıyla aynı şekilde işler. Ayrılmış bir sağlayıcı yazma hakkında daha fazla bilgi için bkz. Bir Uygulamaya Sağlayıcı Ekleme.

Yalnızca FULL_WRITE ayrıcalığı WMI Denetimi altında Denetim Masası'na ayarlanmış olan yöneticiler, bir ad alanı için etkinlikleri başlatabilir. Daha fazla bilgi için bkz. WMI Denetimi ile Ad Alanı Güvenliğini Ayarlama.

WMI Olaylarının Güvenliğini Sağlama