TIBCO EBX®
Documentation > Manuel de référence > Divers
Mode navigationDocumentation > Manuel de référence > Divers

Permissions

Les permissions définissent l'accès aux données et les actions disponibles pour chaque utilisateur.

Présentation

Les permissions permettent de définir si une action est autorisée. Elles définissent aussi les droits d'accès d'une entité : cachée, en lecture, ou en lecture-écriture. Les entités principales contrôlées par les permissions sont les suivantes :

Utilisateurs, fonctions et profils

La définition et la résolution des permissions sont basées sur la notion de profils, terme générique faisant référence aux utilisateurs ou aux rôles.

Chaque utilisateur peut avoir plusieurs rôles, et un même rôle peut être partagé par plusieurs utilisateurs.

Ces relations sont définies dans le référentiel des rôles et utilisateurs. Voir Users and roles directory.

Définitions particulières:

Règles de permission

Une règle de permission définit les autorisations accordées à un profil pour une entité donnée.

Les règles de permission définies par l'utilisateur sont créées via l'interface utilisateur. Voir la section Définition des règles utilisateur.

Les règles de permission programmatiques peuvent être créées par des développeurs. Voir la section Définition des règles programmatiques.

Résolution des permissions

Les permissions sont toujours résolues dans le contexte d'une session utilisateur authentifiée. Ainsi, les permissions sont principalement basées sur les profils de l'utilisateur.

En général, la résolution est restrictive entre un niveau donné et son niveau parent. Ainsi, pour n'importe quel niveau donné, un utilisateur ne peut pas avoir de permission supérieure à celle résolue au niveau d'un de ses parents.

Les permissions programmatiques sont toujours considérées comme étant restrictives.

Note

Dans l'API Java, la classe SessionPermissions permet d'accéder aux permissions résolues.

Permissions spéciales du propriétaire et de l'administrateur

Sur un jeu de données

Un administrateur ou un propriétaire de jeu de données peut effectuer les actions suivantes sur le jeu de données :

Attention

Bien que la définition des permissions puisse restreindre les droits d'affichage ou d'exécution de certaines actions pour l'administrateur ou le propriétaire du jeu de données, il reste possible pour ces derniers de modifier leur propre accès, puisqu'ils auront toujours accès à la gestion des permissions.

Sur un espace de données

Pour devenir le super propriétaire d'un espace de données, un utilisateur doit :

L'administrateur ou le super propriétaire d'un espace de données peut réaliser les actions suivantes sur l'espace de données :

De plus, dans un workflow, lors de l'utilisation des scripts task intégrés 'Créer un espace de données' ou 'Créer une image', les permissions résolues sont calculées en utilisant le propriétaire défini dans la configuration du script task plutôt que dans la session courante. Cela s'explique par le fait que, pour ces cas, la session courante est associée à un utilisateur système.

Attention

Bien que la définition des permissions puisse restreindre les droits d'affichage ou d'exécution de certaines actions pour l'administrateur ou le propriétaire de l'espace de données, il reste possible pour ces derniers de modifier leur propre accès, puisqu'ils auront toujours accès à la gestion des permissions.

Impact de la fusion sur les permissions

Lorsqu'un espace de données est fusionné, les permissions du jeu de données de l'espace de données enfant sont fusionnées avec celles du jeu de données de l'espace de données parent si et seulement si l'utilisateur le précise pendant le processus de fusion. Les permissions de l'espace de données parent ne sont jamais impactées.

Si certains éléments sont masqués pour le profil qui tente de réaliser une fusion, l'action ne sera pas réalisable, car l'impact de la fusion sur les données ne sera pas entièrement visible.

Aspects importants concernant les permissions

Il faut garder à l'esprit les recommandations suivantes lorsqu'on travaille avec les permissions :

Définition des règles utilisateur

Tous les niveaux utilisent un schéma similaire, qui permet la définition de règles de permission pour les profils.

