Utiliser Visual Guard avec Visual Basic .NET

Visual Guard.NET est un produit de la société Novalys axé sur la sécurité. En effet, il permet de personnaliser aisément les permissions d'accès aux données et, par ce fait, de réduire les coûts engendrés par la sécurité. Il est déployable aussi bien sur les nouvelles applications que sur l'existant.

Commentez Donner une note à l'article (5)

Article lu   fois.

Les deux auteurs

Site personnel

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. En quelques mots

I-a. Comment ça marche ?

Une vue très simplifiée du fonctionnement de Visual Guard.NET, Novalys

  • Enregistrer dans une "base de sécurité" les permissions
  • Définir les règles de sécurité via le "Developer Workshop"
  • Gérer les profils et attribuer les droits grâce au "Profile manager"
  • Modifier l'application selon les droits attribués en exécutant le moteur de Visual Guard

Vous allez pouvoir constater grâce au test sur une application simple que Visual Guard s'utilise en deux temps :

  • lors du développement (ou de la maintenance) de l'application
  • lors de l'administration de la sécurité

Nous allons aussi essayer de vous montrer simplement avec quelle facilité il est possible de créer plusieurs types d'utilisateurs et un grand nombre de permissions variées pour chaque type.

I-b. Domaine d'application

D'après Novalys, les principaux domaines d'applications sont PowerBuilder et Visual Basic aussi bien version 5 ou 6 que la version NET 2003 ainsi qu'au langage C#. Il s'applique aussi aux développements en ASP.NET.

Image non disponibleLa version présentée ici ne fonctionne que sous le framework 1.0 ou 1.1. et au plus avec Visual Basic 2003.

Image non disponibleLe logiciel adapté au framework 2.0 et, donc, à Visual Basic 2005 sera disponible vers le mois de juin 2006.

I-c. Gérer la sécurité

Il est vrai que le framework .NET fournit en standard un ensemble de fonctionnalités permettant de sécuriser nos applications. Visual Guard a été créé pour en faciliter la gestion et éviter des problèmes de maintenance dus à la complexité des fonctionnalités standards. Visual Guard permet d'ajouter à vos applications un mécanisme d'autorisation et d'authentification en quelques lignes de code.

II. Téléchargement et installation

Vous devez avoir installé le framework NET 1.0 ou 1.1 pour que Visual Guard puisse fonctionner. Le test suivant a été réalisé avec le framework 1.1 et Visual Basic 2003.

Vous pouvez obtenir une version d'évaluation en anglais à cette adresse : Request a trial version en vous inscrivant.


L'installation de Visual Guard s'effectue à partir d'un Setup classique. Lancer le Setup et parcourez les écrans décrits :


Image non disponible

Image non disponible

Image non disponible


Si vous cliquez sur "Disk cost", un écran de gestion de votre espace disque sera affiché :

Image non disponible

L'installeur est maintenant prêt pour configurer l'installation, il vous suffit de confirmer en cliquant sur "Next" :

Image non disponible

Image non disponible

Image non disponible


L'installation est maintenant terminée. La dernière mise en garde de l'installeur a toute son importance pour la suite du test car il faut impérativement que votre framework soit à jour. Si vous n'êtes pas certain d'être à jour, exécutez Windows Update.

Dans le menu Démarrer de votre ordinateur, vous devez retrouver cette configuration :

Image non disponible

III. Intégration dans votre application

Pour utiliser Visual Guard.NET, créons une solution Visual Basic.NET que nous avons appellée WinTestVG. Pour intégrer le logiciel dans notre projet, nous devons procéder en 4 étapes :

III-a. Etape 1 : les références

1. Click droit sur le projet / ajouter une référence

Image non disponible

2. Sélectionnez les trois références nécessaires :

Image non disponible

