Authentification et autorisation LightSwitch

Dans LightSwitch, vous pouvez rendre votre application plus sûr en empêchant les utilisateurs non - autorisés de la lecture, en modifiant, ou en supprimant des données.Si vous implémentez l'authentification et l'autorisation, les utilisateurs doivent afficher leurs identités pour qu'ils puissent accéder à l'application.Si vous avez de nombreux utilisateurs, vous pouvez également gérer l'accès plus facilement en créant des rôles d'utilisateur qui ont différents niveaux d'accès aux écrans particuliers et aux données puis à assigner chaque utilisateur au rôle approprié.

Par exemple, une application de gestion des salaires pourrait autoriser des employés à afficher, mais pas à modifier, les informations sur les salaires.Toutefois, l'autorisation d'afficher et modifier les informations sur l'employé pourrait être accordée à un superviseur salarial.Les employés seraient assignés au rôle Employé et le superviseur serait assigné au rôle Superviseur.

Vous pouvez également gérer 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 pour tous ses sous-groupes en apportant une modification unique.Par exemple, vous pouvez ajouter Bob au groupe ventes dans le Répertoire actif.Si ventes est un sous-groupe de commercialisation, toute autorisation que vous accordez à commercialisation est également accordé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, et 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 ouvrir une session sur l'ordinateur où l'application est exécutée permettent d'authentifier l'utilisateur de l'application, et 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 Explorateur de solutions, ouvrez le menu contextuel du nœud Propriétés, puis choisissez Ouvrir.

  2. Dans Concepteur d'applications, choisissez Contrôle d’accès tableau.

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

    Si vous avez choisi Utiliser l'authentification Windows, sélectionnez 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 de fournir des informations d'identification pour accéder à l'application.

Pour désactiver l'authentification

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

  2. Dans Concepteur d'applications, choisissez Contrôle d’accès tableau.

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

    L'application n'exigera pas que les utilisateurs fournissent des informations d'identification pour accéder à l'application, et n'importe quel utilisateur peut accéder à chaque partie 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, commandes, entités de données et 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<ScreenName> ou <QueryName>_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, puis 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 Explorateur de solutions, ouvrez le menu contextuel du nœud Propriétés, puis choisissez Ouvrir.

  2. Dans Concepteur d'applications, choisissez Contrôle d’accès tableau.

  3. Dans la grille Définissez les autorisations ou sélectionnez les autorisations à utiliser pour le débogage, dans la colonne Nom, sélectionnez <Add New Permission>, puis entrez un nom de programmation pour l'autorisation.

    Le nom doit commencer par un caractère alphabétique, et 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 comme vous le souhaitez pour apparaître dans l'écran que l'administrateur d'application utilisera pour assigner aux rôles.

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

Pour écrire le code afin de définir des autorisations pour un écran

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

    Concepteur d'écran Pour l'écran s'ouvre.

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

  3. Dans Éditeur de code, entrez le code suivant dans la méthode d' CanRunScreenName :

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

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

    [!REMARQUE]

    Notez que l'exemple de code recherche une autorisation nommée Can_View_Products.Partout où il s'affiche, remplacez le nom d'une autorisation que vous avez définie dans votre application.

Pour écrire le code afin de définir des autorisations pour une commande

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

    Concepteur d'écran Pour l'écran s'ouvre.

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

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

  4. Dans Éditeur de code, écrivez le code que vous souhaitez dans la méthode d' ButtonName**_CanExecute** .

    [!REMARQUE]

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

Pour écrire le code afin de définir des autorisations pour une entité

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

    Concepteur d'entités pour cette entité s'ouvre.

  2. Dans la liste Écrire le code, choisissez une méthode d' EntityName**_Can**Exécution, où EntityName est le nom de l'entité, puis Exécution est le nom de l'opération pour laquelle vous souhaitez écrire le code.

    [!REMARQUE]

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

  3. Dans Éditeur de code, écrivez le code que vous souhaitez dans la méthode d' EntityName**_Can**Exécution .

    [!REMARQUE]

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

Pour écrire le code afin de définir des autorisations pour une requête

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

    Concepteur de requêtes Pour cette requête s'ouvre.

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

  3. Dans Éditeur de code, écrivez le code que vous souhaitez dans la méthode d' QueryName**_CanExecute** .

    [!REMARQUE]

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

Pour activer des autorisations de débogage

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

  2. Dans Concepteur d'applications, choisissez Contrôle d’accès tableau.

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

Publication

Lorsque vous aidez à sécuriser votre application, la dernière étape consiste à le publier.Lorsque vous publiez pour la première fois, vous devez fournir les informations d'authentification pour un administrateur par défaut.Lorsque vous publiez à nouveau, vous ne devez pas répéter cette étape.

Pour fournir les informations d'authentification lorsque vous publiez une application

  1. Dans Assistant Publication d'application LightSwitch, sélectionnez la page Paramètres de sécurité, puis sélectionnez la case d'option Oui, créez un administrateur d'application .

    [!REMARQUE]

    Vous devez exécuter les étapes restantes uniquement si vous publiez directement sur un serveur.Si vous créez un package, vous êtes invité à ajouter un compte administrateur lorsque vous déployez le module.

  2. Dans la zone de texte Nom d'utilisateur, entrez un nom d'utilisateur.

    Si vous utilisez l'authentification Windows, vous devez spécifier un nom de connexion valide windows qui a la forme Domaine\Nom d'utilisateur.

    ConseilConseil

    Vous pouvez également assigner un groupe de sécurité dans active directory en tant qu'administrateur par défaut.

  3. Dans la zone de texte Nom complet, entrez le nom complet de l'utilisateur ou du groupe qui seront l'administrateur par défaut.

  4. Dans la zone de texte Mot de passe, entrez un mot de passe.

    [!REMARQUE]

    Si vous utilisez l'authentification Windows, Nom complet, Mot de passe et les champs Confirmer le mot de passe n'apparaissent pas.

  5. Dans la zone de texte Confirmer le mot de passe, entrez le mot de passe de nouveau.

    N'oubliez pas le nom d'utilisateur et mot de passe car vous devrez les spécifier la première exécution de l'application.

  6. Terminez la publication de l'application.

