使用IIS/ARR/URLEWRITE反向代理和Office 365身份验证层访问内部应用程序

使用IIS/ARR/URLEWRITE反向代理和Office 365身份验证层访问内部应用程序,iis,single-sign-on,adfs,url-rewrite-module,arr,Iis,Single Sign On,Adfs,Url Rewrite Module,Arr,我已经能够创建一个使用Office 365 SSO进行身份验证的ASP MVC应用程序 我正在寻找一种方法,在访问网络上的任何内部应用程序(apache)之前,将Office 365作为SSO层 我们已成功地使用ARR/URL重写设置了反向代理,如本文档所述: 我遇到的问题是URL重写发生在执行堆栈的较高位置,并绕过了任何模块 我正在寻找一些关于如何在IIS上为防火墙后面的内部非ASP.NET应用程序实现Office 365身份验证层的指导 有什么想法吗?我有ARR和WIF的经验。我必须熟悉I

我已经能够创建一个使用Office 365 SSO进行身份验证的ASP MVC应用程序

我正在寻找一种方法,在访问网络上的任何内部应用程序(apache)之前,将Office 365作为SSO层

我们已成功地使用ARR/URL重写设置了反向代理,如本文档所述:

我遇到的问题是URL重写发生在执行堆栈的较高位置,并绕过了任何模块

我正在寻找一些关于如何在IIS上为防火墙后面的内部非ASP.NET应用程序实现Office 365身份验证层的指导


有什么想法吗?

我有ARR和WIF的经验。我必须熟悉IIS 7.5如何处理本机代码和托管代码。我假设您正在以集成模式运行应用程序池,否则其余部分将不适用

由于不知道有关问题的所有详细信息,因此很难知道,但可能存在与托管代码与本机/非托管代码相关的配置问题。ARR是一个本机http模块。它与URLRewrite http模块结合使用,允许从后端web服务器提供内容

默认情况下,IIS不会对本机处理程序(如ARR)处理的任何请求运行托管http模块。若要将IIS配置为对本机处理程序(如WIF或其他托管.NET代码)处理的内容运行托管模块,必须将IIS配置为运行托管代码,而不考虑处理程序。最简单的方法是在system.webServer\modules元素中设置runAllManagedModulesForAllRequests=“true”。您还可以通过将前提条件设置为“”来覆盖默认IIS行为,从而有选择地启用单个模块运行:

  <system.webServer>
<modules runAllManagedModulesForAllRequests="true">
  <add name="WSFederationAuthenticationModule" type="Microsoft.IdentityModel.Web.WSFederationAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="" />
  <add name="SessionAuthenticationModule" type="Microsoft.IdentityModel.Web.SessionAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="" />
</modules>

问候