où :

  • Novalys.VisualGuard.Security contient les classes principales de Visual Guard
  • Novalys.VisualGuard.Security.File contient les classes nécessaires pour accéder à un référentiel stocké sous forme de fichier. Si vous utilisez un référentiel stocké dans une base de données ou dans l'Active Directory, il faudra la remplacer par l'Assembly correspondant à votre type de référentiel.
  • Novalys.VisualGuard.Security.WinForm contient les classes graphiques pour une application de type WinForms. Cet Assembly est nécessaire uniquement si vous désirez utiliser les fenêtres fournies par défaut. A tout moment, vous pouvez utiliser vos propres fenêtres.
  • Novalys.VisualGuard.Security.VGSecurityManager est la classe principale. Elle permet de centraliser toutes les actions nécessaires au fonctionnement de Visual Guard.
  • Novalys.VisualGuard.Security.WinForm.VGLoginForm est la fenêtre par défaut de Visual Guard pour authentifier un utilisateur. Cette fenêtre n'est pas obligatoire, vous pouvez utiliser votre propre fenêtre et appeler vous-même la fonction d'authentification de VGSecurityManager

Vous devez donc les retrouver dans votre projet :

Image non disponible

III-b. Etape 2 : créer un référentiel

Pour cela, vous devez ouvrir la console de Visual Guard :

Image non disponible

et comme demandé dans cet écran, créer le référentiel vers votre application. Pour cela, il y a deux manières de procéder :

Soit un "clic" droit sur Visual Guard Console et "Add Repository"

Image non disponible

Soit en utilisant le bouton de bas d'écran :

Image non disponible

Dès lors, vous ouvrez l'assistant d'installation du référentiel :

Image non disponible

Cliquez sur "Next" et suivez les écrans en choisissant de créer un nouveau référentiel ainsi que le dossier de destination.

Image non disponible

Image non disponible

Image non disponible

L'étape suivante est très importante car elle permet de définir quel sera l'utilisateur par défaut qui pourra administrer ce référentiel. A la fin de l'assistant, Visual Guard créera cet utilisateur dans le référentiel Visual Guard et lui donnera les droits d'administration.

Image non disponible

Attention, ce mot de passe est important, ne l'oubliez pas, sinon vous ne pourrez plus accéder au référentiel par la suite.

Pour terminer, cliquez sur "Finish" et nommez votre référentiel. Ici, nous allons choisir le nom "Dvp".

Image non disponible

Enfin, connectez-vous à "Dvp" en double-cliquant dessus et en introduisant votre login et password, en l'occurence dans notre exemple "Administrator" et "1234" :

Image non disponible

III-c. Etape 3 : créons notre application

Image non disponibleNous désirons attirer votre attention sur le fait que nous avons testé ce programme différemment de l'exemple livré avec Visual Guard. En effet, reproduire un exemple existant déjà n'était pas très représentatif d'un test "grandeur nature".
Nous avons décider de travailler :

  • avec une base de données en Access (NorthWind.mdb) plutôt que SQL Server
  • directement dans le code pour l'exploitation de cette base de données et non via l'assistant de Visual Basic

Afin de poursuivre l'implémentation de Visual Guard, nous devons créer l'ébauche de notre application. En effet, vous verrez au point suivant que nous avons besoin de référencer un exécutable.

Il est bien évident que Visual Guard est applicable à des projets déjà existants. Les seules modifications importantes à réaliser consistent à référencer Visual Guard et à pouvoir déterminer quel utilisateur se connecte.

L'application est créée dans un répertoire nommé C:\VG sous la dénomination WinTestVG. Afin de permettre différents tests d'accès aux données, nous avons dessiné :

1. Une feuille concernant la Clientèle "FrmClient"

Image non disponible

2. Une feuille concernant les Produits "FrmProduits"

Image non disponible

3. Une feuille concernant les Employés "FrmEmployes"

Image non disponible

Toutes ces feuilles ayant une apparence très classique quant à la navigation au niveau des données d'une société.
Jusque là, rien de spécial !

4. Ensuite, nous avons aussi créé une feuille MDI "MDIDemarrage" très simple comprenant un menu "Fichier" et un lien vers nos feuilles existantes

Image non disponible

Dans cette feuille, il faut y placer quelques références importantes :

  • l'importation des classes
  • l'implémentation de Visual Guard via VGISecurable
 
Sélectionnez