Définition des règles utilisateur dans les espaces de données

Pour un espace de données, les permissions administrables pour chaque profil sont les suivantes :

Mode

Autorisation

Écriture

  • Peut voir l'espace de données.

  • Peut accéder aux jeux de données en fonction des permissions du jeu de données.

Lecture seulement

  • Peut voir l'espace de données et ses images.

  • Peut voir les espaces de données enfants, si autorisé par les permissions.

  • Peut voir le contenu de l'espace de données, sans pouvoir le modifier.

Masqué

  • Ne peut voir ni l'espace de données ni ses images.

  • Si autorisé à voir l'espace de données enfant, peut voir l'espace de données courant sans pouvoir le sélectionner.

  • Ne peut accéder au contenu de l'espace de données, ni aux jeux de données.

  • Ne peut réaliser aucune action sur l'espace de données.

Restriction d'accès

Indique si cette association profil-permission de l'espace de données doit être prioritaire sur les autres règles de permissions.

Créer un espace de données enfant

Indique si le profil peut créer des espaces de données enfants à partir de l'espace de données courant.

Créer une image enfant

Indique si le profil peut créer une image de l'espace de données courant.

Initialiser la fusion

Indique si le profil peut fusionner l'espace de données courant avec son espace de données parent.

Exporter une archive

Indique si le profil peut exporter l'espace de données courant comme archive.

Importer une archive

Indique si le profil peut importer une archive dans l'espace de données courant.

Fermer un espace de données

Indique si le profil peut fermer l'espace de données courant.

Fermer une image

Indique si le profil peut fermer une image de l'espace de données courant.

Droits sur les services

Indique si un profil a le droit d'exécuter des services sur l'espace de données. Par défaut, tous les services d'espaces de données sont autorisés. Un administrateur ou super propriétaire de l'espace de données courant ou un utilisateur donné autorisé à modifier les permissions sur l'espace de données courant peut modifier ces permissions afin de restreindre les services de l'espace de données pour certains profils.

Permissions de l'espace de données enfant à la création

Lorsqu'un utilisateur crée un espace de données enfant, les permissions de ce nouvel espace de données sont automatiquement attribuées au propriétaire du profil, conformément aux permissions définies sous 'Permissions d'un espace de données enfant à la création' dans l'espace de données parent. Si plusieurs permissions sont définies pour le propriétaire via différents rôles, le profil du propriétaire se comporte de la même manière qu'un autre profil et les permissions sont résolues de la même manière.

Définition des règles utilisateur dans les jeux de données

Pour un jeu de données, les permissions administrables pour chaque profil sont les suivantes :

Actions sur les jeux de données

Restriction d'accès

Indique si l'association profil-permission du jeu de données doit être prioritaire sur les autres règles de permissions.

Créer un jeu de données enfant

Indique si le profil a le droit de créer un jeu de données enfant à partir du jeu de données courant.

Dupliquer un jeu de données

Indique si le profil a le droit de dupliquer le jeu de données courant.

Modifier le jeu de données parent

Indique si le profil a le droit de changer le jeu de données parent d'un jeu de données enfant.

Actions sur les tables

Les droits d'actions sur les tables par défaut sont définis au niveau du jeu de données. Il est ensuite possible de surcharger ces droits par défaut pour une ou plusieurs tables données. Les permissions administrables pour chaque profil sont les suivantes :

Créer un enregistrement

Indique si le profil a le droit de créer des enregistrements dans la table.

Surcharger un enregistrement

Indique si le profil a le droit de surcharger les enregistrements de la table.

Occulter un enregistrement

Indique si le profil a le droit d'occulter les enregistrements de la table.

Supprimer un enregistrement

Indique si le profil a le droit de supprimer des enregistrements dans la table.

Droits d'accès sur les valeurs de noeud

Les permissions définies sur des noeuds terminaux spécifiques surchargent les droits d'accès par défaut.

Lecture-écriture

