2013-05-08 1 views
0

Мы изучаем использование Orchard для внутреннего сайта.Проверка подлинности CMS и Шибболета Orchard

В настоящее время мы используем Shibboleth для начальной аутентификации, который делает POST обратно на наш сайт в формате 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" /> 

Я пробовал несколько различных вариаций этого, и до сих пор не кости.

Поскольку я все равно вытащил источник, я попытался проделать простой маршрут, просто добавив два звонка и пересоздания, но это приводит к той же проблеме.

Если я удалю требование Шиба, то Orchard начнет отлично, и если я добавлю новый проект MVC с Shib (и добавили два наших вызова IgnoreRoute), который также отлично работает.

Браузер возвращает 404 (пустая страница), поэтому я чувствую, что Орчард по-прежнему захватывает запрос.

Любые предложения по поводу того, как я мог бы получить, чтобы Orchard пропустил этот путь?

ответ

1

В итоге я сделал две вещи.

Во-первых, я создал новый модуль, используя не найденный 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> обработчики, сразу после <clear />:

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

В последний раз не требовалось в прошлом, но, кажется, нужно что-то Orchard делает.