Comment : activer l'authentification dans une application cliente Silverlight

Dans LightSwitch, vous pouvez rendre votre application plus sécurisée en empêchant les utilisateurs non autorisés de lire, modifier ou supprimer des données. Si vous implémentez l'authentification et l'autorisation, les utilisateurs doivent prouver leur identité pour pouvoir accéder à l'application.

Notes

Le processus de définition des autorisations diffère pour les clients HTML. Voir Comment : activer l'authentification dans une application cliente HTML.Les applications LightSwitch qui ont été activées pour SharePoint utilisent l'authentification SharePoint pour le contrôle d'accès.

Si vous avez de nombreux utilisateurs, vous pouvez également gérer plus facilement l'accès en créant des rôles d'utilisateur disposant de divers niveaux d'accès à des écrans et données spécifiques, puis en assignant à chaque utilisateur le rôle approprié.

Par exemple, une application de gestion des salaires peut autoriser les employés à afficher, mais pas modifier, les informations relatives aux salaires. Toutefois, un superviseur de paie peut obtenir l'autorisation d'afficher et de modifier les informations relatives aux employés. Le rôle Employé serait assigné aux employés et le rôle Superviseur serait assigné au superviseur.

Vous pouvez également administrer les autorisations plus facilement en ajoutant des utilisateurs aux groupes de sécurité d'Active Directory et en assignant des autorisations à ces groupes. Étant donné que l'appartenance et les autorisations sont héritées, vous pouvez accorder et refuser des autorisations non seulement à un groupe mais également à tous ses sous-groupes en apportant une seule modification. Par exemple, vous pouvez ajouter Bob au groupe Ventes dans Active Directory. Si Ventes est un sous-groupe de Marketing, toute autorisation que vous octroyez à Marketing sera également octroyée à Bob.

Authentification

La première étape pour la sécurisation de votre application consiste à activer l'authentification. Vous pouvez utiliser l'authentification par formulaire ou l'authentification Windows. L'authentification par formulaire est gérée par l'application elle-même. Un utilisateur doit fournir un nom d'utilisateur et un mot de passe pour accéder à l'application. Dans le cadre de l'authentification Windows, les informations d'identification utilisées pour l'ouverture de session sur l'ordinateur où l'application est exécutée permettent d'authentifier l'utilisateur de cette application. En outre, aucun nom d'utilisateur ou mot de passe supplémentaire n'est requis. Dans les deux cas, un administrateur d'application gère une liste d'utilisateurs autorisés ; dans le cadre de l'authentification par formulaire, l'administrateur gère également les mots de passe chiffrés.

Pour activer l'authentification

  1. Dans l'Explorateur de solutions, ouvrez le menu contextuel du nœud Propriétés, puis choisissez Ouvrir.

  2. Dans le Concepteur d'application, choisissez l'onglet Contrôle d'accès.

  3. Dans la liste Sélectionnez le type d'authentification à utiliser :, choisissez Utiliser l'authentification Windows ou Utiliser l'authentification par formulaire.

    Si vous avez choisi Utiliser l'authentification Windows, choisissez la case d'option Autoriser uniquement les utilisateurs spécifiés dans l'écran Utilisateurs de votre application ou la case d'option Autoriser tous les utilisateurs Windows authentifiés.

    L'application demandera désormais aux utilisateurs qui souhaitent accéder à cette dernière de fournir des informations d'identification.

Pour désactiver l'authentification

  1. Dans l'Explorateur de solutions, ouvrez le menu contextuel du nœud Propriétés, puis choisissez Ouvrir.

  2. Dans le Concepteur d'application, choisissez l'onglet Contrôle d'accès.

  3. Dans la liste Sélectionnez le type d'authentification à utiliser :, choisissez Ne pas activer l'authentification.

    L'application ne demandera pas aux utilisateurs qui souhaitent accéder à cette dernière de fournir des informations d'identification. En outre, les utilisateurs peuvent accéder à toutes les parties de l'application.

Autorisations

La prochaine étape pour la sécurisation de votre application consiste à créer des autorisations. Vous pouvez définir des autorisations pour les écrans, les commandes, les entités de données et les requêtes. En premier lieu, définissez un objet d'autorisation dans le Concepteur d'application. Vous pouvez ensuite référencer l'objet dans le code, dans l'une des méthodes Can, notamment CanRun<Nom_écran> ou <Nom_requête>_CanExecute. En règle générale, le code de ces méthodes vérifie si l'utilisateur ou le rôle actuel possède l'autorisation appropriée, puis il affiche le formulaire ou exécute la requête uniquement si l'autorisation est validée.

Pour tester votre code, exécutez l'application à la fois en tant qu'utilisateur qui possède l'autorisation et en tant qu'utilisateur qui ne la possède pas. En définissant des autorisations de débogage, vous pouvez emprunter l'identité d'un utilisateur lorsque vous testez ou déboguez l'application.