Peut afficher et modifier les valeurs du noeud.

Lecture

Peut afficher les noeuds, mais ne peut pas modifier leurs valeurs.

Masqué

Ne peut pas voir les noeuds.

Permissions sur les services

Un administrateur ou propriétaire de l'espace de données courant peut modifier les permissions par défaut d'un service afin de permettre ou limiter son usage pour certains profils.

Activé

Rend le service disponible pour le profil.

Désactivé

Rend le service indisponible pour le profil. Il ne sera ni affiché dans les menus, ni exécutable depuis un composant web.

Par défaut

Rend le service activé ou désactivé selon la permission par défaut définie lors de sa déclaration.

Voir ActivationContext.setDefaultPermission pour plus d'informations.

Définition des règles programmatiques

Les règles programmatiques permettent de définir plus précisément les conditions d'accès à une donnée ou à un service utilisateur en fonction du contexte.

Il existe plusieurs types de règles programmatiques :

Définition des règles d'accès aux données

Les AccessRules sont des règles permettant de définir programmatiquement et en fonction du contexte les droits de lecture/écriture sur un noeud du modèle de données ou sur les enregistrements d'une table.

La définition d'une AccessRule s'effectue ainsi :

  1. Création d'une règle sous la forme d'une classe Java implémentant l'interface AccessRule ou AccessRuleForCreate.

  2. Assignation de cette règle aux noeuds concernés dans l'extension du schéma : SchemaExtensions.

    Selon la cible (noeud(s) du modèle ou enregistrements) ou le type (AccessRule oi AccessRuleForCreate) de la règle, plusieurs méthodes comme SchemaExtensionsContext.setAccessRuleForCreateOnNode ou SchemaExtensionsContext.setAccessRuleOnOccurrence sont disponibles.

    La règle ainsi assignée est dite "locale" et n'est exécutée que lorsque l'entité cible est sollicitée. Voir Résolution des permissions sur données pour plus d'informations.

    Attention

    Une seule AccessRule peut être définie pour chaque noeud, espace de données ou enregistrement. Une seule AccessRuleForCreate peut être définie pour chaque noeud d'une table. Ainsi, la définition d'une nouvelle règle programmatique d'un certain type remplacera l'existante.

Définition des règles d'activation sur service

Les ServiceActivationRules sont des règles permettant de définir si un service est activé ou non pour un espace de données ou un jeu de données. Un service désactivé par ce moyen n'est jamais disponible dans l'entité pour laquelle il est désactivé, quel que soit le profil courant et ce pour l'exécution ou l'affichage, même dans les écrans de permissions.

La définition d'une ServiceActivationRule s'effectue ainsi :

  1. Création d'une règle sous la forme d'une classe Java implémentant l'interface ServiceActivationRuleForDataspace ou ServiceActivationRuleForDataset, selon le type de service.

  2. Assignation de cette règle aux services concernés au niveau de leur déclaration, selon le type de service via les méthodes ActivationContextOnDataspace.setActivationRule ou ActivationContextWithDatasetSet.setActivationRule.

    La règle ainsi assignée sera évaluée lors de l'évaluation de l'activation du service. Voir Résolution de permissions pour les services pour plus d'informations.

Définition des règles de permission sur service

Les ServicePermissionRules sont des règles avancées permettant de définir dynamiquement les conditions d'affichage et d'exécution d'un service en fonction du contexte (session courante, entité sélectionnée, etc.). Le service doit au préalable être activé pour le contexte courant pour que ce type de règle se déclenche.

La définition d'une ServicePermissionRule s'effectue de la façon suivante :

  1. Création d'une règle sous la forme d'une classe Java implémentant l'interface ServicePermissionRule.

  2. Assignation de cette règle aux services concernés :

Résolution des permissions sur données

Résolution des règles utilisateur

Les droits d'accès définis via l'interface utilisateur sont résolus sur quatre niveaux : espace de données, jeu de données, enregistrement (le cas échéant) et noeud.

