0

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

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

我们已经成功设置了带有 ARR / URL Rewrite 的反向代理,如本文档中所述: https ://confluence.atlassian.com/display/JIRAKB/Integrating+JIRA+with+IIS+using+ARR

我遇到的问题是 URL-Rewrite 在执行堆栈上发生得太高并绕过任何模块。

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

有任何想法吗?

4

1 回答 1

0

我有 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>

问候

于 2014-03-20T17:26:42.687 回答