Configuration de la sécurité dans web.config pour le serveur de données spatiales ArcGIS pour IIS
Si des utilisateurs authentifiés sous Windows accèdent à vos services de serveur de données spatiales ArcGIS pour IIS par le biais d'un intranet, vous pouvez sécuriser le serveur de données spatiales en configurant le fichier web.config qui figure dans le dossier REST du répertoire d'installation de votre serveur de données spatiales ArcGIS pour IIS.
Pour ce faire, vous devez d'abord activer les services de rôle IIS et l'authentification Windows ou de base. Ajoutez ensuite au fichier web.config les éléments d'emplacement qui contiennent un élément d'autorisation, en tant qu'enfant de l'élément de configuration.
Activation des services de rôle IIS
Avant d'ajouter l'élément d'emplacement au fichier web.config pour contrôler l'accès à votre service, vous devez activer le service de rôle IIS d'autorisation d'URL, ainsi que le service de rôle IIS d'authentification Windows ou de base.
Les services de rôle sont activés à partir du gestionnaire de serveur. Vous devez vous connecter au serveur en tant que membre du groupe d’administrateurs Windows pour modifier les paramètres dans le gestionnaire de serveur.
-
Lancez le gestionnaire de serveur.
Démarrer > Outils d'administration > Gestionnaire de serveur > Rôles
La boîte de dialogue Gestionnaire de serveur s'ouvre.
- Accédez à la section Serveur Web (IIS) et cliquez sur Ajouter des services de rôle.
- Sous Sécurité, cochez la case Autorisation d'URL.
- Cochez la case Authentification Windows ou, si vous comptez utiliser la certification SSL, sélectionnez Authentification de base.
- Cliquez sur Suivant.
- Passez en revue les paramètres et s'ils sont corrects, cliquez sur Installer.
- Cliquez sur Fermer.
- Fermez le gestionnaire de serveur.
Activation de l'authentification Windows ou de base
Maintenant que vous avez ajouté le service de rôle d'authentification Windows ou de base, vous pouvez l'activer dans le gestionnaire des services Internet (IIS). Vous devez vous connecter au serveur en tant que membre du groupe d’administrateurs Windows pour modifier les paramètres dans le gestionnaire des services Internet (IIS).
- Lancez le gestionnaire des services Internet (IIS).
Démarrer > Outils d'administration > Services Internet (IIS)
Le Gestionnaire des services Internet (IIS) s'ouvre.
- Connectez-vous au serveur à partir du gestionnaire.
- Dans l'affichage des fonctionnalités d'IIS, double-cliquez sur Authentification.
Le volet Authentification s'ouvre.
- Dans Authentification, choisissez Authentification Windows ou Authentification de base et sous Actions, cliquez sur Activer
Si vous comptez utiliser l'authentification de base, n'oubliez pas d'activer SSL pour que les informations d'identification soient cryptées.
- Cliquez sur Fichier > Quitter pour fermer le gestionnaire des services Internet (IIS).
Configuration de l'élément d'emplacement dans le fichier web.config
Vous pouvez ajouter des éléments d'emplacement au fichier web.config pour contrôler l'accès aux services. L'élément d'emplacement peut se présenter comme suit :
<location path="path"> <system.webServer> <security> <authorization> <remove users="" roles="" verbs="" /> <add accessType="Allow" users="allowedUsers" roles="allowedRoles" /> </authorization> </security> </system.webServer> </location>
Modifiez les valeurs des éléments enfant suivants de l'élément d'emplacement :
- location path : entrez le chemin URI relatif de l'application permettant d'accéder à la ressource (dans ce cas, le serveur de données spatiales) dont vous voulez sécuriser l'accès.
- authentication : vous devez définir ce paramètre sur Windows. Le cas échéant, modifiez-le.
- remove : supprime l'autorisation pour le chemin spécifié. Il est possible de supprimer une autorisation pour des utilisateurs, des rôles et/ou des verbes.
- users : liste séparée par des virgules de connexions Windows spécifiques, toutes les connexions ("*") ou connexions anonymes ("?")
- roles : liste séparée par des virgules de groupes Windows spécifiques, tous les groupes ("*") ou groupes anonymes ("?")
- verbs : verbes HTTP pris en charge. Il peut s'agir d'une liste séparée par des virgules de verbes spécifiques ou de tous les verbes ("*")
- add : ajoute des règles d'autorisation pour le chemin spécifié.
- accessType : propriété de la règle d'autorisation. Définissez accessType sur Allow pour créer une règle permettant de désigner des connexions et des groupes pouvant accéder à la ressource.
- allowedUsers : lorsque accessType est défini sur Allow, il s'agit d'une liste séparée par des virgules de connexions Windows spécifiques ayant accès à la ressource ou à toutes les connexions ("*").
- allowedRoles : lorsque accessType est défini sur Allow, il s'agit d'une liste séparée par des virgules de groupes Windows spécifiques ayant accès à la ressource ou à tous les groupes ("*").
Ajoutez l'élément d'emplacement en tant qu'élément enfant de l'élément de configuration. Il existe de nombreux éléments enfant directs de l'élément de configuration, mais vous pouvez ajouter l'élément d'emplacement n'importe où après ou au même niveau que l'élément configSections.
Exemple 1 : sécurisation des requêtes admin
Dans l'exemple d'élément d'emplacement suivant, les paramètres d'autorisation IIS par défaut du fichier web.config sont supprimés et une règle d'autorisation est configurée pour autoriser uniquement les utilisateurs du groupe d'administrateurs Windows à accéder au contenu de l'extrémité admin.
<configuration> <location path="admin"> <system.webServer> <security> <authorization> <remove users="*" roles="" verbs="" /> <add accessType="Allow" users="" roles="Administrators" /> </authorization> </security> </system.webServer> </location> </configuration>
Exemple 2 : autoriser un rôle et un utilisateur spécifiques à accéder à tous les services
Dans cet exemple d'élément d'emplacement, les paramètres d'autorisation IIS par défaut du fichier web.config sont remplacés par une règle d'autorisation pour autoriser le groupe svcsusers et l'utilisateur Windows svcmgr à accéder à tous les services du serveur de données spatiales :
<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>
Exemple 3 : autoriser un rôle à accéder à un service spécifique
Pour autoriser un rôle à accéder un service spécifique, ajoutez un élément d'emplacement au fichier web.config qui s'applique à un service et accorde une autorisation au rôle spécifié. Dans cet exemple, seuls les membres du rôle "meteorologists" (météorologistes) peuvent accéder au service météo :
<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>
Exemple 4 : autoriser plusieurs rôles à accéder à un service spécifique
Pour permettre à plusieurs rôles d'accéder à un service spécifique, ajoutez un élément d'emplacement au fichier web.config qui s'applique à un service et accorde une autorisation à plusieurs rôles. Dans cet exemple, les membres des rôles "planners, contractors, developers" (planificateurs, prestataires et développeurs) peuvent accéder au service d'occupation des sols :
<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>