Habilitations sur les objets et licences sur les modules

Up ! 5GL permet de créer des applications utilisées en multi-utilisateurs. Sans contrôle particulier, chaque utilisateur, i.e chaque programme se connectant à un programme serveur, est en mesure de réaliser n'importe quelle opération sur n'importe quel objet. Par exemple : Ce principe libéral, convenant parfaitement à des applications légères, pose les problèmes suivants : Up ! 5GL et Up ! Security Manager possède des fonctions permettant de gérer aisément ces situations. Ces fonctions sont débrayables de la sorte à ne pas pénaliser les applications légères. En effet, ces fonctions sont utiles lorsque l'application comporte des fonctionnalités critiques ou ouverte sur Internet.

Sessions, utilisateurs et rôles

Sessions

Chaque tâche d'un programme possède une session de fonctionnement. Chaque programme client se connectant à un programme serveur comporte sur le serveur une session cliente de fonctionnement.

Une session regroupe les informations suivantes :

Une tâche est l'association entre un thread i.e. un moteur d'exécution du système d'exploitation pour le programme, une session et le traitement à réaliser. Up ! Application System étant multi-tâches, un thread peut gérer plusieurs sessions. Par exemple les tâches Serveur desservent plusieurs tâches clients. Pour avoir plus d'informations sur les tâches, veuillez vous référer à la fiche Les tâches.

Utilisateurs

Chaque session d'un programme est rattachée à un utilisateur d'Up ! Application System qui est différent de l'utilisateur servant à la connexion au système d'exploitation ou de celui employé pour l'accès à une base de données. Celui-ci lui confère des habilitations sur des objets. Pour les sessions des tâches utilisateurs, leurs sessions se connectent automatiquement sous l'utilisateur défini par le paramètre Connexion.

Sa valeur prend la forme de Utilisateur/MotDePasse tel :

monprogramme Connexion=scott/tiger

Il est possible de changer de connexion au cours du traitement d'une tâche au moyen de la procédure Connecter de Up ! Security Manager.

Les utilisateurs sont modélisés par le type Utilisateur de Up ! Security Manager. Ses méthodes permettent respectivement de :

Rôles

Le rôle est une entité permettant de regrouper les utilisateurs de la sorte à pouvoir leur attribuer les mêmes habilitations tout en les distinguant. Les rôles sont classés sous forme d'un arbre dont les feuilles sont les utilisateurs. Une liste d'habilitations est associée à chaque rôle.

Les rôles sont modélisés par le type Role de Up ! Security Manager. Ces méthodes permettent respectivement de :

Utilisateurs particuliers

Pour les tâches propres à Up ! Object Management System ou à Up ! System, deux utilisateurs particuliers sont utilisés :

Nom de la tâcheNom de l'utilisateur
AlarmeSpoule
ArchivageSpoule
EnregistrementJournalSpoule
FichierEchangeAdministrateur
FileDAttenteSpoule
MoniteurAdministrateur
RetasserAdministrateur
ServeurSpoule
ScruptateurSpoule
StatistiquesSpoule

Ces utilisateurs sont automatiquement déclarés : Par défaut, ces deux utilisateurs n'ont pas de mot de passe.

Rôles particuliers

Pour les tâches propres à Up ! Object Management System ou à Up ! System, deux rôles particuliers sont utilisés :

Nom de l'utilisateurNom du rôle
AdministrateurAdministrateur
SpoulePublic

Ces rôles sont automatiquement déclarés : Le rôle Administrateur comporte au moins l'utilisateur dénommé Administrateur. Ce dernier comporte tous les droits sur tous les objets et cela est immuable. Il est possible de déclarer de nouveaux utilisateurs pour le rôle Administrateur avec des droits plus restreints.
Le rôle Public comporte au moins l'utilisateur dénommé Spoule. Il comporte aucun droit sur les objets de l'application nécessitant une habilitation. Il est possible de déclarer de nouveaux utilisateurs pour le rôle Public.

Mode de fonctionnement sans habilitation

Le mode de fonctionnement sans habilitation est utile pour les programmes légers : il est impensable de se signer avant d'utiliser la calculatrice de Windows !

Le mode de fonctionnement sans habilitation est activé si la fonction Principal ne comporte pas une déclaration d'habilitation via l'inflexion Habilitation.

En ce cas, le paramètre Connexion en local est facultatif.

Mode de fonctionnement avec habilitation

Le mode de fonctionnement avec habilitation est utile pour :

Le mode de fonctionnement avec habilitation est activé si la fonction Principal comporte une déclaration d'habilitation via l'inflexion Habilitation.

En ce cas, le paramètre Connexion en local est obligatoire.

Connexions à distance

