Конфигурирование параметров безопасности в файле web.config на сервере ArcGIS Spatial Data Server for IIS
Если доступ к вашим сервисам на сервере пространственных данных ArcGIS Spatial Data Server for IIS будут получать через интранет Windows-аутентифицированные пользователи, вы можете защитить сервер пространственных данных путем конфигурирования файла web.config в папке REST директории установки сервера ArcGIS Spatial Data Server for IIS.
Для этого, прежде всего, включите сервисы роли IIS и включите аутентификацию Windows или обычную аутентификацию. Затем можно добавить в файл web.config элементы расположения, содержащие элемент авторизации в качестве дочернего элемента конфигурации.
Включение сервисов роли IIS
Прежде чем добавить элемент расположения в файл web.config для управления доступом к вашему сервису, необходимо включить сервис роли IIS для авторизации URL и сервис роли аутентификации Windows или обычной аутентификации IIS.
Сервисы ролей можно включить в менеджере сервера. Выполните вход на сервер в качестве члена группы администраторов Windows и измените настройки в менеджере сервера.
-
Запустите менеджер сервера.
Пуск (Start) > Администрирование (Administrative Tools) > Менеджер сервера (Server Manager) > Роли (Roles)
Открывается диалоговое окно Менеджер сервера (Server Manager).
- Перейдите к разделу Веб-сервер (IIS) (Web Server (IIS)) и щёлкните Добавить службы ролей (Add Role Services).
- В разделе Безопасность (Security) установите флажок Авторизация URL (URL Authorization).
- Отметьте опцию Аутентификация Windows (Windows Authentication) или, если планируется использовать сертификаты SSL, отметьте опцию Обычная аутентификация (Basic Authentication).
- Щелкните Далее (Next).
- Проверьте правильность настроек и щёлкните Установить (Install).
- Щелкните Закрыть (Close).
- Закройте окно Менеджер сервера (Server Manager).
Включение аутентификации Windows или обычной аутентификации
После добавления сервиса роли обычной аутентификации или аутентификации Windows можно включить аутентификацию в менеджере IIS. Выполните вход на сервер в качестве члена группы администраторов Windows и измените настройки в менеджере IIS.
- Запустите менеджер IIS.
Пуск (Start) > Администрирование (Administrative Tools) > Службы IIS (Internet Information Services)
Откроется Менеджер служб IIS (Internet Information Services (IIS) Manager).
- Подключитесь к серверу из менеджера.
- В области просмотра возможностей IIS дважды щёлкните Аутентификация (Authentication).
Откроется панель Аутентификация (Authentication).
- Выберите Аутентификация Windows (Windows Authentication) или Обычная аутентификация (Basic Authentication) в окне Аутентификация (Authentication) и щёлкните Включить (Enable) в разделе Действия (Actions).
Если выбрана обычная аутентификация, включите протокол SSL, чтобы не передавать учетные данные в незашифрованном виде.
- Щёлкните Файл (File) > Выход (Exit), чтобы закрыть менеджер IIS.
Конфигурирование элементов расположения в файле web.config
Можно добавить элементы расположения в файл web.config для управления доступом к сервисам. Элементы расположения должны иметь следующий формат:
<location path="path"> <system.webServer> <security> <authorization> <remove users="" roles="" verbs="" /> <add accessType="Allow" users="allowedUsers" roles="allowedRoles" /> </authorization> </security> </system.webServer> </location>
Измените значения для следующих дочерних элементов элемента расположения:
- location path: введите путь URI связанного приложения к ресурсу (в данном случае к серверу пространственных данных), доступ к которому необходимо защитить.
- authentication: здесь должно быть указано "Windows". Если это не так, исправьте.
- remove: удаление авторизации для указанного пути. Можно удалить авторизацию для пользователей, ролей или команд.
- users: разделенный запятыми список конкретных имен пользователей Windows, все имена пользователей ("*") или анонимные имена пользователей ("?")
- roles: разделенный запятыми список конкретных групп Windows, все группы ("*") или анонимные группы ("?")
- verbs: поддерживаются команды HTTP; разделенный запятыми список конкретных команд или все команды ("*")
- add: добавление правил авторизации для указанного пути.
- accessType: свойство правила авторизации. Установите для параметра accessType значение Allow, чтобы создать правило для назначения имен пользователей и групп, которые могут получить доступ к ресурсу.
- allowedUsers: если для параметра accessType выбрано значение Allow, здесь будет представлен разделенный запятыми список конкретных имен пользователей Windows, имеющих доступ к ресурсу, или будут указаны все имена пользователей ("*").
- allowedRoles: если для параметра accessType выбрано значение Allow, здесь будет представлен разделенный запятыми список конкретных групп Windows, имеющих доступ к ресурсу, или будут указаны все группы ("*").
Добавьте элемент расположения в качестве дочернего элемента для элемента конфигурации. У элемента конфигурации есть много прямых дочерних элементов; элемент расположения можно добавить в любое место после них и на том же уровне, на котором расположен элемент configSections.
Пример 1. Защита запросов администратора
В следующем примере использования элемента расположения из файла web.config удаляются настройки авторизации IIS по умолчанию и конфигурируется правило авторизации, позволяющее получать доступ к административной конечной точке только пользователям из группы администраторов Windows.
<configuration> <location path="admin"> <system.webServer> <security> <authorization> <remove users="*" roles="" verbs="" /> <add accessType="Allow" users="" roles="Administrators" /> </authorization> </security> </system.webServer> </location> </configuration>
Пример 2. Разрешение доступа ко всем сервисам определенному пользователю и роли
В этом примере использования элемента расположения настройки авторизации IIS по умолчанию в файле web.config заменяются на правило, разрешающее группе svcsusers и пользователю Windows svcmgr получать доступ ко всем сервисам на сервере пространственных данных:
<configuration> <location path="rest/services"> <system.webServer> <security> <authorization> <remove users="*" roles="" verbs="" /> <add accessType="Allow" users="mydomain\svcmgr" roles="svcsusers" /> </authorization> </security> </system.webServer> </location> </configuration>
Пример 3. Разрешение доступа к определенному сервису
Чтобы запретить доступ к определенному сервису всем, кроме одной роли, добавьте в файл web.config элемент расположения, относящийся к одному сервису и предоставляющий авторизацию определенной роли. В этом примере доступ к сервису погоды (weather) могут получить только участники роли meteorologists:
<configuration> <location path="rest/services/weather/FeatureServer"> <system.webServer> <security> <authorization> <remove users="*" roles="" verbs="" /> <add accessType="Allow" roles="meteorologists" /> </authorization> </security> </system.webServer> </location> </configuration>
Пример 4. Разрешение доступа к определенному сервису нескольким ролям
Чтобы разрешить доступ к определенному сервису нескольким ролям, добавьте в файл web.config элемент расположения, относящийся к одному сервису и разрешающий доступ нескольким ролям. В этом примере доступ к сервису землепользования (landuse) могут получить только участники ролей planners, contractors и developers:
<configuration> <location path="rest/services/landuse/FeatureServer"> <system.webServer> <security> <authorization> <remove users="*" roles="" verbs="" /> <add accessType="Allow" roles="planners,contractors,developers" /> </authorization> </security> </system.webServer> </location> </configuration>