Imports Novalys.VisualGuard.Security.WinForm
Imports Novalys.VisualGuard.Security
 
Public Class MDIForm
    Inherits System.Windows.Forms.Form

Vous pouvez constatez que, suivant la manière dont on se connecte, certaines parties de ce menu sont inaccessibles. But avoué de la sécurisation via Visual Guard.

5. Pour la connexion, vous pouvez créer vous-même une feuille de "Login" classique. Personnellement, nous avons décidé d'utiliser celle implémentée dans Visual Guard :

Image non disponible


Image non disponibleSi vous créez votre propre feuille et, en supposant que vous y placiez un bouton de validation appelé "BtnOK", il est indispensable d'insérer ce code :

 
Sélectionnez

Imports Novalys.VisualGuard.Security

D'abord, ne pas oublier d'appeler la classe Novalys nécessaire pour coder nos besoins de sécurité et de connexion (ci-dessus). Ensuite, dans l'événement "clic" du bouton "OK", le code suivant :

 
Sélectionnez

Private Sub BtnOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnOk.clic
        Dim state As VGAuthenticationState = VGSecurityManager.Authenticate(userTextBox.Text, passwordTextBox.Text)
        If state.IsFailed() Then
            Me.DialogResult = DialogResult.None
            If state.IsCanceled() Then Return
            If state.IsCredentialInvalid() Then
                If state.IsLastBadLogin() Then
                    MessageBox.Show("Le nom de l'utilisateur ou le mot de passe est incorrect" & _
                    Environment.NewLine & "Impossible de continuer.")
                Else
                    MessageBox.Show("Le nom de l'utilisateur ou le mot de passe est incorrect")
                End If
            ElseIf state.IsUserNotAuthorized() Then
                MessageBox.Show( _
                "Vous n'êtes pas authentifié en tant qu'utilisateur pour l'application")
            ElseIf state.IsUserAccountExpired() Then
                MessageBox.Show("Votre compte et votre mot de passe ne sont plus valides. " & _
                Environment.NewLine & "Contactez votre administrateur")
            ElseIf state.IsUserAccountNotYetAvailable() Then
                MessageBox.Show("Votre compte et votre mot de passe ne sont pas disponibles.")
            ElseIf state.IsUserAccountLocked() Then
                MessageBox.Show("Votre compte est bloqué. " & _
                Environment.NewLine & "Contactez votre administrateur.")
            End If
        Else
            Me.DialogResult = DialogResult.OK
            If state.IsPasswordSecure() Then
                Return
            ElseIf state.IsLastGraceLogon() Then
                MessageBox.Show("Vous devez changer votre mot de passe")
                Dim form As FrmChangePassword = New FrmChangePassword
                form.ShowDialog()
           Else
                MessageBox.Show("Votre mot de passe n'est pas suffisamment sécurisé. " & _
                Environment.NewLine & "N'oubliez pas de le modifier.")
            End If
        End If
    End Sub
 

Ce code permet d'envoyer le mot de passe et le nom de l'utilisateur vers la sécurité gérée par Novalys et d'afficher les différents messages suivant la réponse reçue :

  1. state.IsFailed (= True) : l'authentification a échoué pour une des raisons suivantes : state.IsCanceled : l'opération a été annulée par l'utilisateurstate.IsLastBadLogin : le nom de l'utilisateur et/ou le mot de passe sont erronés et il s'agissait de la dernière tentative avant blocage du comptestate.IsUserNotAuthorized : l'utilisateur n'est pas autorisé à accéder à l'applicationstate.IsUserAccountExpired : le compte de l'utilisateur a expiré et n'est plus utilisablestate.IsUserAccountNotYetAvailable : le compte de l'utilisateur existe mais n'est pas encore validestate.IsUserAccountLocked : l'utilisateur est bloqué par l'administrateur ou suite à de nombreuses tentatives d'authentification invalides
  1. state.IsFailed (= False) : l'authentification a réussi et : state.IsPasswordSecure : le mot de passe respecte les règles de stratégies de sécurité des mots de passe. Si la valeur et False, il faut proposer à l'utilisateur de changer son mot de passestate.IsLastGraceLogon : l'authentification a réussi mais le mot de passe ne respecte pas les règles de stratégies de sécurité des mots de passe. Si l'utilisateur ne le change pas avant une prochaine connexion, son compte sera bloqué. Il faut ouvrir la fenêtre de changement de mot de passe et forcer l'utilisateur à changer son mot de passe

