1

我在 IBM WAS 服务器 (Windows) 上有一个 Web 应用程序。

在 WAS 应用程序中,用户可以浏览不同服务器上的文件。此功能连接到 Web 服务,以便从网络路径中检索文件列表。

Web 服务是使用 .net 构建的,并且驻留在与文件服务器位于同一域中的单独服务器上。

WAS 应用服务请求将用户 ID 作为调用的一部分发送。

有没有办法获取传递给 Web 服务的用户 ID,并根据 Windows 安全性将该用户限制为他们有权访问的文件/文件夹?

据我所知,除非 WAS 应用程序能够以登录用户的身份将请求发送到 Web 服务,否则这是不可能的。

那么,我的第二个问题是,是否可以将 Windows 用户凭据从 WAS 应用程序传递到 Web 服务?

我对 Windows 身份验证和模拟不太熟悉,而且我对 WAS 以及它如何处理安全性的了解更少,所以我希望找出这是否可行以及我可以从哪里开始。

4

3 回答 3

1

这是一个使用 .NET 了解匿名访问和模拟的链接:匿名访问和模拟

于 2009-05-22T21:00:24.790 回答
1

不可以。您可以创建身份令牌,但为了进行访问检查,您需要一个模拟令牌,并且只能通过提供密码或通过委托受信任的帐户委托来创建这样的令牌,该帐户反过来又提供了密码(或足够证明相信原始身份拥有密码,即 AD 为他担保)。

您需要做的是让 WAS 服务器模拟调用者,然后在模拟下调用您的服务。必须将运行 WAS 的帐户配置为允许约束委派

于 2009-05-22T21:03:15.673 回答
1

假设您有一个 Active Directory 设置,我能想到的 WAS 服务器发送访问它的用户凭据的唯一方法是 DC 识别 WAS 服务(即运行您的 WAS 应用程序的帐户)进行委派。我们在这里遇到了这个问题(有点)。我们使用 AD 帐户来运行我们的 IIS 应用程序池,然后该 AD 帐户需要能够针对 AD 验证用户并连接到 SQL Server。

我们的解决方法是为运行 IIS 应用程序池的用户注册服务进程名称 (SPN)。这允许用户帐户针对 AD 对用户进行身份验证,因为 AD 会将其识别为服务。然后,您可以遵循传统的 .NET 模拟规则来传递凭据。很抱歉,我无法提供更具体的信息,但我希望这至少能为您指明正确的方向。

请参阅: http ://technet.microsoft.com/en-us/library/cc773257.aspx

于 2009-05-22T21:04:57.557 回答