Si un profil est associé à des droits d'accès restrictifs à un niveau donné, le minimum de tous les droits restrictifs définis à ce niveau est résolu. Si aucune restriction n'est définie pour ce niveau, le maximum de tous les droits d'accès définis pour ce niveau est résolu.

Lorsqu'une permission restrictive est définie pour un profil, elle devient prioritaire sur les autres permissions potentiellement accordées par les autres rôles de l'utilisateur. D'une manière générale, pour toutes les règles de permission définies par l'utilisateur qui s'appliquent à la session utilisateur courante :

Exemples :

Étant donné deux profils P1 et P2 concernant le même utilisateur, le tableau suivant présente les possibilités de résolution de permission de cet utilisateur à un service.

Autorisation de P1Autorisation de P2Résolution de permission du service
ActivéActivéActivé. Les restrictions ne changent rien.
DésactivéDésactivéDésactivé. Les restrictions ne changent rien.
ActivéDésactivéActivé, à moins que l'autorisation de P2 ne soit une restriction.
DésactivéActivéActivé, à moins que l'autorisation de P1 ne soit une restriction.

Cette politique de restriction est identique pour les droits d'accès aux données.

Dans un autre exemple, un espace de données peut être masqué pour tous les utilisateur en définissant une association restrictive entre le profil intégré "Profile.EVERYONE" et le droit d'accès "masqué".

Quel que soit le niveau, les droits d'accès les plus restrictifs entre ceux résolus à ce niveau et ceux résolus à un niveau plus élevé sont appliqués. Par exemple, si les permissions d'accès au jeu de données d'un utilisateur sont résolues en accès lecture-écriture, mais que l'espace de données qui le contient n'autorise que l'accès en lecture, l'utilisateur ne bénéficiera que de l'accès en lecture seule pour ce jeu de données.

Note

Le mécanisme d'héritage de jeu données s'applique aux valeurs et aux droits d'accès. Plus précisément, les droits d'accès définis sur un jeu de données seront appliqués sur ses jeux de données enfants. Il est possible de surcharger ces droits dans le jeu de données enfant.

Exemple de résolution des droits d'accès

Dans cet exemple, trois utilisateurs appartiennent aux rôles définis et profils suivants : 

Utilisateur

Profil

Utilisateur 1

  • utilisateur1

  • rôle A

  • rôle B

Utilisateur 2

  • utilisateur2

  • rôle A

  • rôle B

  • rôle C

Utilisateur 3

  • utilisateur3

  • rôle A

  • rôle C

Les droits d'accès des profils pour un élément donné sont les suivants :

Profil

Droits d'accès

Politique de restriction

utilisateur1

Masqué

Oui

utilisateur3

Lecture

Non

Rôle A

Lecture/Écriture

Non

Rôle B

Lecture

Oui

Rôle C

Masqué

Non

Après la résolution basée sur les droits d'accès du rôle et du profil ci-dessus, les droits appliqués à chaque utilisateur sont les suivants : 

Utilisateur

Droits d'accès résolus

Utilisateur 1

Masqué

Utilisateur 2

Lecture

Utilisateur 3

Lecture/Écriture

Résolution des droits d'accès aux espaces de données et aux images

Au niveau de l'espace de données, les droits d'accès sont résolus de la manière suivante :

Résolution des droits d'accès aux jeux de données

Au niveau du jeu de données, le même principe qu'au niveau de l'espace de données s'applique. Après la résolution des droits d'accès au niveau du jeu de données seul, les droits d'accès définitifs sont déterminés en prenant les droits les plus bas entre les droits résolus de l'espace de données et les droits résolus du jeu de données. Par exemple, si un espace de données est résolu en lecture seulement pour un utilisateur et qu'un de ses jeux de données est résolu en lecture-écriture, l'utilisateur ne bénéficiera que de l'accès en lecture seule pour ce jeu de données.

