Intégration de 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 son identité à la base de données, lui donnant ainsi la possibilité d'appliquer le contrôle d'accès en fonction de ce critère. Pour l'heure, cette fonctionnalité n'est pas disponible pour d'autres systèmes de base de données.
En cas d'utilisation de la sécurité 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 for Server. Procédez comme suit pour configurer la sécurité intégrée pour la base de données Oracle.
- Créez un compte de base de données pour l'auteur de la carte.
- Créez des comptes de base de données pour les utilisateurs des services Web ArcGIS.
- Créez un document et publiez-le sur ArcGIS Server.
- Activez la sécurité intégrée de la base de données.
- Testez la sécurité intégrée.
Création d'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 du document ArcMap doit disposer des privilèges de base de données requis. 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. 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éation de 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>;
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 base de données 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éation d'un document et publication 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 informations d'identification du compte de base de données de l'auteur de la carte décrit à la rubrique Définition de l'auteur de la carte. Publiez le document ArcMap 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).
Activation de 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 Ajout d'un nouvel utilisateur dans le Gestionnaire. Pour ajouter un rôle, reportez-vous à la rubrique Ajout d'un nouveau rôle 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 qu'il transmette 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 :
- Ouvrez le répertoire d'administrateur (http://myserver:6080/arcgis/admin) et connectez-vous en tant qu'administrateur de site principal ou utilisateur disposant de privilèges d'administrateur.
- Cliquez sur système > propriétés > mettre à jour.
- Dans la zone de texte Propriétés, entrez l'élément JSON ci-dessous :
{"pushIdentityToDatabase" : "true" }
- Cliquez sur Mise à jour pour enregistrer les modifications.
Test de 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/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.