N'oubliez pas de créer aussi une feuille style "FrmChangePassword" pour donner la possibilité à l'utilisateur de modifier son compte suivant les messages d'erreur rencontrés.

6. Dernière petite fenêtre : "FrmUserList". Elle est composée d'une simple ListBox dans laquelle seront listés les rôles accessibles à certains utilisateurs. Vous verrez comment créer ces rôles dans la suite du tutoriel.

Image non disponible

7. Pour démarrer l'application, nous allons utiliser un module pour référencer la sécurité de notre application. Il est bien évident que ce module sera aussi le point d'entrée lors de l'exécution.
Commençons par ne pas oublier les références de classes :

 
Sélectionnez

Imports Novalys.VisualGuard.Security
Imports Novalys.VisualGuard.Security.WinForm
Imports Novalys.VisualGuard.Security.Authentication.VGNamePasswordCredential

Ensuite, le code ci-après va simplement appeler la feuille de connexion intégrée et selon le retour, l'application peut se poursuivre ou non.

 
Sélectionnez

Module Demarrage
    Public Sub Main()
        AddHandler VGSecurityManager.SecurityError, AddressOf OnSecurityError
        AddHandler VGSecurityManager.PermissionsLoading, AddressOf OnPermissionLoading
 
        Application.EnableVisualStyles()
        Application.DoEvents()
 
        Dim login As New Novalys.VisualGuard.Security.WinForm.VGLoginForm
        login.ResetText()
        login.HeaderTitle = "Test de Visual Guard"
 
        If login.ShowDialog() = DialogResult.OK Then
            login.Dispose()
            Application.Run(New MDIDemarrage)
        End If
 
    End Sub
 
	'Permet de lever toutes les erreurs interceptées par Visual Guard et demander une confirmation 
	'à l'utilisateur avant de générer une exception
    Private Sub OnSecurityError(ByVal sender As Object, ByVal e As VGSecurityErrorEventArgs)
        If MessageBox.Show("Une action de sécurité est invalide dans Visual Guard" & _
			Environment.NewLine & "The following error occured:" & Environment.NewLine & _
			e.Exception.Message & Environment.NewLine & Environment.NewLine & _
			"Do you want to continue?", "Visual Guard error", MessageBoxButtons.YesNo, _
			MessageBoxIcon.Error, MessageBoxDefaultButton.Button2) = DialogResult.Yes Then
            e.Continue = True
        End If
    End Sub
 
	'Permet à l'utilisateur de sélection un rôle dans une liste de rôles
    Private Sub OnPermissionLoading(ByVal sender As Object, ByVal e As VGPermissionsLoadingEventArgs)
        If e.Roles.Length > 1 Then
            Dim form As New FrmUserList
 
            form.Roles = e.Roles
            If form.ShowDialog() = DialogResult.OK Then
                e.Roles = form.Roles
                e.Status = VGAuthorizationStatus.Success
            Else
                e.Status = VGAuthorizationStatus.Failure Or VGAuthorizationStatus.ProcessCanceled
            End If
        End If
    End Sub
End Module

8. Il reste un peu de code à placer dans le "code généré par le concepteur"

 
Sélectionnez

Public Sub New()
        MyBase.New()
 
        'Cet appel est requis par le Concepteur Windows Form.
        InitializeComponent()
 
        'Ajoutez une initialisation quelconque après l'appel InitializeComponent()
 
        VGSecurityManager.SetSecurity(Me)
    End Sub

9. Nous pouvons maintenant enregistrer notre design dans le répertoire C:\VG sous la dénomination WinTestVG et compiler notre projet afin d'obtenir un exécutable. Il faut obtenir une arborescence comme suit :

Image non disponible

