Aracılığıyla paylaş


İstemci Kimliğe Bürünme (Yetkilendirme)

Kimliğe Bürünme, bir iş parçacığının iş parçacığının sahibi olan işlemden farklı güvenlik bilgileri kullanarak yürütülebilmesidir. Genellikle, bir sunucu uygulamasındaki bir iş parçacığı istemcinin kimliğine bürüner. Bu, sunucu iş parçacığının sunucudaki nesnelere erişmek veya istemcinin kendi nesnelerine erişimi doğrulamak için bu istemci adına işlem yapmasına olanak tanır.

Microsoft Windows API'sinde kimliğe bürünmeye başlamak için aşağıdaki işlevler sağlanır:

  • DDE sunucu uygulaması, istemcinin kimliğine bürünmek için DdeImpersonateClient işlevini çağırabilir.
  • Adlandırılmış kanal sunucusu ImpersonateNamedPipeClient işlevini çağırabilir.
  • Oturum açmış bir kullanıcının erişim belirtecigüvenlik bağlamının kimliğine bürünmek için ImpersonateLoggedOnUser işlevini çağırabilirsiniz.
  • ImpersonateSelf işlevi, bir iş parçacığının kendi erişim belirtecinin bir kopyasını oluşturmasını sağlar. Bu, bir uygulamanın tek bir iş parçacığının güvenlik bağlamını değiştirmesi gerektiğinde kullanışlıdır. Örneğin, bazen bir işlemin yalnızca bir iş parçacığınınayrıcalığını etkinleştirmesi gerekir.
  • hedef iş parçacığının belirtilen kimliğe bürünme belirtecigüvenlik bağlamında çalışmasına neden olmak için SetThreadToken işlevini çağırabilirsiniz.
  • Microsoft Uzaktan Yordam Çağrısı (RPC) sunucu uygulaması, istemcinin kimliğine bürünmek için RpcImpersonateClient işlevini çağırabilir.
  • bir güvenlik paketi veya uygulama sunucusu, istemcinin kimliğine bürünmek için impersonateSecurityContextişleviniçağırabilir.

Bu kimliğe bürünmelerin çoğu için, kimliğine bürünen iş parçacığı RevertToSelf işlevini çağırarak kendi güvenlik bağlamını geri alabilir. Özel durum, RPC sunucu uygulamasının rpcRevertToSelfçağırdığı veya rpcRevertToSelfExkendi güvenlik bağlamını geri döndürmek içinRPC kimliğe bürünme işlemidir.

Not: Bir Win32 hizmetinden bir kullanıcının kimliğine bürünürken kullanıcı ortamı değişkenlerini kullanan API'leri çağırıyorsanız, kimliğe bürünme işlemini gerçekleştirmeden önce RegDisablePredefinedCache çağırmanız gerekebilir.