我有一个项目,目的是通过互联网公开多个Web应用程序。这些应用程序使用IIS / DotNet和Apache / Php构建。
互联网用户应该只在一个地方登录,然后才能访问任何应用程序。
这种情况有哪些可行的解决方案?一个要求是对现有应用程序的更改最小,另一个要求是使用ActiveDirectory进行用户管理。
到目前为止,我已找到以下解决方案:
- 使用反向代理(COTS产品)将Web应用程序发布到Internet,代理应该处理身份验证/ SSO
- 使用表单身份验证和域范围的Cookie;此解决方案需要更改现有应用程序和手动登录AD
- 使用表单身份验证创建新应用程序,并在用户将凭据输入此应用程序后,使用这些凭据将XMLHttpRequest发送到其他应用程序(这将登录用户)
- 使用客户端证书,这样当用户连接到应用程序时,他的证书将处理登录过程;当客户端浏览器中安装了多个证书时,这种方法会出现问题,因为浏览器会要求用户选择证书(这将针对每个应用程序进行)