Résolution des droits d'accès aux noeuds

Au niveau du noeud, le même principe qu'aux niveaux de l'espace de données et du jeu de données s'applique. Après la résolution des droits d'accès au niveau du noeud seul, les droits d'accès définitifs sont déterminés en prenant les droits les plus bas entre les droits résolus du jeu de données et les droits résolus du noeud.

Des droits d'accès spécifiques peuvent être définis au niveau du noeud. Si aucun droit d'accès spécifique n'est défini, le droit d'accès par défaut est utilisé pour le processus de résolution.

Note

La procédure de résolution diffère légèrement entre les tables et leurs noeuds enfants.

Cas particulier des tables et noeuds de tables

Cette section décrit le processus de résolution utilisé pour un noeud de table donné ou un enregistrement N de la table.

Pour chaque règle de permission définie par l'utilisateur correspondant à un des profils de l'utilisateur, les droits d'accès pour N seront soit :

  1. Les droits d'accès définis localement pour N ;

  2. Hérités des droits d'accès définis dans le noeud de table ;

  3. Hérités des droits d'accès par défaut pour les valeurs du jeu de données.

Toutes les règles de permission correspondantes définies par l'utilisateur sont utilisées pour résoudre les droits d'accès pour N. La résolution est effectuée en fonction de la politique de restriction.

Les droits d'accès résolus définitifs seront les plus bas entre l'espace de données, le jeu de données et le droit d'accès résolu pour N.

Résolution des règles programmatiques

Il existe trois niveaux de résolution pour les règles de droit d'accès programmatiques : le jeu de données, l'enregistrement et le noeud. Puisqu'une seule règle d'accès programmatique peut être configurée pour un niveau donné, la dernière règle configurée sera celle utilisée par la procédure de résolution.

Résolution de règle sur jeu de données

Pour un jeu de données, la dernière règle est considérée comme la règle résolue.

Résolution de règle sur enregistrement

Pour un enregistrement, la règle résolue est la plus basse entre la règle résolue configurée sur le jeu de données et la règle configurée sur cet enregistrement. Voir SchemaExtensionsContext.setAccessRuleOnOccurrence pour plus d'informations.

Résolution de règle sur noeud

Pour un noeud enfant d'un enregistrement, la règle résolue est la plus basse entre la règle résolue sur l'enregistrement et la règle configurée pour ce noeud.

Pour un noeud enfant d'un jeu de données, la règle résolue est la plus basse entre la règle résolue configurée sur le jeu de données et la règle configurée sur ce noeud. Voir SchemaExtensionsContext.setAccessRuleOnNode pour plus d'informations.

Politique d'affichage pour les menus déroulant des clés étrangères

Si un enregistrement est masqué du fait des règles d'accès, il n'apparaîtra pas dans le menu déroulant des clés étrangères.

Attention

Les droits d'accès résolus sur un jeu de données ou un noeud de jeu de données sont les droits minimum entre les droits d'accès résolus définis dans l'interface utilisateur et les règles programmatiques résolues, le cas échéant.

Résolution de permissions pour les services

Les services utilisateurs permettent d'exécuter des fonctions spécifiques et avancées à partir de l'interface utilisateur. Selon leur définition, ces services peuvent être appelés depuis un menu, comme action dans un workflow, comme item de perspective, ou encore être exécutés directement depuis une URL comme composant web.

Voir aussi

Les permissions d'un service sont résolues dés lors que celui-ci est sollicité dans l'interface utilisateur, c'est à dire :

Ainsi, à chaque sollicitation la résolution de permissions d'un service se déroule de la manière suivante, dans l'ordre et tant que les conditions sont respectées :

  1. L'activation du service doit correspondre au contexte courant. Cette activation tient compte :

  2. Lorsque le service est activé pour le contexte courant, les permissions pour la session utilisateur sont alors évaluées :

Résolution des règles utilisateur

Exemple

