Gestion des profils d'administration de la console

Gestion des différents profils d'administration de la console ceBox, ayant des droits d'accès différents

Avec la solution ceBox®, il est possible d'avoir plusieurs profils d'administration sur votre console. Chaque profil aura un certain niveau d'accès, vous permettant ainsi de déléguer certaines tâches d'Administration à vos équipes tout en limitant les accès à certaines fonctionnalités comme la gestion des Masters par exemple.

Prérequis

Par défaut, seul le profil Admin est activé sur votre console. Celui-ci a accès à l'ensemble des fonctionnalités de la console :

 - Gestion des Masters (Modification, mise à jour, etc.)
 - Gestion des postes ceBox® (arrêts, démarrage, redémarrage, etc.)
 - Gestion des machines virtuelles (connexion à distance, gestion des routes, etc.)

Pour activer la gestion des multi-profiles d'administration dans votre console ceBox®, vous devez tout d'abord en faire la demande au support Wisper par email ([email protected]).

Une fois les multi-profiles activés, vous recevrez par email les Credentials des différents comptes.

Par défaut, 2 comptes seront ajoutés :

 - Le compte **Config** 
 - Le compte **HelpDesk**. 

Vous recevrez le Compte client, un Code d'Activation ainsi que le Nom d'utilisateur.

Ces informations vous serviront pour vous connecter à la console d'administration ceBox®. Vous devrez, comme pour le compte Admin, définir un mot de passe.

Explication des notions de profil et de d'utilisateur

Profils :
Les profils définissent les droits d'accès des utilisateurs sur les actions de la console.
Chaque profil est défini dans votre console d'Administration.
Par défaut, 3 profils peuvent être créés :

 - **Administrator**
 - **Configuration Manager**
 - **Help Desk Manager**

📘

Information

Chaque utilisateur est associé à un profil d'Administration. Il est bien entendu possible d'en avoir plus, sur demande au support.

Configuration des Profils et des utilisateurs

Une fois les utilisateurs créés par le support Wisper, vous allez pouvoir configurer vos différents profils.
Il va tout d'abord falloir les déclarer. Pour ce faire, rendez-vous dans la console d'administration :

 - **Settings** > **Console** > **Profile Configuration**
2446

Le Profile Configuration permet l'édition du fichier ConsoleProfileProvider.java.
Cela va nous permettre de déclarer les différents profils et utilisateurs attachés.

Si celui-ci contient du contenu, supprimez le.

Voici le contenu à insérer dans ce fichier :

class ConsoleProfileProvider extends ConsoleEditionProfileProvider
{    protected void configure(ConsoleProfileConfiguration configuration)
    {   
        //Déclaration des 3 profils d'Administration
        //Profil 0
        configuration.profiles[0].name="Administrator";
        configuration.profiles[0].policy=configuration.policy("ConsoleAdministratorPolicy"); 

        //Profil 1
        configuration.profiles[1].name="Configuration Manager";
        configuration.profiles[1].policy=configuration.policy("ConsoleConfigurationManagerPolicy");

        //Profil 2
        configuration.profiles[2].name="Help Desk Manager";
        configuration.profiles[2].policy=configuration.policy("ConsoleHelpDeskManagerPolicy");
                        
        //Déclaration des 3 utilisateurs
        //Utilisateur 0, attaché au profil 0
        configuration.users[0].name="admin";
        configuration.users[0].profile=0;

        //Utilisateur 1, attaché au profil 1
        configuration.users[1].name="config";
        configuration.users[1].profile=1;

        //Utilisateur 2, attaché au profil 2
        configuration.users[2].name="helpdesk";
        configuration.users[2].profile=2;

        //Profil par défaut pour tout utilisateur non déclaré.
        configuration.defaultProfile=2;

    }
}

Comme vous pouvez le voir, nous avons d'abord déclaré nos 3 profils, puis enfin nos 3 utilisateurs (précédemment créés par le support Wisper).
Enfin, nous avons rattaché chaque utilisateur à un profil.
Dans notre exemple :

 - L'utilisateur **admin** est rattaché au profil 0, donc **Administrator**
 - L'utilisateur **config** est rattaché au profil 1, donc **Configuration Manager**
 - L'utilisateur **helpdesk** est rattaché au profil 2, donc **Help Desk Manager** 

Vous remarquerez que pour chaque Profil, une Policy doit être déclarée.
Par exemple pour le profil Configuration Manager, le fichier de Policy est défini comme ConsoleConfigurationManagerPolicy :

configuration.profiles[1].policy=configuration.policy("ConsoleConfigurationManagerPolicy");

Configuration des profils et de leurs droits d'accès

Nous allons devoir créer 3 fichiers, un par profil, où nous configurerons les droits d'accès de chaque profil.
Pour ce faire, dans votre console d'Administration ceBox®, allez dans :
- Settings > Console > Profiles.

2442

Nous allons devoir créer les 3 fichiers de configuration, faites un clic droit sur le dossier profiles puis cliquez sur New File.

406

Créez les 3 fichiers suivants :

 - ConsoleAdministratorPolicy.java
 - ConsoleConfigurationManagerPolicy.java
 - ConsoleHelpDeskManagerPolicy.java

