Sunteți pe pagina 1din 33

Utiliser Visual Guard avec Visual Basic .

NET
Par Ccile Muno

- Christian Marchal

Date de publication : 23 mai 2006

Visual Guard.NET est un produit de la socit Novalys ax sur la scurit. En effet, il


permet de personnaliser aisment les permissions d'accs aux donnes et, par ce fait, de
rduire les cots engendrs par la scurit. Il est dployable aussi bien sur les nouvelles
applications que sur l'existant.

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

I - En quelques mots................................................................................................................................................... 3
I-a - Comment a marche ?................................................................................................................................... 3
I-b - Domaine d'application.................................................................................................................................... 3
I-c - Grer la scurit.............................................................................................................................................3
II - Tlchargement et installation............................................................................................................................... 3
III - Intgration dans votre application.........................................................................................................................7
III-a - Etape 1 : les rfrences............................................................................................................................... 7
III-b - Etape 2 : crer un rfrentiel....................................................................................................................... 9
III-c - Etape 3 : crons notre application..............................................................................................................13
III-d - Etape 4 : dfinir l'application scuriser................................................................................................... 19
III-e - Etape 5 : les fichiers de configuration........................................................................................................20
IV - Dfinition des permissions, jeu de permissions, rles....................................................................................... 21
IV-a - Etape 1 : les permissions et leurs actions.................................................................................................21
IV-b - Etape 2 : jeu de permission.......................................................................................................................25
IV-c - Etape 3 : les rles...................................................................................................................................... 27
IV-d - Etape 4 : les utilisateurs............................................................................................................................ 28
V - Conclusion........................................................................................................................................................... 32
VI - Remerciements................................................................................................................................................... 33
VII - Tlchargements............................................................................................................................................... 33

-2-

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

I - En quelques mots
I-a - Comment a marche ?
Une vue trs simplifie du fonctionnement de

Visual Guard.NET,

Novalys

Enregistrer dans une "base de scurit" les permissions


Dfinir les rgles de scurit via le "Developer Workshop"
Grer les profils et attribuer les droits grce au "Profile manager"
Modifier l'application selon les droits attribus en excutant le moteur de Visual Guard

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

lors du dveloppement (ou de la maintenance) de l'application


lors de l'administration de la scurit

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

I-b - Domaine d'application


D'aprs 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 dveloppements en ASP.NET.
La version prsente ici ne fonctionne que sous le framework 1.0 ou 1.1. et au plus avec Visual Basic 2003.
Le logiciel adapt au framework 2.0 et, donc, Visual Basic 2005 sera disponible vers le mois de juin 2006.

I-c - Grer la scurit


Il est vrai que le framework .NET fournit en standard un ensemble de fonctionnalits permettant de scuriser nos
applications. Visual Guard a t cr pour en faciliter la gestion et viter des problmes de maintenance dus
la complexit des fonctionnalits standards. Visual Guard permet d'ajouter vos applications un mcanisme
d'autorisation et d'authentification en quelques lignes de code.

II - Tlchargement 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 ralis 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 dcrits :

-3-

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

-4-

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

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

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

-5-

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

-6-

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

L'installation est maintenant termine. La dernire mise en garde de l'installeur a toute son importance pour la suite
du test car il faut imprativement que votre framework soit jour. Si vous n'tes pas certain d'tre jour, excutez
Windows Update.
Dans le menu Dmarrer de votre ordinateur, vous devez retrouver cette configuration :

III - Intgration dans votre application


Pour utiliser Visual Guard.NET, crons une solution Visual Basic.NET que nous avons appelle WinTestVG. Pour
intgrer le logiciel dans notre projet, nous devons procder en 4 tapes :

III-a - Etape 1 : les rfrences


1. Click droit sur le projet / ajouter une rfrence

-7-

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

2. Slectionnez les trois rfrences ncessaires :

o :

Novalys.VisualGuard.Security contient les classes principales de Visual Guard


Novalys.VisualGuard.Security.File contient les classes ncessaires pour accder un rfrentiel stock sous
forme de fichier. Si vous utilisez un rfrentiel stock dans une base de donnes ou dans l'Active Directory, il
faudra la remplacer par l'Assembly correspondant votre type de rfrentiel.
Novalys.VisualGuard.Security.WinForm contient les classes graphiques pour une application de type
WinForms. Cet Assembly est ncessaire uniquement si vous dsirez utiliser les fentres fournies par dfaut.
A tout moment, vous pouvez utiliser vos propres fentres.
Novalys.VisualGuard.Security.VGSecurityManager est la classe principale. Elle permet de centraliser toutes
les actions ncessaires au fonctionnement de Visual Guard.
Novalys.VisualGuard.Security.WinForm.VGLoginForm est la fentre par dfaut de Visual Guard pour
authentifier un utilisateur. Cette fentre n'est pas obligatoire, vous pouvez utiliser votre propre fentre et
appeler vous-mme la fonction d'authentification de VGSecurityManager
-8-

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

