我们有一个从不同来源收集信息的 Web 应用程序(sharepoint)。我们希望能够将用户链接到这些不同来源的主要网站并对其进行预认证。IE 他们输入其他来源的凭据(这些来源有许多不同类型的 LDAP、AD 和自制!),我们为他们检索一些信息,并记住那里的详细信息(可能单点登录以保持他们的良好和安全) . 然后,用户可以单击一个链接,该链接将在另一个已经过身份验证的窗口中打开完整的应用程序。
这甚至可能吗?
我们有一个从不同来源收集信息的 Web 应用程序(sharepoint)。我们希望能够将用户链接到这些不同来源的主要网站并对其进行预认证。IE 他们输入其他来源的凭据(这些来源有许多不同类型的 LDAP、AD 和自制!),我们为他们检索一些信息,并记住那里的详细信息(可能单点登录以保持他们的良好和安全) . 然后,用户可以单击一个链接,该链接将在另一个已经过身份验证的窗口中打开完整的应用程序。
这甚至可能吗?
Office Server 具有单点登录 api 作为内置功能。你可能想调查一下。它使您能够安全地注册用户凭据,并在运行时访问它。
您需要充当 Web 浏览器,以在本地存储凭据(通常在 cookie 中)对不同的站点进行操作。因此,请使用具有 cookie 支持的适当客户端库。这可能适用于大多数网站。有些网站使用 HTTP 身份验证,也更容易从适当的客户端库访问。最苛刻的可能是访问 SSL 网站,但同样,现在大多数客户端 HTTP 库也涵盖了这一点。
您现在所需要的只是准备您的 Web 应用程序以充当所有这些单独 Web 资源的代理。这在 Sharepoint 中究竟是如何完成的,嗯,我希望其他人会回答这个问题......
真正的单点登录是一项艰巨的任务。Wikipedia 描述了一些 SSO 项目的常用方法和链接。
如果您想要更轻的东西,我过去使用过这种方法:
安全方面,指南应该几乎不可能被猜到。你可以通过让代币很快过期来降低风险——打电话给经纪人应该不会超过几秒钟。
如果目标应用程序使用 Windows 身份验证并且没有基于角色的逻辑,则您不必做太多事情。只需重定向并让您的 File/UrlAuthorization 处理它。如果需要,您可以使用安全令牌 db 处理基于角色的权限。