Pour créer une autorisation

  1. Dans l'Explorateur de solutions, ouvrez le menu contextuel du nœud Propriétés, puis choisissez Ouvrir.

  2. Dans le Concepteur d'application, choisissez l'onglet Contrôle d'accès.

  3. Dans la grille Définir les autorisations ou sélectionner les autorisations à utiliser pour le débogage, dans la colonne Nom, choisissez <Ajouter une nouvelle autorisation>, puis entrez un nom de programmation pour l'autorisation.

    Le nom doit commencer par un caractère alphabétique. En outre, il ne peut contenir que des caractères alphabétiques ou numériques, ou des traits de soulignement.

  4. Dans la colonne Nom complet, entrez le nom de l'autorisation tel que vous souhaitez qu'il s'affiche dans l'écran que l'administrateur d'application utilisera pour assigner des rôles.

  5. Dans la colonne Description, entrez une description de l'autorisation.

Pour écrire du code permettant de définir des autorisations pour un écran

  1. Dans l'Explorateur de solutions, ouvrez le menu contextuel d'un nœud d'écran, puis choisissez Ouvrir.

    Le Concepteur d'écran s'ouvre pour cet écran.

  2. Dans la liste Écrire le code, choisissez CanRunNom_écran, où Nom_écran est le nom de l'écran sélectionné.

  3. Dans l'Éditeur de code, entrez le code suivant dans la méthode CanRunNom_écran :

    If Application.User.HasPermission(Can_View_Products) Then
        result =  True
    Else
        result = False
    End If
    
    if (Application.User.HasPermission(Permissions.Can_View_Products)) 
    {
        result = true;
    } 
    else 
    {
        result = false;
    }
    

    Ce code sera évalué à chaque démarrage de l'application.

    Notes

    Notez que l'exemple de code recherche une autorisation nommée Can_View_Products.Remplacez le nom d'une autorisation que vous avez définie dans votre application.

Pour écrire du code permettant de définir des autorisations pour une commande

  1. Dans l'Explorateur de solutions, ouvrez le menu contextuel d'un nœud d'écran, puis choisissez Ouvrir.

    Le Concepteur d'écran s'ouvre pour cet écran.

  2. Dans le volet Arborescence de contenu de l'écran, développez un nœud de commande, puis choisissez la commande pour laquelle vous souhaitez écrire du code.

  3. Ouvrez le menu contextuel de la commande, puis choisissez Nom_bouton**_CanExecute**, où Nom_bouton est le nom de la commande que vous avez choisie.

  4. Dans l'Éditeur de code, entrez le code souhaité dans la méthode Nom_bouton**_CanExecute**.

    Notes

    Pour obtenir un exemple de code, consultez « Pour écrire du code permettant de définir des autorisations pour un écran » précédemment dans cette rubrique.

Pour écrire du code permettant de définir des autorisations pour une entité

  1. Dans l'Explorateur de solutions, ouvrez le menu contextuel d'un nœud d'entité, puis choisissez Ouvrir.

    Entity Designer s'ouvre pour cette entité.

  2. Dans Entity Designer, dans la barre Perspective, choisissez Serveur.

  3. Dans la liste Écrire le code, choisissez une méthode Nom_entité**_Can**Opération, où Nom_entité est le nom de l'entité et Opération le nom de l'opération pour laquelle vous souhaitez écrire du code.

    Notes

    Les méthodes disponibles varient selon le contexte.Voici des exemples : CanDelete et CanUpdate.

  4. Dans l'Éditeur de code, entrez le code souhaité dans la méthode Nom_entité**_Can**Opération.

    Notes

    Pour obtenir un exemple de code, consultez « Pour écrire du code permettant de définir des autorisations pour un écran » précédemment dans cette rubrique.

Pour écrire du code permettant de définir des autorisations pour une requête

  1. Dans l'Explorateur de solutions, ouvrez le menu contextuel d'un nœud de requête, puis choisissez Ouvrir.

    Le Concepteur de requêtes s'ouvre pour cette requête.

  2. Dans la liste Écrire le code, choisissez l'une des méthodes Nom_requête**_CanExecute**, où Nom_requête est le nom de la requête.

  3. Dans l'Éditeur de code, entrez le code souhaité dans la méthode Nom_requête**_CanExecute**.

    Notes

    Pour obtenir un exemple de code, consultez « Pour écrire du code permettant de définir des autorisations pour un écran » précédemment dans cette rubrique.

Pour activer des autorisations de débogage

  1. Dans l'Explorateur de solutions, ouvrez le menu contextuel du nœud Propriétés, puis choisissez Ouvrir.

  2. Dans le Concepteur d'application, choisissez l'onglet Contrôle d'accès.

  3. Dans la grille Définir les autorisations ou sélectionner les autorisations à utiliser pour le débogage, choisissez l'autorisation à activer pour le débogage, puis activez la case à cocher Accordée pour le débogage.

Publication et administration

L'étape finale de l'activation de l'authentification consiste à définir un administrateur par défaut pour l'application lors de la publication. Une fois publié, l'administrateur par défaut doit se connecter et définir des utilisateurs, des rôles et des autorisations.

Pour définir un administrateur

  • Suivez les étapes dans Administration d'une application LightSwitch.

    Important

    Si l'authentification est activée et vous n'avez pas défini un administrateur par défaut, vous ne pourrez pas accéder à l'application publiée.

Voir aussi

Tâches

Administration d'une application LightSwitch

Comment : activer l'authentification dans une application cliente HTML

Concepts

Considérations sur la sécurité pour LightSwitch

Autres ressources

Écrans de client Silverlight pour les applications LightSwitch

Groupes de sécurité Active Directory