Vous devez donc les retrouver dans votre projet :

III-b - Etape 2 : crer un rfrentiel


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

et comme demand dans cet cran, crer le rfrentiel vers votre application. Pour cela, il y a deux manires de
procder :
Soit un "clic" droit sur Visual Guard Console et "Add Repository"

-9-

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

Soit en utilisant le bouton de bas d'cran :

Ds lors, vous ouvrez l'assistant d'installation du rfrentiel :

Cliquez sur "Next" et suivez les crans en choisissant de crer un nouveau rfrentiel ainsi que le dossier de
destination.

- 10 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

- 11 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

L'tape suivante est trs importante car elle permet de dfinir quel sera l'utilisateur par dfaut qui pourra administrer
ce rfrentiel. A la fin de l'assistant, Visual Guard crera cet utilisateur dans le rfrentiel Visual Guard et lui donnera
les droits d'administration.

Attention, ce mot de passe est important, ne l'oubliez pas, sinon vous ne pourrez plus accder au rfrentiel
par la suite.
Pour terminer, cliquez sur "Finish" et nommez votre rfrentiel. Ici, nous allons choisir le nom "Dvp".

- 12 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

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

III-c - Etape 3 : crons notre application

Nous dsirons attirer votre attention sur le fait que nous avons test ce programme diffremment de l'exemple
livr avec Visual Guard. En effet, reproduire un exemple existant dj n'tait pas trs reprsentatif d'un test "grandeur
nature".
Nous avons dcider de travailler :

avec une base de donnes en Access (NorthWind.mdb) plutt que SQL Server
directement dans le code pour l'exploitation de cette base de donnes et non via l'assistant de Visual Basic

- 13 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

Afin de poursuivre l'implmentation de Visual Guard, nous devons crer l'bauche de notre application. En effet, vous
verrez au point suivant que nous avons besoin de rfrencer un excutable.
Il est bien vident que Visual Guard est applicable des projets dj existants. Les seules modifications importantes
raliser consistent rfrencer Visual Guard et pouvoir dterminer quel utilisateur se connecte.
L'application est cre dans un rpertoire nomm C:\VG sous la dnomination WinTestVG. Afin de permettre
diffrents tests d'accs aux donnes, nous avons dessin :
1. Une feuille concernant la Clientle "FrmClient"

2. Une feuille concernant les Produits "FrmProduits"

3. Une feuille concernant les Employs "FrmEmployes"

- 14 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

Toutes ces feuilles ayant une apparence trs classique quant la navigation au niveau des donnes d'une socit.
Jusque l, rien de spcial !
4. Ensuite, nous avons aussi cr une feuille MDI "MDIDemarrage" trs simple comprenant un menu "Fichier" et un
lien vers nos feuilles existantes

Dans cette feuille, il faut y placer quelques rfrences importantes :

l'importation des classes


l'implmentation de Visual Guard via VGISecurable
Imports Novalys.VisualGuard.Security.WinForm
Imports Novalys.VisualGuard.Security
Public Class MDIForm
Inherits System.Windows.Forms.Form

Vous pouvez constatez que, suivant la manire dont on se connecte, certaines parties de ce menu sont inaccessibles.
But avou de la scurisation via Visual Guard.
5. Pour la connexion, vous pouvez crer vous-mme une feuille de "Login" classique. Personnellement, nous avons
dcid d'utiliser celle implmente dans Visual Guard :

- 15 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

Si vous crez votre propre feuille et, en supposant que vous y placiez un bouton de validation appel "BtnOK",
il est indispensable d'insrer ce code :
Imports Novalys.VisualGuard.Security

D'abord, ne pas oublier d'appeler la classe Novalys ncessaire pour coder nos besoins de scurit et de connexion
(ci-dessus). Ensuite, dans l'vnement "clic" du bouton "OK", le code suivant :
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 scuris. " & _
Environment.NewLine & "N'oubliez pas de le modifier.")
End If
End If
End Sub
- 16 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

