1

我正在尝试扩展我编写的 Windows 服务以接受来自客户端的 kerberos 票证,然后将该票证委托给 ODBC 驱动程序,以便它可以使用它连接到另一台服务器。

ODBC 驱动程序在独立场景中与 kerberos 身份验证配合使用。也就是说,它可以很好地为当前用户请求和转发票证。但在我的服务中,我可能同时与多个用户打交道。如何接受票证,以便当我连接到 ODBC 驱动程序时,它会发现并使用正确的用户票证​​?

我能想到的一种可能性是通过使用票证作为所需用户创建一个新进程。但是,如果可能的话,我真的很想避免这种情况,因为它不适合我的服务的当前架构。

(注意:我的服务是用 Win32 api 用 C/C++ 编写的)

4

1 回答 1

0

我找到了自己问题的答案。

验证安全上下文后,我可以使用该ImpersonateSecurityContext功能。这将导致当前线程作为启动安全上下文的客户端运行。从该线程中,我可以调用 ODBC 驱动程序的连接函数,它将作为正确的用户进行身份验证。

http://msdn.microsoft.com/en-us/library/aa375497%28v=vs.85%29.aspx

于 2011-02-25T17:38:57.160 回答