Rôles et utilisateurs

Si vous êtes l'administrateur d'application, vous devez exécuter l'application sur la première fois.Utilisez ensuite l'écran Rôles et l'écran Utilisateurs pour définir les rôles, pour assigner des autorisations aux rôles, et pour assigner des rôles aux utilisateurs ou des groupes d'utilisateurs.Vous pouvez accéder à ces écrans dans l'application active au moment de le design ou lorsqu'elle est déployée.Au moment du design, définissez une autorisation de débogage pour accéder aux écrans.Dans une application déployée, une personne à laquelle a été accordée l'autorisation Administration de sécurité peut accéder aux écrans.

[!REMARQUE]

Pour se connecter, vous devez utiliser le nom d'utilisateur et mot de passe que vous avez spécifiée lorsque vous avez publié l'application.

Pour définir un rôle et assigner des autorisations

  1. Dans une application publiée qui exécute avec des autorisations d'administration, dans la barre de menus, sélectionnez Rôles.

  2. Dans le volet de Rôles, choisissez le bouton +… (ajouter).

  3. Dans la boîte de dialogue Ajoutez le nouveau rôle, entrez un nom pour le rôle, puis choisissez le bouton OK .

  4. Dans le volet de Autorisations, choisissez le bouton +… (ajouter).

    Une nouvelle ligne s'affiche dans la grille Autorisations.

  5. Dans la première colonne de la grille, sélectionnez une autorisation dans la liste.

    Cette liste contient toutes les autorisations disponibles pour votre application.Vous pouvez ajouter autant d'autorisations lorsque vous avez besoin, mais vous devez choisir le bouton +… (ajouter) pour chaque l'ajoute.

  6. Dans la barre d'outils d'application, choisissez le bouton Enregistrer pour enregistrer vos modifications.

Pour ajouter un utilisateur ou un groupe d'utilisateurs

  1. Dans la barre de menus, sélectionnez Utilisateurs pour afficher l'écran Utilisateurs .

  2. Dans le volet de Utilisateurs et groupes, choisissez le bouton +… (ajouter).

  3. Dans la zone de texte Nom, entrez un nom d'utilisateur.

    Si vous utilisez l'authentification Windows, vous devez spécifier un nom d'utilisateur valide sous la forme d'alias (Terry), domaine et alias exemple (\), Terry alias et domaine (terry@example.com), ou nom de domaine complet et alias (northamerica.corp.example.com\Terry).La chaîne entière doit contenir moins de à 256 caractères.Vous pouvez également spécifier le nom d'un groupe de sécurité dans Active Directory.Si vous utilisez l'authentification par formulaire, le nom d'utilisateur doit être unique et contenir moins de 256 caractères.

  4. Dans la zone de texte Nom complet, entrez le nom complet de l'utilisateur.

    Les informations du champ Nom complet ne sont utilisées qu'à des fins d'affichage.

    [!REMARQUE]

    Pour l'authentification Windows, le champ Nom complet est rempli automatiquement avec le nom d'utilisateur et ne peut pas être modifié.

  5. Dans la zone de texte Mot de passe, entrez un mot de passe.

    [!REMARQUE]

    Les champs Mot de passe et de Confirmer le mot de passe n'apparaissent pas si vous utilisez l'authentification Windows.

  6. Dans la zone de texte Confirmer le mot de passe, entrez le même mot de passe.

  7. Dans le volet de Rôles, choisissez le bouton Ajouter, puis choisissez un rôle dans la liste Rôles .

    Vous pouvez assigner un utilisateur à plusieurs rôles en répétant cette étape pour chaque rôle.

  8. Dans la barre d'outils d'application, choisissez le bouton Enregistrer pour enregistrer les modifications.

Pour supprimer un utilisateur ou un groupe d'utilisateurs

  1. Dans la barre de menus, sélectionnez Utilisateurs pour afficher l'écran Utilisateurs .

  2. Dans le volet de Utilisateurs et groupes, choisissez le compte que vous souhaitez supprimer, puis choisissez le bouton X (supprimer).

    [!REMARQUE]

    Si un utilisateur est connecté avec un compte qui est supprimé, l'utilisateur peut plus enregistrer ou n'accéder aux données sur le serveur.Si l'utilisateur tente d'accéder aux données du serveur, un message d'accès refusé s'affiche.

    [!REMARQUE]

    Si un compte groupe est supprimé, les utilisateurs dont le rôle est hérité de ce groupe perd des autorisations pour ce rôle.

  3. Dans la barre d'outils d'application, choisissez le bouton Enregistrer pour enregistrer les modifications.

Voir aussi

Concepts

Considérations sur la sécurité pour LightSwitch

Autres ressources

Projets : le conteneur de votre application

Groupes de sécurité Active Directory