Ce code permet d'envoyer le mot de passe et le nom de l'utilisateur vers la scurit gre par Novalys et d'afficher
les diffrents messages suivant la rponse reue :
1

state.IsFailed (= True) : l'authentification a chou pour une des raisons suivantes :


a
state.IsCanceled : l'opration a t annule par l'utilisateur
b
state.IsLastBadLogin : le nom de l'utilisateur et/ou le mot de passe sont errons et il s'agissait de la
dernire tentative avant blocage du compte
c
state.IsUserNotAuthorized : l'utilisateur n'est pas autoris accder l'application
d
state.IsUserAccountExpired : le compte de l'utilisateur a expir et n'est plus utilisable
e
state.IsUserAccountNotYetAvailable : le compte de l'utilisateur existe mais n'est pas encore valide
f
state.IsUserAccountLocked : l'utilisateur est bloqu par l'administrateur ou suite de nombreuses
tentatives d'authentification invalides

state.IsFailed (= False) : l'authentification a russi et :


a
state.IsPasswordSecure : le mot de passe respecte les rgles de stratgies de scurit des mots de
passe. Si la valeur et False, il faut proposer l'utilisateur de changer son mot de passe
b
state.IsLastGraceLogon : l'authentification a russi mais le mot de passe ne respecte pas les rgles
de stratgies de scurit des mots de passe. Si l'utilisateur ne le change pas avant une prochaine
connexion, son compte sera bloqu. Il faut ouvrir la fentre de changement de mot de passe et forcer
l'utilisateur changer son mot de passe

N'oubliez pas de crer aussi une feuille style "FrmChangePassword" pour donner la possibilit l'utilisateur de
modifier son compte suivant les messages d'erreur rencontrs.
6. Dernire petite fentre : "FrmUserList". Elle est compose d'une simple ListBox dans laquelle seront lists les rles
accessibles certains utilisateurs. Vous verrez comment crer ces rles dans la suite du tutoriel.

7. Pour dmarrer l'application, nous allons utiliser un module pour rfrencer la scurit de notre application. Il est
bien vident que ce module sera aussi le point d'entre lors de l'excution.
Commenons par ne pas oublier les rfrences de classes :
Imports Novalys.VisualGuard.Security
Imports Novalys.VisualGuard.Security.WinForm
Imports Novalys.VisualGuard.Security.Authentication.VGNamePasswordCredential

