Skip To Content

Intégrer la sécurité ArcGIS Server dans une base de données Oracle

Lorsqu'un utilisateur demande une ressource SIG qui utilise des données issues d'une base de données Oracle, ArcGIS Server peut transmettre l’identité de l’utilisateur à la base de données, lui donnant ainsi la possibilité d'appliquer le contrôle d'accès en fonction de ce critère. Cette fonctionnalité n'est actuellement pas disponible pour d'autres systèmes de base de données. Cette fonctionnalité n'est actuellement disponible que pour les services de carte.

Remarque :

À partir de la version 10.7, le workflow intégrant la sécurité avec une base de données Oracle n’est plus pris en charge. Vérifiez que les procédures respectent les règles d'accès et d’autorisation recommandées pour ArcGIS Server.

Lorsque la sécurité est appliquée au niveau de la base de données, un utilisateur peut se voir affecter des autorisations d'accès aux tables (et/ou colonnes et lignes) de la base de données, en plus ou à la place des autorisations d'accès aux services Web ArcGIS Server. Procédez comme suit pour configurer la sécurité intégrée pour la base de données Oracle.

  1. Créez un compte de base de données pour l'auteur de la carte.
  2. Créez des comptes de base de données pour les utilisateurs des services Web ArcGIS.
  3. Créez un document et publiez-le sur ArcGIS Server.
  4. Activez la sécurité intégrée de la base de données.
  5. Testez la sécurité intégrée.

Créer un compte de base de données pour l'auteur de la carte

Pour prendre en charge la sécurité intégrée, l'auteur de la carte doit disposer des privilèges de base de données requis. Vous devrez également définir le compte de base de données utilisé pour la création de la carte. En votre qualité d'administrateur de base de données, créez des autorisations et affectez-les à l'utilisateur qui sera chargé de créer la carte :

CREATE USER <map author> IDENTIFIED BY <map author password>
 DEFAULT TABLESPACE <tablespace_name>
 TEMPORARY TABLESPACE <temp_tablespace_name>;
 GRANT CONNECT, RESOURCE TO <map author>;

Pour obtenir plus d'informations et connaître les exigences relatives à la création d'utilisateurs, consultez la documentation d'Oracle.

Créer des comptes de base de données pour les utilisateurs des services Web ArcGIS

Pour que la sécurité intégrée fonctionne, il faut qu'un compte de base de données corresponde à chaque service Web ArcGIS. En votre qualité d'administrateur de base de données, créez des comptes de base de données pour chaque utilisateur qui accédera aux services Web ArcGIS. Vous devrez également accorder des privilèges de connexion à chaque utilisateur par le biais du compte de base de données de l'auteur de la carte.

CREATE USER <ArcGIS Web user> IDENTIFIED by <ArcGIS Web user>
DEFAULT TABLESPACE <tablespace_name>
TEMPORARY TABLESPACE <temp_tablespace_name>;
GRANT CONNECT,RESOURCE to <ArcGIS Web user>;
ALTER USER <ArcGIS Web user> GRANT CONNECT THROUGH <map author>;
Remarque :
Utilisez des caractères minuscules lors de la création de noms d'utilisateur dans la base de données, dans la mesure où ArcGIS Server utilise ce format pour les transmettre à la base de données. Si vous utilisez Microsoft Active Directory comme magasin d'identifiants, placez le nom d'utilisateur entre guillemets. Par exemple :
CREATE USER "<domain name>\<user name>" IDENTIFIED by <user name>

Pour chaque compte de base de données créé, accordez des privilèges correspondant aux opérations qu'un utilisateur est autorisé à réaliser dans la géodatabase Oracle. A titre d'exemple, deux rôles sont définis ci-dessous pour accorder des autorisations aux utilisateurs du service Web ArcGIS. Le premier rôle est défini de manière à autoriser les sélections de base de données (autorisation d'affichage des données) sur deux couches de géodatabase et le second, pour permettre des opérations de mise à jour sur une couche.

--Role for displaying boundary layers
CREATE ROLE sel_boundary_role NOT IDENTIFIED;
GRANT SELECT ON <map author>.States TO sel_boundary_role;
GRANT SELECT ON <map author>.Counties TO sel_boundary_role;
GRANT sel_boundary_role to <user one>;
-- Role for displaying transportation layer
CREATE ROLE sel_trans_role NOT IDENTIFIED;
GRANT SELECT,UPDATE,INSERT,DELETE ON <map author>.Roads TO sel_trans_role;
GRANT sel_trans_role to <user two>;

Il est également possible de configurer des autorisations sur des lignes (entités) individuelles et sur des colonnes (champs attributaires) de la base de données Oracle. Pour plus d'informations, consultez la documentation de la base de données Oracle.

Créez un document et publiez-le sur ArcGIS Server

Vous pouvez utiliser ArcMap pour créer votre document. Lors de l'ajout de ressources de géodatabase, vous devrez utiliser les identifiants de connexion du compte de base de données de l'auteur de la carte décrit ci-dessus. Publiez la carte sur ArcGIS Server. Notez que les fonctionnalités de service de carte, telles que WMS et KML, appliquent les mêmes restrictions de sécurité que les services Web ArcGIS standard (SOAP/REST).

Activer la sécurité intégrée pour Oracle

Après avoir défini des comptes de base de données, vous devez créer, dans le magasin d'identifiants ArcGIS Server, des utilisateurs et des rôles correspondant exactement aux utilisateurs et rôles Oracle. Pour ajouter un utilisateur, reportez-vous à la rubrique Gérer les utilisateurs dans le Gestionnaire. Pour ajouter un rôle, reportez-vous à la rubrique Gérer les rôles dans le Gestionnaire.

Après avoir créé des utilisateurs et des rôles dans le magasin d'identifiants ArcGIS Server, vous devez configurer ArcGIS Server pour transmettre l'identité des utilisateurs à la base de données Oracle. Pour activer la sécurité intégrée de la base de données, procédez comme suit :

  1. Ouvrez le répertoire administrateur (https://gisserver.domain.com:6443/arcgis/admin) et connectez-vous en tant qu'administrateur du site principal ou utilisateur disposant de privilèges d'administrateur.
  2. Cliquez sur système > propriétés > mettre à jour.
  3. Dans la zone de texte Properties (Propriétés), entrez l'élément JSON ci-dessous :
    {"pushIdentityToDatabase" : "true" }
  4. Cliquez sur Update (Mise à jour) pour enregistrer les modifications.

Tester la sécurité intégrée

Créez une application cartographique Web qui utilise le service Web ArcGIS créé avec la prise en charge de la sécurité intégrée. Ouvrez l'application Web dans un navigateur Web. Seules les couches et entités pour lesquelles l'utilisateur dispose des autorisations d'accès doivent normalement s'afficher dans l'application Web. Vous pouvez reproduire ce test en créant une application cartographique Web qui utilise les informations d'identification d'un autre utilisateur.