2017-02-22 32 views
4

Этот сайт работает PHP на IIS 7.5, а доступ к сайту ограничен Активной группой каталогов через web.config следующим образом:Разрешить анонимный доступ к определенным URL в web.config

<security> 
    <authorization> 
     <remove users="*" roles="" verbs="" /> 
     <add accessType="Allow" roles="DOMAIN\AD-GROUP" /> 
    </authorization> 
</security> 

Единственное переписывание URL-адресов заключается в том, чтобы отправить большинство URL-адресов на index.php, а CodeIgniter обрабатывает маршрутизацию после этого.

Однако существует определенный шаблон URL, который должен быть подвергнут воздействию пользователей, не входящих в данную группу Active Directory. Это не файл, который, я считаю, используется для тега <location>; он должен быть основан на URL-адресе.

Дополнительный контекст: это шаблон URL в одной странице/приложении AngularJS. Пример: в приложении для управления проектами пользователи приложения могут создавать задачи, загружать файлы, отправлять заметки (например, http://domain/#/project/1234/tasks). Все эти пользователи находятся в группе AD-GROUP. Для каждого проекта есть титульная страница для проекта, которая может быть выдана не пользователям в организации (http://domain/#/project/1234/public). Они не будут в этой конкретной группе AD, но им нужно просмотреть эту страницу.

Можно ли это сделать в web.config, учитывая, что он основан на хеше в URL-адресе? Если нет, то какой альтернативный способ ограничения на основе группы AD, если не web.config?

ответ

1

Я думаю, что <location> по-прежнему остается. Согласно документации по адресу https://www.iis.net/learn/get-started/planning-your-iis-architecture/deep-dive-into-iis-configuration-with-iis-7-and-iis-8 путь может быть не только локальными файлами

Основным атрибутом на тегах местоположения является «путь». Значения могут быть:

...

  • «имя_сайт/приложение/виртуальный каталог»: Конкретный виртуальный каталог конкретного применения конкретного сайта.
+0

Я не смог заставить это работать. Любая попытка поместить регулярное выражение в качестве пути приводит к ошибке о недопустимых символах. –

+0

@ MelissaAvery-Weir, да, это не предназначено для работы с дорожкой, подобранной RegExp. Если вы не можете поместить фиксированный префикс в свои URL-адреса, я думаю, что следующим простейшим решением является установка [URL Rewrite module] (https://www.iis.net/downloads/microsoft/url-rewrite) и использование его для сопоставьте все ваши URLS с префикс-физической папкой и настройте 'location' для этой папки. – SergGr

+0

Все входящие URL-адреса сопоставляются с файлом 'index.php' уже для CodeIgniter для управления маршрутизацией. Дальнейшие исследования предполагают, что это еще менее возможно, чем я надеялся: URL-адрес, который нуждается в исключении безопасности, находится в хэш-части URL-адреса (для AngularJS). Я даже не думаю, что хеши делают это на сервере; вы не можете переписывать URL-адреса на них. –

Смежные вопросы