Nous allons voir en détail le contenu de ces 3 fichiers.
Mais tout d'abord, il est important de comprendre le fonctionnement des droits d'accès des profils d'Administration. Chaque profil hérite des permissions du profil parent, puis on soustrait certaines permissions à chaque profil enfant.

Par défaut, le profil Administrator hérite des permissions Root, qui est le profil par défaut ayant tous les droits. Bien entendu vous ne devez retirer aucune permission au profil Adminstrator.

Contenu du fichier ConsoleAdministratorPolicy.java :

class ConsoleAdministratorPolicy extends ConsoleRootPolicy
{    protected void configure()
    {   super.configure(); //permet d'hériter des permissions du profile parent (ici ConsoleRootPolicy profil prédéfini dans la console ayant tous les droits) 
        
        //Aucune permission retirée.
    }
}

Comme vous pouvez le voir, le profil Administrator hérite des permissions du profil parent Root, et on ne lui retire aucune permission.

Contenu du fichier ConsoleConfigurationManagerPolicy.java :

class ConsoleConfigurationManagerPolicy extends ConsoleAdministratorPolicy
{    protected void configure()
    {   super.configure(); //Permet d'hériter des permissions du profile parent (ici ConsoleAdministratorPolicy)
        
        //Liste des permissions retirées.
        console.profiles.deny(); //Retire la permission d'accès à la gestion des profils afin d'éviter qu'un Configuration Manager puisse modifier son propre profil
        
        master.delete.deny();
        master.update.deny();
        master.import.deny();
        
        masterVersion.delete.deny();
        masterVersion.update.deny();
        masterVersion.clone.deny();
        masterVersion.merge.deny();

        cebox.route.virtualMachineMode.readOnly(); //Retire la permission d'éditer le mode d'une route.
    
    }
}

Le profil Configuration Manager hérite des permissions du profil Administrator, puis on lui retire certaines permissions, le profil Configuration Manager ne peut pas :

- Supprimer un Master
- Mettre à jour un Master
- Importer un Master
- Agir sur les versions des Masters 

Contenu du fichier ConsoleHelpDeskManagerPolicy.java :

class ConsoleHelpDeskManagerPolicy extends ConsoleConfigurationManagerPolicy
{    protected void configure()
    {    super.configure();//permet d'hériter des permissions du profile parent (ici ConsoleConfigurationManagerPolicy)
        
        //Liste des permissions retirées, en plus ce celles retirées dans ConsoleConfigurationManagerPolicy.
        console.configuration.deny();
        console.templates.deny();
        console.scripts.deny();
        console.wizards.deny();

        cebox.configuration.deny();
        cebox.extensions.deny();
        cebox.scheduling.deny();
        cebox.routing.deny();              
    
    }
}

Le profil Help Desk Manager hérite des permissions du profil Configuration Manager, il ne peut donc pas agir sur les Masters et leurs versions.
Puis on lui retire certaines permissions, le profil Help Desk Manager ne peut par exemple pas :

- Avoir accès au menu Configuration de la console
- Avoir accès aux Templates 
- Avoir accès aux Scripts 
- Agir les routes des ceBox®
- Agir les programmations des ceBox®
- Etc.

Dans notre exemple, les 3 profils ont été pensés de cette manière :

- L'utilisateur **admin**, rattaché au profil **Administrator** : 

Administrateur de la solution ceBox®, il a tous les droits et peut gérer les Masters, en créer de nouveaux, les mettre à jour, etc.

- L'utilisateur **config**, rattaché au profil **Configuration Manager** : 

Configuration des ceBox® il peut modifier leurs routes, il peut changer le Master des ceBox®, etc.

- L'utilisateur **helpdesk**, rattaché au profil **Help Desk Manager** : 

Assistance aux utilisateurs en se connectant à distance par exemple, vérifier leur Monitoring et les redémarrer si besoin.

Bien entendu, vous pouvez adapter les profils selon vos besoins.

Liste de toutes les permissions de base

Voici la liste complète de toutes les permissions de la console d'administration ceBox®que vous pouvez gérer :

cebox.configuration 
cebox.extensions 
cebox.informations 
cebox.monitoring 
cebox.notify 
cebox.preview
cebox.restart
cebox.route
cebox.schedule
cebox.scheduleNotify
cebox.scheduleRestart
cebox.scheduleSet
cebox.scheduleStart
cebox.scheduleStartAll
cebox.scheduleStop
cebox.scheduleSynchronize
cebox.startAll
cebox.stop
cebox.synchronize
cloud.ceboxes 
cloud.check
cloud.importMaster
cloud.informations
cloud.masters 
cloud.virtualMachines 
console.configuration 
console.configurations
console.launch
console.profiles
console.scripts
console.templates
console.wizard
console.wizards
master.make
master.delete
master.informations
master.update
masterVersion.make 
masterVersion.clone
masterVersion.delete
masterVersion.informations
masterVersion.merge
masterVersion.showMerged
masterVersion.update
virtualMachine.connect
virtualMachine.informations
virtualMachine.monitoring