III-d. Etape 4 : définir l'application à sécuriser

Nous pouvons maintenant réaliser l'interactivité entre Visual Guard et l'application que nous désirons sécuriser. Sur "Dvp", faites un clic droit et choississez "New" puis "Application" :

Image non disponible

Un nouvel assistant est démarré pour vous permettre de définir le type d'application et son langage :

Image non disponible

Image non disponible Remarquez bien que vous devez spécifier le chemin de l'ASSEMBLY de votre solution.

Vous retrouvez ainsi dans votre division "Dvp" le nom de votre solution ainsi que de l'administrateur du référentiel.

Image non disponible

III-e. Etape 5 : les fichiers de configuration

Il faut maintenant générer la configuration. Visual Guard créera deux fichiers "config" lors de l'exécution de "Generate Visual Guard settings..."

Image non disponible

Définissez l'emplacement du fichier de configuration, en général, il se trouve dans le dossier de l'application.

Image non disponible

Visual Guard configure deux fichiers et vous signale que les modifications sont effectuées :

Image non disponible

Vous devez retrouver les informations suivantes :

Image non disponible

IV. Définition des permissions, jeu de permissions, rôles

Une permission, comme son nom l'indique, permet d'autoriser ou de restreindre l'accès à certaines parties de l'application pour l'utilisateur. Une fois l'ensemble des permissions définies, elles seront regroupées en jeux de permissions qui sont un ensemble cohérent d'autorisations devant être associés à un rôle.

Une permission correspond à un ensemble d'actions que Visual Guard devra effectuer sur l'application (désactiver un menu, filtrer une liste, cacher un champ de saisie, etc). C'est le développeur qui définit les permissions et la liste des actions.

Dans Visual Guard, il existe 2 types d'action :

  • Properties Action : permet de créer une action qui modifiera les propriétés des objets de votre application
  • Script Action : permet d'écrire un script (en Visual Basic ou en C#) qui s'exécutera dynamiquement dans l'application.

Pour chaque action, il faut définir :

  • Pour quelle classe l'action s'exécutera
  • A quel moment l'action doit s'éxécuter : au moment où l'objet est sécurisé (après le constructeur pour les objets automatiquement interceptés comme les fenêtres ou à l'appel de la méthode SetSecurity), ou à n'importe quel événement de la classe (Load, clic, …)
  • Les propriétés proprement dites de l'action.

Nous nous limiterons dans ce test aux Properties actions. En ce qui concerne les Script actions, un manuel très complet existe.

IV-a. Etape 1 : les permissions et leurs actions

Nous travaillons ici dans la console Visual Guard au niveau de notre application WinTestVG

1. Création d'un répertoire renfermant les permissions. Dans notre cas, 3 répertoires sont créés : Clients, Produits, Employes

Image non disponible

2. Création d'une permission

Image non disponible

3. Création de toutes les permissions pour chaque type de répertoire

Image non disponible

Vous nommez et décrivez le plus clairement possible la permission créée. Imaginez que vous pouvez en réaliser un très grand nombre, soyez donc précis à ce niveau afin de vous faciliter le travail à venir.


Pour chaque permission existante, il faut définir les Properties Action qui leur sont propres. Pour cela, Visual Guard dispose d'un autre assistant :

Image non disponible


Image non disponible

Remarquez que vous retrouvez les feuilles de votre application ainsi que les feuilles internes à Visual Guard. Les actions seront donc définies sur les éléments contenus dans ces feuilles. En choisissant la feuille FrmClient que nous avons créée précédemment pour afficher les données de notre base de données NorthWind.mdb, nous voyons que nous pouvons accéder à tous les événements de cette feuille.
Sélectionnons l'événement (Default) After loading the security. Ce n'est pas un événement réel de la classe mais indique à Visual Guard qu'il faut exécuter cette action au chargement de la sécurité pour cette classe.

Image non disponible

Nous pouvons maintenant accéder à tous les contrôles placés dans cette feuille et surtout à toutes leurs propriétés.

Image non disponible

