【发布时间】:2014-10-16 11:07:11
【问题描述】:
这是一个我需要帮助的场景:
客户端将文件传递给 Web 服务,该服务将它们存储在一个唯一生成的文件夹中(仅用于该操作)。 Web 服务将有关该文件的信息(位置、健康状况等)保存在数据库中。 Windows 服务(作为系统运行)经常检查该数据库以查找处理文件的更改。 这些文件将存储在单独的数据库(如库)中以供以后使用。 此操作需要通过将文件上传到 Web 服务的用户来完成。 我通过传递令牌尝试了不带密码的模拟,但我从来没有让它工作。
是否有机会在没有密码的情况下模拟 Active Directory 用户以作为该特定用户启动操作?
【问题讨论】:
-
谢天谢地,它不起作用!或者任何黑客或恶意管理员都可以伪造用户的身份。您应该找到一种无需密码即可传递用户身份的方法。社交应用 API 通过发布特定于用户的令牌来执行此操作,该令牌会在一段时间后过期。
-
好吧,模拟确实在有限的情况下起作用,因为在管理凭据下运行的服务器应用程序有合法的需求来执行需要验证的操作(由操作系统)反对用户实际拥有的权限。显然,模拟是一种受限制的特权,请注意管理员可以总是“伪造用户的身份”——他们拥有所有可用的工具来这样做。
-
嗯...为什么必须是执行文件操作的实际用户帐户?通常我们让服务器执行此操作,并将发出操作请求的 AD 帐户记录到某种审计日志中。不知道你想在这里完成什么,似乎有点奇怪。
-
@PanagiotisKanavos 因为服务器端没有允许通过社交应用程序进行身份验证的 API。此外,该网络是“军事区”,因此无法访问互联网。
-
@code4life 用于服务器上的客户端。它带有一个接口,我必须通过需要特定用户身份验证的服务调用。这主要用于记录,因此您可以看到每个用户在他们的客户上做了什么。遗憾的是,界面上只有两种身份验证方法:通过 Windows 身份验证或用户名和密码。
标签: c# impersonation