【问题标题】:Orchard CMS and Shibboleth authenticationOrchard CMS 和 Shibboleth 身份验证
【发布时间】:2013-05-08 22:28:43
【问题描述】:

我们正在考虑将 Orchard 用于内部网站。

我们目前使用Shibboleth 进行初始身份验证,这会以http://domain/Shibboleth.sso/{stuff} 的格式返回我们的站点

在我们当前的 ASP.NET MVC 网站中,我们只需使用以下内容修改 Global.asax:

routes.IgnoreRoute("Shibboleth.sso/{isapiInfo}/{isapiDetails}");
routes.IgnoreRoute("Shibboleth.sso/{*pathInfo}");

不幸的是,Orchard 不允许我们走那条路,所以经过一些研究,它看起来需要添加一个处理程序。

通过 IIS (Server 2008 R2) 这被添加到处理程序组内的 web.config 中:

<add name="Shib" path="*.sso" verb="*" modules="IsapiFilterModule" scriptProcessor="C:\{path}\isapi_shib.dll" resourceType="Either" requireAccess="Script" preCondition="integratedMode" />

我已经尝试了几个不同的变体,但仍然没有骰子。

由于无论如何我都删除了源,我尝试采用简单的方法,即添加两个 routes.IgnoreRoute 调用并重新构建,但这会导致同样的问题。

如果我删除 Shib 要求,那么 Orchard 就可以正常启动,如果我在启用 Shib 的情况下放入一个新的 MVC 项目(并添加了我们的两个 IgnoreRoute 调用),它也可以正常工作。

浏览器正在返回 404(空白页),所以我感觉 Orchard 仍在抓取请求。

关于如何让 Orchard 跳过这条路径的任何建议?

【问题讨论】:

    标签: orchardcms shibboleth


    【解决方案1】:

    我最终做了两件事。

    首先,我使用 Not Found MVC 作为模板创建了一个新模块。特别是the InstallerModule code

    我在 system.web > httpModules 中添加了以下内容:

    <add name="InstallerModule" type="IgnoreShibboleth.InstallerModule, IgnoreShibboleth" />
    

    我还在 system.webServer > 模块中添加了相同的内容。

    所有的代码都是在忽略路由中添加的。

    routes.IgnoreRoute("Shibboleth.sso/{isapiInfo}/{isapiDetails}");
    routes.IgnoreRoute("Shibboleth.sso/{*pathInfo}");
    

    我非常接近的最后一步。我在 system.webServer > handlers 下添加了以下内容,紧跟在&lt;clear /&gt; 之后:

    <add name="Shib" path="*.sso" verb="*" modules="IsapiModule" scriptProcessor="{path-to}\lib\shibboleth\isapi_shib.dll" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,bitness64" />
    

    过去不需要最后一次,但对于 Orchard 正在做的事情似乎是必要的。

    【讨论】:

      猜你喜欢
      • 2015-01-22
      • 1970-01-01
      • 1970-01-01
      • 2012-09-06
      • 1970-01-01
      • 2015-04-27
      • 1970-01-01
      • 1970-01-01
      • 2020-08-12
      相关资源
      最近更新 更多