Vous avez donc compris que le but de Visual Guard est de définir au niveau même des contrôles l'action à déclencher par rapport à l'utilisateur connecté.

Remarquez aussi que, dès qu'une action est définie pour un élément de votre feuille, son nom se colore en rouge dans la liste. Une facilité supplémentaire pour savoir quels éléments sont concernés par des actions

Créez donc les actions propres à chacune des permissions que vous avez déjà établies :

Image non disponible


Et voilà toute une série de permissions et leurs actions définies pour une simple petite application. Nous nous sommes limités aux accès du menu ainsi qu'aux boutons à afficher ou non, il est évident que vous pouvez étendre ces actions à tous les autres contrôles de vos feuilles et "jouer" avec toutes les propriétés.

IV-b. Etape 2 : jeu de permission

Voyons maintenant comment les permissions peuvent être regroupées en jeu de permissions (Permission set).

Image non disponible

Ces groupes doivent être nommés afin de pouvoir ultérieurement les attribuer facilement à des utilisateurs.

Nous avons donc rassemblé diverses permissions créées auparavant et provenant de nos différents répertoires. Nous voyons dans l'exemple que le "jeu de permissions" nommé "Commercial externe permissions" regroupe plusieurs permissions de base définies aussi bien au niveau des Clients que des Produits et des Employés. Il intègre même le "jeu de permissions" nommé "Commercial interne permissions" qui correspond lui aussi à diverses permissions de bases.

Vous constatez qu'à ce rythme là, on peut créer une telle arborescence de possibilités que le bon choix des noms est impératif et rendra ces regroupements plus aisés à comprendre et exploiter.

Image non disponible

Pour ajouter et enlever des permission, il existe une édition des listes de permissions qui vous facilite grandement la tâche :

Image non disponible

Un choix qui vous mène à cette fenêtre de travail :

Image non disponible

et vous remarquerez que vous pouvez continuer à faire des regroupements de niveau grâce à l'option "Edit permission set list" qui est, en fait, un "jeu de liste de permissions"

IV-c. Etape 3 : les rôles

Pour créer un rôle, le principe reste toujours le même.
Rappelez-vous la feuille "FrmUserList" que nous avons créée, elle intervient à ce niveau lors de l'exécution de notre application en listant les rôles attribuables à l'utilisateur connecté. A condition, évidemment, que vous définissiez dans la console que tel utilisateur peut choisir entre différents rôles, nous verrons comment faire dans le point suivant.

Commençons par créer nos rôles :

Image non disponible


Image non disponible

Par exemple, nous avons créé ici, 4 rôles qui pourront être alloués aux utilisateurs comme suit :

Image non disponible

Vous pouvez voir que tous les utilisateurs qui pourront choisir le rôle de "l'équipe commerciale 1" auront dans leur attribution le "jeu de permissions" attribué à ce rôle. En l'occurence ici, "commercial externe permissions".

Image non disponible

IV-d. Etape 4 : les utilisateurs

Toujours suivant le même principe, il faut maintenant créer nos utilisateurs et leur allouer des droits à chacun aussi bien au niveau des autorisations que de la gestion des dates d'accès.

Image non disponible

Remarquez qu'une fenêtre de travail s'ouvre lorsque vous désirez attribuer des rôles à l'utilisateur en cours :

Image non disponible

La modification des éléments "Start Date", "End Date" et "Locked" a une incidence précise sur les possibilités de connexion de votre utilisateur.

Image non disponible

Il existe aussi la possibilité de "dupliquer" un utilisateur mais, il faut quand même modifier ses autorisations, son mot de passe et ses coordonnées. Seul regret à émettre, l'impossibilité de créer "à la volée" un groupe d'utilisateur ayant les mêmes privilèges avec génération de leurs mots de passe.

Image non disponible



Quand nous avons fini toutes ces manipulations, la console de Visual Guard complètement "étendue" donne ce genre de résultat :

Image non disponible
Image non disponible
Image non disponible

V. Conclusion