Lorsque vous utilisez la répartition de traitements et de données via des modules distribués ou des entrepôts publics, il est nécessaire que votre application se connecte au serveur gérant ces modules ou ces entrepôts. Par défaut, l'utilisateur de connexion est celui utilisé pour la connexion locale.
Il est cependant possible de spécifier une connexion spécifique à un utilisateur particulier au moyen du paramètre multiple ConnexionServeur.

Sa valeur prend la forme de : Utilisateur/MotDePasse@NomDuNoeud.NomDuServeur. Voici un exemple :

monprogramme Connexion=scott/tiger ConnexionServeur1=smith/elephant@sun.finances

La procédure Connecter de Up ! Security Manager permet également de changer de connexion distante au cours du traitement d'une tâche.

Habilitations

Une habilitation est une autorisation portant sur un module, sur un type, sur un objet, sur un appel de procédure ou de fonction d'un module, sur un appel de méthode d'un type, sur une propriété d'un objet. Ce droit est donné pour un rôle.

Voici les combinaisons de droits possibles :

Cible du droit

Droit
ModuleTypeObjetProcédure
Fonction
MéthodePropriétéVariable
CréationImpossiblePossibleImpossibleImpossibleImpossibleDynamique
uniquement
Impossible
DestructionImpossiblePossiblePossibleImpossibleImpossibleDynamique
uniquement
Impossible
LectureImpossiblePossiblePossibleImpossibleImpossiblePossiblePossible
ModificationImpossiblePossiblePossibleImpossibleImpossiblePossiblePossible
ExécutionPossiblePossiblePossiblePossiblePossibleImpossibleImpossible

Les objets d'un type supportent les habilitations si le type possède l'attribut Habilitation. Il en est de même pour les propriétés d'un objet, les méthodes d'un objet ou les appels d'un module.

Les habilitations sont modélisées par les types Habilitations et HabilitationUnitaire de Up ! Security Manager selon la hiérarchie suivante :

Des méthodes du type Role de Up ! Security Manager permettent respectivement de :

Sécurité de fonctionnement

Dès lors que les habilitations sont activées, Up ! Security Manager vérifie : Si une vérification échoue alors :

Fichier de sécurité

Afin de séparer les programmes du plan de sécurité de l'entreprise, il est recommandé de créer un fichier de sécurité regroupant la définition des rôles, des utilisateurs et des habilitations.

Le fichier de sécurité est créé ou modifié par l'usage d'Up ! Security Manager en mode commande. Il est rangé dans le répertoire ${UPS_HOME}/upssec/upssec/{UPS_LANGUAGE} en mode mono-utilisateur ou ${UPS_HOME}/upssec/upssec/${UPS_USER} en mode multi-utilisateur.

Le fichier de sécurité requis à l'exécution est désigné par le paramètre Securite. Voici un exemple :

monprogramme Connexion=scott/tiger Securite=masecurite.usc

Licence

Les licences permettent de définir des droits d'usage sur les modules composants l'application selon un classement en quatre catégories : Un module licencié doit posséder l'attribut Licence. Un module faisant appel à un module licencié doit déclarer le mode d'usage qu'il en fait au moyen des attributs LicenceExpresse, LicenceStandard et LicenceEntreprise de l'instruction ImporterModule.

Une licence peut être limitée en nombre d'exécutions simultanées ou dans le temps.

Les licences sont modélisées par les types Licences et LicenceUnitaire de Up ! Security Manager selon la hiérarchie suivante :

Les méthodes du type LicenceUnitaire de Up ! Security Manager permettent de : Les objets de ces types sont automatiquement créés à chaque lancement du programme en technologie Up ! Virtual Technical Machine.

Déploiement des licences

Par défaut, une licence n'est rattachée à aucune application et à aucun utilisateur. De ce fait, n'importe quel utilisateur de n'importe qu'elle application peut l'utiliser.

Il est possible de déployer une licence pour :

Les licences peuvent être gérées localement ou au travers d'un serveur de licences qui doit être un noeud de la topologie gérée par Up ! Object Request Broker. Pour cela, il suffit d'utiliser le paramètre ServeurLicences.

Sa valeur prend la forme de NomDuNoeud.NomDuServeur. Voici un exemple :

monprogramme ServeurLicences=sun.finances

Les licences de tous les modules Up ! Application System sont conservées dans le fichier ${UPS_HOME}/upssec/upssec/upsaps.ulc. Ce fichier est mis à jour par Up ! Install lors de l'installation ou la désinstallation d'un module ou lors de la modification d'une licence.

Vérification des licences

Pour un module licencié, Up ! Virtual Technical Machine vérifie avant son chargement : Si une vérification échoue alors :