Vous pouvez sécuriser un bon nombre d'aspects du service de données REST. L'accès au service de données REST d'eXtreme Scale peut être sécurisé via l'authentification et l'autorisation. Il peut également être contrôlé par des règles de configuration à portée de service, appelées règles d'accès. La sécurité des transports est le troisième élément concerné en matière de sécurisation.
L'accès au service de données REST d'eXtreme Scale peut être sécurisé via l'authentification et l'autorisation. L'authentification et l'autorisation s'effectuent grâce à l'intégration à la sécurité d'eXtreme Scale.
L'accès peut également être contrôlé par des règles de configuration à portée service, appelées règles d'accès. Il existe deux types de règles d'accès : droits d'opérations du service qui contrôlent les opérations CRUD autorisées par le service et les droits d'accès aux entités qui contrôlent les opérations CRUD autorisées pour un type donné d'entité.
La sécurité des transports est fournie par la configuration du conteneur d'hébergement pour les connexions entre le client Web et le service REST. Et la sécurité du transport est fournie par la configuration client eXtreme Scale (pour le service REST aux connexions de grille eXtreme Scale).
L'accès au service de données REST d'eXtreme Scale peut être sécurisé via l'authentification et l'autorisation. L'authentification et l'autorisation s'effectuent par l'intégration à la sécurité eXtreme Scale.
Le service de données REST eXtreme Scale utilise la sécurité eXtreme Scale, pour l'authentification et l'autorisation, pour déterminer les utilisateurs qui peuvent accéder au service et les opérations qu'ils sont autorisés à effectuer via le service. Le service de données REST eXtreme Scale utilise soit des données d'identification globales configurées, avec utilisateur et mot de passe, soit des données d'identification dérivées d'une d'authentification HTTP BASIC qui est envoyée avec chaque transaction à la grille de données eXtreme Scale où s'effectuent l'authentification et l'autorisation.
Le service de données REST d'eXtreme Scale fait appel à la bibliothèque des clients eXtreme Scale lorsqu'il communique avec la grille eXtreme Scale. Il en résulte que le client eXtreme Scale doit être configuré pour la sécurité d'eXtreme Scale.
securityEnabled=true
credentialAuthentication=Supported [-ou-] Required
credentialGeneratorProps=utilisateur:motdepasse [-ou-] {xor encoded utilisateur:motdepasse}
Un exemple de fichier de règles de client objectgrid se trouve dans rép_base_servicerest/security/security.ogclient.properties. Voir également Fichier de propriétés du client.
Le fichier des propriétés de configuration du service de données REST eXtreme Scale doit contenir les entrées suivantes pour pouvoir être intégré à la sécurité eXtreme Scale :
ogClientPropertyFile=nom_fichier
ogClientPropertyFile est l'adresse du fichier de propriétés qui contient les propriétés du client ObjectGrid mentionnées au point précédent. Lorsque la sécurité est activée, le service REST utilise ce fichier pour initialiser le client eXtreme Scale afin de communiquer avec la grille.
loginType=basic [-ou-] none
La propriété loginType configure le service REST pour le type d'ouverture de session. Si la valeur none est définie, l'ID utilisateur “global” et le mot de passe définis par credentialGeneratorProps seront envoyés à la grille pour chaque transaction. Si la valeur basic est spécifiée, le service REST présente au client une authentification HTTP BASIC en demandant des données d'identification qu'il envoie dans chaque transaction lorsqu'il communique avec la grille.
Pour plus d'informations sur les propriétés ogClientPropertyFile et loginType, voir Fichier de propriétés du service de données REST.
L'accès peut également être contrôlé par des règles de configuration de portée service, désignées sous le nom de règles d'accès. Il existe deux types de règles d'accès : les droits d'opérations du service qui contrôlent les opérations CRUD autorisées par le service et les droits d'accès aux entités qui contrôlent les opérations CRUD autorisées pour un type donné d'entité.
Le service de données REST d'eXtreme Scale autorise, si on le souhaite, des règles d'accès configurables à accéder de manière restreinte au service et aux entités contenues dans ce dernier. Ces règles d'accès sont spécifiées dans le fichier des propriétés des droits d'accès du service REST. Le nom de ce fichier est spécifié dans le fichier des propriétés du service de données REST par la propriété wxsRestAccessRightsFile. Pour plus d'informations sur cette propriété, voir Fichier de propriétés du service de données REST. Ce fichier est un fichier de propriétés Java classique avec des paires clé/valeur. Il existe deux types de règles d'accès : les droits d'opérations du service qui contrôlent les opérations CRUD autorisées par le service et les droits d'accès aux entités qui contrôlent les opérations CRUD autorisées pour un type donné d'entité.
Les droits d'opérations du service spécifient les droits d'accès qui s'appliquent à tous les ObjectGrids exposés via le service REST ou à toutes les entités de l'ObjectGrid individuel qui est spécifié.
serviceOperationRights=droit_opérations_service
serviceOperationRights.nom_grille -ou- *=droit_opérations_service
où serviceOperationsRights=ALL
serviceOperationsRights.*=NONE
serviceOperationsRights.EMPLOYEEGRID=READSINGLE
Le premier exemple spécifie que toutes les opérations du service sont autorisées pour tous les ObjectGrids exposés par ce service REST. Le deuxième exemple est semblable au premier car il s'applique également à tous les ObjectGrids exposés par le service REST, mais il spécifie des droits d'accès NONE, ce qui signifie qu'aucune opération du service n'est autorisée sur les ObjectGrids. Le dernier exemple spécifie comment contrôler les opérations du service pour une grille spécifique ; ici seules les opérations de lecture qui donnent un seul enregistrement sont autorisées pour toutes les entités de la grille EMPLOYEEGRID.
La valeur par défaut utilisée par le service REST est serviceOperationsRights=ALL, ce qui signifie que toutes les opérations sont autorisées pour tous les ObjectGrids exposés par ce service. Cela diffère de l'implémentation Microsoft pour laquelle la valeur par défaut est NONE, si aucune opération n'est autorisée sur le service REST.
Les droits d'ensembles d'entités spécifient les droits d'accès qui s'appliquent aux entités de l'ObjectGrid spécifique qui est exposé via le service REST. Ces droits permettent d'imposer un contrôle bien plus étroit et bien plus granulaire de l'accès à des entités d'un ObjectGrid individuel que ne le permettent les droits d'opérations du service.
entitySetRights.nom_grille.nom_entité=droit_ensemble_entités
oùDroit d'accès | Description |
---|---|
NONE | Refuse tout droit d'accès aux données |
READSINGLE | Autorise la lecture d'un seul élément de données |
READMULTIPLE | Autorise la lecture d'ensembles de données |
ALLREAD | Autorise toutes les opérations de lecture (élément simple ou ensembles de données) |
WRITEAPPEND | Autorise la création de nouveaux éléments de données dans les ensembles de données |
WRITEREPLACE | Autorise le remplacement de données |
WRITEDELETE | Autorise la suppression d'éléments de données dans les ensembles de données |
WRITEMERGE | Autorise la fusion de données |
ALLWRITE | Autorise toutes les opérations d'écriture (création, remplacement, fusion ou suppression) de données |
ALL | Autorise la création, la lecture, la modification et la suppression de données |
Exemple 1 : Si serviceOperationsRights.NorthwindGrid=READSINGLE et entitySetRights.NorthwindGrid.Customer=ALL sont spécifiés. READSINGLE sera appliqué pour l'entité Customer.
Exemple 2 : Si serviceOperationsRights.NorthwindGrid=ALLREAD est spécifié et qu'entitySetRights.NorthwindGrid.Customer=ALLWRITE l'est aussi, seules des opérations de lecture seront autorisées pour toutes les entités de NorthwindGrid. Mais, en ce qui concerne Customer, ses droits d'ensembles d'entités empêcheront toute lecture (puisque c'est ALLWRITE qui est spécifié) et de ce fait l'entité Customer aura NONE comme droit d'accès.
La sécurité du transport est fournie par la configuration du conteneur d'hébergement pour les connexions entre le client Web et le service REST. La sécurité du transport est fournie par la configuration du client eXtreme Scale pour les connexions entre le service Web et la grille eXtreme Scale.