Dans cet exemple, nous avons deux utilisateurs appartenant à différents rôles et profils :

Utilisateur

Profils

Utilisateur 1

  • utilisateur1

  • rôle A

  • rôle B

Utilisateur 2

  • rôle C

  • rôle D

Les permissions associées aux rôles et aux profils au niveau du jeu de données sont les suivantes :

Profil

Service prédéfini de création (@creation)

Service prédéfini de duplication (@duplicate)

Service prédéfini de comparaison (@compare)

Service personnalisé 1 (custom1)

Service personnalisé 2 (custom2)

Politique de restriction

utilisateur1

Activé

Désactivé

Activé

Désactivé

Activé

Non

Rôle A

Activé

Activé

Désactivé

Activé

Désactivé

Oui

Rôle B

Activé

Désactivé

Activé

Activé

Désactivé

Oui

Rôle C

Activé

Activé

Désactivé

Désactivé

Désactivé

Non

Rôle D

Activé

Désactivé

Désactivé

Activé

Désactivé

Non

Les services disponibles pour chaque utilisateur après la résolution des droits sont les suivantes :

Utilisateurs

Services disponibles

Utilisateur 1

Service prédéfini de création (@creation)
Service personnalisé 1 (custom1)

Utilisateur 2

Service prédéfini de création (@creation)
Service prédéfini de duplication (@duplicate)
Service personnalisé 1 (custom1)

Résolution de permissions pour les actions

Les actions sont les opérations bas-niveau de manipulation d'objets EBX® sur lesquels il est possible de spécifier les droits d'exécution pour un profil. A la différence des permissions sur services utilisateurs, qui ne concernent que l'interface utilisateur, ces droits sont également applicables lorsqu'une opération est effectuée programmatiquement (c'est à dire via une Procedure) ou indirectement (par exemple lors d'un import de données, les actions sur table (création, surcharge, occultation et suppression) sont évaluées).

Voici la liste des actions sur lesquelles des droits sont définissables :

Objet de l'action

Actions disponibles

Espace de données

Créer un espace de données enfant
Créer une image
Initier une fusion
Exporter une archive
Importer une archive
Fermer l'espace de données
Fermer l'image
Créer un jeu de données

Jeu de données

Dupliquer le jeu de données
Supprimer le jeu de données
Activer/désactiver le jeu de données
Créer une vue

Table

Créer un nouvel enregistrement
Surcharger des enregistrements
Occulter des enregistrements
Supprimer des enregistrements

Pour la résolution des permissions sur actions, seules les permissions définies via l'interface utilisateur pour l'utilisateur courant (ou ses rôles) sont prises en compte, la politique de restriction s'appliquant comme pour toute permission définie via l'interface utilisateur.

Pour plus d'informations, se reporter à la section Résolution des règles utilisateur ci-après.

Résolution des règles utilisateur

Exemple

Dans cet exemple, nous avons deux utilisateurs appartenant à différents rôles et profils :

Utilisateur

Profils

Utilisateur 1

  • utilisateur1

  • rôle A

  • rôle B

Utilisateur 2

  • rôle C

  • rôle D

Les droits associés aux rôles et aux profils sur les actions d'une table donnée sont les suivants :

Profil

Créer un enregistrement

Surcharger un enregistrement

Occulter un enregistrement

Supprimer un enregistrement

Politique de restriction

utilisateur1

Non

Oui

Non

Oui

Non

Rôle A

Oui

Non

Oui

Non

Oui

Rôle B

Non

Oui

Oui

Non

Oui

Rôle C

Oui

Non

Non

Non

Non

Rôle D

Non

Non

Oui

Non

Non

Les actions disponibles pour chaque utilisateur après la résolution des droits sont les suivantes :

Utilisateurs

Actions disponibles

Utilisateur 1

Occulter un enregistrement

Utilisateur 2

Créer un enregistrement

Occulter un enregistrement

Documentation > Manuel de référence > Divers