Un produit encore très jeune qui doit évoluer (et qui évolue) vers une simplification de la génération des autorisations. Ayant relevé quelques points "améliorables", nous les avons soumis à l'équipe de développement chez Novalys.
Vous pouvez constatez à leur réponse que le produit est en développement constant :

  • la duplication des permissions, rôles, utilisateurs avec un minimum de modifications à effectuer

Novalys : La duplication de tous les items sera possible dans la version 2.0 (courant septembre). A l'heure actuelle, il possible de dupliquer un utilisateur et ses permissions ou de dupliquer une action.

  • une possibilité interactive de tester immédiatement l'effet des autorisations/restrictions sur l'application concernée

Novalys : Cela ne pourrait pas se faire sur l'ensemble des actions ou pourrait poser des problèmes dans l'application. Ce qui est envisagé est de pouvoir éventuellement recharger le jeu de permissions courant si son contenu a changé sans avoir à quitter l'application.

  • le "double-emploi" des rôles et des jeux de permissions puisqu'on ne peut avoir qu'un seul jeu de permissions pour un rôle déterminé.

Novalys : Dans la plupart des cas, le rôle et le jeu de permission sont semblable et très liés. C'est pourquoi ils semblent redondants. Cependant il existe plusieurs différences :
Il est possible avec VG d'avoir un rôle sans jeu de permissions.
Il est possible de définir des jeux de permissions à partir d'autre jeux de permissions (une sorte d'héritage de jeu de permissions). Le rôle ne le permet pas.
La notion de rôle correspond à la notion rôle standard dans .Net. La notion de permission telle que définie dans VG n'existe pas dans le framework .net. La notion de jeu de permissions définie dans .Net pour la sécurité d'accès au code n'a pas de lien avec les rôles. C'est pourquoi les 2 notions ont été séparées.
Dans la version 2.0 de VG, il sera possible de définir des rôles partagés par plusieurs applications. Dans ce cas, un rôle pourra avoir plusieurs jeux de permissions (1 par application).
Une amélioration envisagée pour la version 2.0 serait de créer par défaut un jeu de permissions à chaque création de rôle (et vice versa) et de les lier automatiquement. Ce qui simplifierait la saisie.

  • lors d'une modification dans l'application, il serait bien d'en constater la répercussion immédiate dans la console. Actuellement, il faut faire plusieurs manoeuvres.

Novalys : Les versions actuelles détectent automatiquement si une assembly a été recompilée et la rechargent automatiquement. Il est possible de vérifier toutes les actions d'une application en sélectionnant avec le clic de droite sur l'item de l'application l'option "Check Action".
Cette option va vérifier la validité de chaque action et créer une liste d'action en erreur avec un message d'erreur. Dans le cas d'une classe renommée, il suffit de double cliquer sur l'action en erreur et de sélectionner la classe avec le nouveau nom dans la liste puis de valider la saisie. Ces options n'existaient pas dans votre version.

  • une structure schématique sous forme d'organigramme pourrait être générée à partir des imbrications de permissions, jeu de permissions, liste de rôle, ...
    Soit une structure comme on peut en visualiser dans Access et les liaisons entre tables, soit une exportation dans un document XML de l'arborescence de la console. Le XML ayant tendance à devenir une référence en matière de structuration de données, il semblerait logique de privilégier cette option.

Le produit ne cessant de s'affiner dans les nouvelles versions, il plaira très certainement à un large public. Il n'est plus nécessaire d'avoir des connaissances profondes d'administration réseau pour sécuriser les applications d'une entreprise.

VI. Remerciements

Nous tenons à remercier tout particulièrement et chaleureusement Madame Grolleau, notre contact ainsi que toute l'équipe de développement de Novalys pour leurs précieux conseils et leur disponibilité.

Merci également aux membres de l'équipe Dotnet, notamment Didier Danse pour ses conseils avisés et StormimOn pour sa relecture finale.

VII. Téléchargements

L'application réalisée pour le test : VG.zip (miroir HTTP)

Image non disponibleN'oubliez pas que vous ne pourrez pas la tester sans avoir installé la console Visual Guard, le framework 1.1 et Visual Basic 2003.

L'article au format PDF : Visual Guard.pdf (miroir HTTP)

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.