Ensuite, le code ci-aprs va simplement appeler la feuille de connexion intgre et selon le retour, l'application peut
se poursuivre ou non.
- 17 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

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 interceptes par Visual Guard et demander une confirmation
' l'utilisateur avant de gnrer une exception
Private Sub OnSecurityError(ByVal sender As Object, ByVal e As VGSecurityErrorEventArgs)
If MessageBox.Show("Une action de scurit 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 slection un rle dans une liste de rles
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 gnr par le concepteur"


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

9. Nous pouvons maintenant enregistrer notre design dans le rpertoire C:\VG sous la dnomination WinTestVG et
compiler notre projet afin d'obtenir un excutable. Il faut obtenir une arborescence comme suit :

- 18 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

III-d - Etape 4 : dfinir l'application scuriser


Nous pouvons maintenant raliser l'interactivit entre Visual Guard et l'application que nous dsirons scuriser. Sur
"Dvp", faites un clic droit et choississez "New" puis "Application" :

Un nouvel assistant est dmarr pour vous permettre de dfinir le type d'application et son langage :

Remarquez bien que vous devez spcifier 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 rfrentiel.

- 19 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

III-e - Etape 5 : les fichiers de configuration


Il faut maintenant gnrer la configuration. Visual Guard crera deux fichiers "config" lors de l'excution de "Generate
Visual Guard settings..."

Dfinissez l'emplacement du fichier de configuration, en gnral, il se trouve dans le dossier de l'application.

Visual Guard configure deux fichiers et vous signale que les modifications sont effectues :

- 20 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

Vous devez retrouver les informations suivantes :

IV - Dfinition des permissions, jeu de permissions, rles


Une permission, comme son nom l'indique, permet d'autoriser ou de restreindre l'accs certaines parties de
l'application pour l'utilisateur. Une fois l'ensemble des permissions dfinies, elles seront regroupes en jeux de
permissions qui sont un ensemble cohrent d'autorisations devant tre associs un rle.
Une permission correspond un ensemble d'actions que Visual Guard devra effectuer sur l'application (dsactiver
un menu, filtrer une liste, cacher un champ de saisie, etc). C'est le dveloppeur qui dfinit les permissions et la liste
des actions.
Dans Visual Guard, il existe 2 types d'action :

Properties Action : permet de crer une action qui modifiera les proprits des objets de votre application
Script Action : permet d'crire un script (en Visual Basic ou en C#) qui s'excutera dynamiquement dans
l'application.

Pour chaque action, il faut dfinir :

Pour quelle classe l'action s'excutera


A quel moment l'action doit s'xcuter : au moment o l'objet est scuris (aprs le constructeur pour les
objets automatiquement intercepts comme les fentres ou l'appel de la mthode SetSecurity), ou
n'importe quel vnement de la classe (Load, clic, )
Les proprits proprement dites de l'action.

Nous nous limiterons dans ce test aux Properties actions. En ce qui concerne les Script actions, un manuel trs
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. Cration d'un rpertoire renfermant les permissions. Dans notre cas, 3 rpertoires sont crs : Clients, Produits,
Employes

- 21 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

2. Cration d'une permission

3. Cration de toutes les permissions pour chaque type de rpertoire

Vous nommez et dcrivez le plus clairement possible la permission cre. Imaginez que vous pouvez en raliser un
trs grand nombre, soyez donc prcis ce niveau afin de vous faciliter le travail venir.
Pour chaque permission existante, il faut dfinir les Properties Action qui leur sont propres. Pour cela, Visual Guard
dispose d'un autre assistant :

- 22 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

Remarquez que vous retrouvez les feuilles de votre application ainsi que les feuilles internes Visual Guard. Les
actions seront donc dfinies sur les lments contenus dans ces feuilles. En choisissant la feuille FrmClient que
nous avons cre prcdemment pour afficher les donnes de notre base de donnes NorthWind.mdb, nous voyons
que nous pouvons accder tous les vnements de cette feuille.
Slectionnons l'vnement (Default) After loading the security. Ce n'est pas un vnement rel de la classe mais
indique Visual Guard qu'il faut excuter cette action au chargement de la scurit pour cette classe.

- 23 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

Nous pouvons maintenant accder tous les contrles placs dans cette feuille et surtout toutes leurs proprits.

Vous avez donc compris que le but de Visual Guard est de dfinir au niveau mme des contrles l'action
dclencher par rapport l'utilisateur connect.
Remarquez aussi que, ds qu'une action est dfinie pour un lment de votre feuille, son nom se colore en rouge
dans la liste. Une facilit supplmentaire pour savoir quels lments sont concerns par des actions
Crez donc les actions propres chacune des permissions que vous avez dj tablies :

- 24 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

Et voil toute une srie de permissions et leurs actions dfinies pour une simple petite application. Nous nous sommes
limits aux accs du menu ainsi qu'aux boutons afficher ou non, il est vident que vous pouvez tendre ces actions
tous les autres contrles de vos feuilles et "jouer" avec toutes les proprits.

IV-b - Etape 2 : jeu de permission


Voyons maintenant comment les permissions peuvent tre regroupes en jeu de permissions (Permission set).

Ces groupes doivent tre nomms afin de pouvoir ultrieurement les attribuer facilement des utilisateurs.
Nous avons donc rassembl diverses permissions cres auparavant et provenant de nos diffrents rpertoires. Nous
voyons dans l'exemple que le "jeu de permissions" nomm "Commercial externe permissions" regroupe plusieurs
permissions de base dfinies aussi bien au niveau des Clients que des Produits et des Employs. Il intgre mme le
"jeu de permissions" nomm "Commercial interne permissions" qui correspond lui aussi diverses permissions
de bases.
Vous constatez qu' ce rythme l, on peut crer une telle arborescence de possibilits que le bon choix des noms
est impratif et rendra ces regroupements plus aiss comprendre et exploiter.

- 25 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

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

Un choix qui vous mne cette fentre de travail :

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

- 26 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

IV-c - Etape 3 : les rles


Pour crer un rle, le principe reste toujours le mme.
Rappelez-vous la feuille "FrmUserList" que nous avons cre, elle intervient ce niveau lors de l'excution de notre
application en listant les rles attribuables l'utilisateur connect. A condition, videmment, que vous dfinissiez
dans la console que tel utilisateur peut choisir entre diffrents rles, nous verrons comment faire dans le point suivant.
Commenons par crer nos rles :

Par exemple, nous avons cr ici, 4 rles qui pourront tre allous aux utilisateurs comme suit :

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

- 27 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

IV-d - Etape 4 : les utilisateurs


Toujours suivant le mme principe, il faut maintenant crer nos utilisateurs et leur allouer des droits chacun aussi
bien au niveau des autorisations que de la gestion des dates d'accs.

- 28 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

Remarquez qu'une fentre de travail s'ouvre lorsque vous dsirez attribuer des rles l'utilisateur en cours :

La modification des lments "Start Date", "End Date" et "Locked" a une incidence prcise sur les possibilits de
connexion de votre utilisateur.

- 29 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

Il existe aussi la possibilit de "dupliquer" un utilisateur mais, il faut quand mme modifier ses autorisations, son mot
de passe et ses coordonnes. Seul regret mettre, l'impossibilit de crer " la vole" un groupe d'utilisateur ayant
les mmes privilges avec gnration de leurs mots de passe.

Quand nous avons fini toutes ces manipulations, la console de Visual Guard compltement "tendue" donne ce genre
de rsultat :

- 30 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

- 31 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

V - Conclusion
Un produit encore trs jeune qui doit voluer (et qui volue) vers une simplification de la gnration des autorisations.
Ayant relev quelques points "amliorables", nous les avons soumis l'quipe de dveloppement chez Novalys.
Vous pouvez constatez leur rponse que le produit est en dveloppement constant :

la duplication des permissions, rles, 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 immdiatement l'effet des autorisations/restrictions sur l'application
concerne

- 32 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

Utiliser Visual Guard avec Visual Basic .NET par Ccile Muno - Christian Marchal

Novalys : Cela ne pourrait pas se faire sur l'ensemble des actions ou pourrait poser des problmes 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 rles et des jeux de permissions puisqu'on ne peut avoir qu'un seul jeu de permissions
pour un rle dtermin.

Novalys : Dans la plupart des cas, le rle et le jeu de permission sont semblable et trs lis. C'est pourquoi ils
semblent redondants. Cependant il existe plusieurs diffrences :
Il est possible avec VG d'avoir un rle sans jeu de permissions.
Il est possible de dfinir des jeux de permissions partir d'autre jeux de permissions (une sorte d'hritage de jeu de
permissions). Le rle ne le permet pas.
La notion de rle correspond la notion rle standard dans .Net. La notion de permission telle que dfinie dans VG
n'existe pas dans le framework .net. La notion de jeu de permissions dfinie dans .Net pour la scurit d'accs au
code n'a pas de lien avec les rles. C'est pourquoi les 2 notions ont t spares.
Dans la version 2.0 de VG, il sera possible de dfinir des rles partags par plusieurs applications. Dans ce cas, un
rle pourra avoir plusieurs jeux de permissions (1 par application).
Une amlioration envisage pour la version 2.0 serait de crer par dfaut un jeu de permissions chaque cration
de rle (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 rpercussion immdiate dans la
console. Actuellement, il faut faire plusieurs manoeuvres.

Novalys : Les versions actuelles dtectent automatiquement si une assembly a t recompile et la rechargent
automatiquement. Il est possible de vrifier toutes les actions d'une application en slectionnant avec le clic de droite
sur l'item de l'application l'option "Check Action".
Cette option va vrifier la validit de chaque action et crer une liste d'action en erreur avec un message d'erreur.
Dans le cas d'une classe renomme, il suffit de double cliquer sur l'action en erreur et de slectionner la classe avec
le nouveau nom dans la liste puis de valider la saisie. Ces options n'existaient pas dans votre version.

une structure schmatique sous forme d'organigramme pourrait tre gnre partir des imbrications de
permissions, jeu de permissions, liste de rle, ...
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 rfrence en
matire de structuration de donnes, il semblerait logique de privilgier cette option.

Le produit ne cessant de s'affiner dans les nouvelles versions, il plaira trs certainement un large public. Il n'est
plus ncessaire d'avoir des connaissances profondes d'administration rseau pour scuriser les applications d'une
entreprise.

VI - Remerciements
Nous tenons remercier tout particulirement et chaleureusement Madame Grolleau, notre contact ainsi que toute
l'quipe de dveloppement de Novalys pour leurs prcieux conseils et leur disponibilit.
Merci galement aux membres de l'quipe Dotnet, notamment Didier Danse pour ses conseils aviss et
StormimOn pour sa relecture finale.

VII - Tlchargements
L'application ralise pour le test : VG.zip (miroir HTTP)
N'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)
- 33 -

Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://khany.developpez.com/dotnet/visualguard/

S-ar putea să vă placă și