我可以使用IIS为其他网站执行ActiveDirectory单一login吗?

我正在尝试将Active Directory单点login支持添加到现有的SOAP服务器。 可以将服务器configuration为接受可信的反向代理,并为经过身份validation的用户使用X远程用户HTTP头。 我想将IISconfiguration为此服务的受信代理,以便它处理SOAP服务器的所有Active Directory身份validation。

基本上IIS将不得不接受端口X和URL Y上的HTTP连接,执行所有的身份validation,然后将连接代理到不同的服务器(很可能是相同的X和Y)。

不幸的是,我没有IIS或AD的知识(所以我正在尽我所能去学习足够的这个解决scheme),所以请温和。 我会假设这不是一个不常见的情况,那么有没有一些简单的方法来做到这一点?

  1. 这种内置于IIS的function,还是我自己需要build立某种IIS代理程序?

  2. 是否有一个更好的select来完成身份validation和X远程用户HTTP头设置比需要IIS?

更新:

例如,我想创build的是:

[CLIENT] [IIS] [AD] [SOAP-SERVER] 1. |---------------->| 2. |<--------------->|<---------->| 3. |--------------------------->| 4. |<---------------------------| 5. |<----------------| 1. POST to http://example.com/foo/bar.cgi 2. Client is not authenticated, so do authentication 3. Once validated, send request to server (X-Remote-User: {userid}) 4. Process request, send response 5. Forward response to client 

我需要知道如何将IISconfiguration为使用AD进行用户的自动身份validation,然后将请求代理到实际的服务器,并在X-Remote-User HTTP头中发送用户标识。

最简单的解决scheme是使用ISA服务器(或Forefront TMG)作为网站的反向代理。 您可以configuration网站的ISA规则,以通过AD对用户访问进行身份validation。

您也可以从网站操纵主机标头,并且应该能够通过网站规则的HTTP策略选项来实现您想要的内容。

我不相信您需要的function在IIS中可用。

我build议看看运行Active Directory联合身份validation服务。 它可以提供单点login。

http://msdn.microsoft.com/en-us/magazine/cc163520.aspx

就像Apache可以用模块做类似的事情一样,IIS也是如此 – 但是,没有任何东西可以在本地烘焙到允许反向代理行为。

您可以通过URL重写和应用程序请求路由模块获得一些反向代理的行为。 我不知道你是否能够修改标题。 有关详细信息,请参阅以下博客文章: http : //blogs.iis.net/wonyoo/archive/2008/07/09/application-request-routing-arr-as-a-reverse-proxy.aspx

您也可以部署类似function的自定义代码。 尽pipe你的结果可能不是你期望的结果,但请参阅这篇文章中的示例实现,但实际上,这不是一个简单的问题,而是简单地通过一个中间人在线路上移动位: http : //www.codeproject.com/KB/networking安全/ HTTPReverseProxy.aspx

真正的反向代理,你应该看看ISA服务器坚持MS平台。