1

我们有一个从不同来源收集信息的 Web 应用程序(sharepoint)。我们希望能够将用户链接到这些不同来源的主要网站并对其进行预认证。IE 他们输入其他来源的凭据(这些来源有许多不同类型的 LDAP、AD 和自制!),我们为他们检索一些信息,并记住那里的详细信息(可能单点登录以保持他们的良好和安全) . 然后,用户可以单击一个链接,该链接将在另一个已经过身份验证的窗口中打开完整的应用程序。

这甚至可能吗?

4

3 回答 3

2

Office Server 具有单点登录 api 作为内置功能。你可能想调查一下。它使您能够安全地注册用户凭据,并在运行时访问它。

于 2008-12-26T17:23:02.833 回答
1

您需要充当 Web 浏览器,以在本地存储凭据(通常在 cookie 中)对不同的站点进行操作。因此,请使用具有 cookie 支持的适当客户端库。这可能适用于大多数网站。有些网站使用 HTTP 身份验证,也更容易从适当的客户端库访问。最苛刻的可能是访问 SSL 网站,但同样,现在大多数客户端 HTTP 库也涵盖了这一点。

您现在所需要的只是准备您的 Web 应用程序以充当所有这些单独 Web 资源的代理。这在 Sharepoint 中究竟是如何完成的,嗯,我希望其他人会回答这个问题......

于 2008-12-01T18:41:12.600 回答
1

真正的单点登录是一项艰巨的任务。Wikipedia 描述了一些 SSO 项目的常用方法和链接。

如果您想要更轻的东西,我过去使用过这种方法:

  • 创建一个表以将临时安全令牌存储在所有应用程序都可以访问的位置。
  • 从源应用程序(在您的情况下为 Sharepoint),应外部应用程序的请求,在令牌表中保存一个安全令牌(可能是一个 guid、紧过期和用户 ID)。
  • 重定向到目标应用程序中的请求代理页面/处理程序。在请求中包含请求的最终页面和 guid。
  • 在代理中,查找安全令牌。如果它存在并且尚未过期,则进行身份验证、授权并在一切正常的情况下重定向到最终页面。如果没有,请发送权限错误。

安全方面,指南应该几乎不可能被猜到。你可以通过让代币很快过期来降低风险——打电话给经纪人应该不会超过几秒钟。

如果目标应用程序使用 Windows 身份验证并且没有基于角色的逻辑,则您不必做太多事情。只需重定向并让您的 File/UrlAuthorization 处理它。如果需要,您可以使用安全令牌 db 处理基于角色的权限。

于 2008-12-01T19:43:50.927 回答