Mécanismes de contrôle d'accès

Vous pouvez contrôler l’accès de différentes façons avec Windows Communication Foundation (WCF). Cette rubrique présente brièvement les différents mécanismes et suggère quand utiliser chacun ; elle a pour objectif de vous aider à sélectionner le mécanisme approprié à utiliser. Les technologies d'accès sont répertoriées par ordre de complexité. La plus simple est le PrincipalPermissionAttribute ; la plus complexe est le modèle d'identité.

Outre ces mécanismes, l’emprunt d’identité et la délégation avec WCF sont expliqués dans Délégation et emprunt d’identité.

PrincipalPermissionAttribute

PrincipalPermissionAttribute permet de restreindre l'accès à une méthode de service. Lorsque l’attribut est appliqué à une méthode, il permet de demander l’identité d’un appelant spécifique, ou son appartenance à un groupe Windows ou à un rôle ASP.NET. Si le client est authentifié à l'aide d'un certificat X.509, il bénéficie d'une identité principale qui se compose du nom du sujet auquel s'ajoute l'empreinte numérique du certificat.

Utilisez l'attribut PrincipalPermissionAttribute pour contrôler l'accès aux ressources sur l'ordinateur où le service s'exécute et pour contrôler si les utilisateurs du service feront toujours partie du même domaine Windows sur lequel le service s'exécute. Vous pouvez créer facilement des groupes Windows disposant de niveaux d'accès spécifiés (tels qu'aucun, lecture seule ou lecture et écriture).

Pour plus d’informations sur l’utilisation de l’attribut, consultez Guide pratique : Restreindre l’accès à l’aide de la classe PrincipalPermissionAttribute. Pour plus d’informations sur l’identité, consultez Identité du service et authentification.

Fournisseur d'appartenances ASP.NET

Autre fonctionnalité d’ASP.NET : le fournisseur d’appartenances. Bien que le fournisseur d'appartenances ne soit pas techniquement un mécanisme de contrôle d'accès, il permet de contrôler l'accès au service en limitant le jeu d'identités possibles qui peuvent accéder au point de terminaison du service. La fonctionnalité d’appartenance inclut une base de données qui peut être remplie avec des associations nom d’utilisateur/mot de passe qui permettent aux utilisateurs d’un site Web d’établir des comptes avec le site. Pour accéder à un service qui utilise le fournisseur d’appartenances, un utilisateur doit se connecter avec son nom d’utilisateur et son mot de passe.

Notes

Vous devez d’abord renseigner la base de données à l’aide de la fonctionnalité ASP.NET pour qu’un service WCF puisse l’utiliser à des fins d’autorisation.

Vous pouvez également utiliser la fonctionnalité d’appartenances si vous disposez déjà d’une base de données d’appartenances provenant d’un site web ASP.NET existant et que vous souhaitez permettre aux mêmes utilisateurs d’accéder à votre service avec les mêmes noms d’utilisateur et mots de passe.

Pour plus d’informations sur l’utilisation de la fonctionnalité d’appartenances dans un service WCF, consultez Guide pratique : Utiliser le fournisseur d’appartenances ASP.NET.

Fournisseur de rôle ASP.NET

Autre fonctionnalité d’ASP.NET : la possibilité de gérer les autorisations à l’aide de rôles. Le fournisseur de rôles ASP.NET permet à un développeur de créer des rôles pour les utilisateurs, et d’attribuer un ou plusieurs rôles à chaque utilisateur. Comme avec le fournisseur d’appartenances, les rôles et les attributions sont stockés dans une base de données et peuvent être renseignés à l’aide d’outils fournis par une implémentation particulière du fournisseur de rôles ASP.NET. Comme avec la fonctionnalité d’appartenances, les développeurs WCF peuvent utiliser les informations de la base de données pour attribuer des autorisations aux utilisateurs du service par le biais de rôles. Par exemple, ils peuvent utiliser le fournisseur de rôle en association avec le mécanisme de contrôle d'accès PrincipalPermissionAttribute décrit précédemment.

Vous pouvez également utiliser le fournisseur de rôles ASP.NET si vous disposez d’une base de données de fournisseurs de rôles ASP.NET existante et que vous souhaitez utiliser le même ensemble de règles et d’attributions utilisateur dans votre service WCF.

Pour plus d’informations sur l’utilisation de la fonctionnalité Fournisseur de rôles, consultez Guide pratique : Utiliser le fournisseur de rôles ASP.NET avec un service.

Gestionnaire d'autorisations

Une autre fonctionnalité combine le Gestionnaire d’autorisations (AzMan) avec le fournisseur de rôles ASP.NET pour attribuer des autorisations aux clients. Lorsqu’ASP.NET héberge un service web, AzMan peut être intégré dans l’application afin que l’autorisation d’accès au service soit gérée par AzMan. Le gestionnaire de rôles ASP.NET fournit une API qui vous permet de gérer les rôles relatifs à une application, d’ajouter et de supprimer des utilisateurs dans des rôles, et de vérifier l’appartenance à un rôle, mais elle ne vous permet pas de demander si un utilisateur est autorisé à exécuter une tâche ou une opération donnée. AzMan vous permet de définir des opérations individuelles et de les associer dans des tâches. Grâce à AZMan, outre les contrôles de rôle, vous pouvez également vérifier si un utilisateur peut effectuer une tâche. L’affectation des rôles et l’autorisation des tâches peuvent être configurées en dehors de l’application ou effectuées par programme au sein de l’application. Le composant logiciel enfichable Microsoft Management Console (MMC) d'administration AzMan permet aux administrateurs de modifier les tâches qu'un rôle peut effectuer au moment de l'exécution et de gérer l'appartenance aux rôles de chaque utilisateur.

Vous pouvez également utiliser AzMan et le fournisseur de rôles ASP.NET si vous avez déjà accès à une installation AzMan existante et souhaitez autoriser les utilisateurs de votre service à utiliser les fonctionnalités combinées d’AzMan et du fournisseur de rôles.

Pour plus d’informations sur AzMan et le fournisseur de rôles ASP.NET, consultez Guide pratique : Utiliser le Gestionnaire d’autorisations (AzMan) avec ASP.NET 2.0. Pour plus d’informations sur l’utilisation d’AzMan et du fournisseur de rôles pour les services WCF, consultez Guide pratique : Utiliser le fournisseur de rôles du Gestionnaire d’autorisations ASP.NET avec un service.

Modèle d'identité

Le modèle d'identité est un ensemble d'API qui vous permettent de gérer des revendications et des stratégies pour autoriser des clients. Le modèle d'identité vous permet d'examiner chaque revendication incluse dans les informations d'identification que l'appelant a utilisée pour s'authentifier auprès du service, de comparer les revendications au jeu de stratégies pour le service et d'accorder ou de refuser l'accès en fonction de cette comparaison.

Utilisez le modèle d'identité si vous avez besoin d'un contrôle précis et de la capacité de définir des critères spécifiques avant d'accorder l'accès. Par exemple, lorsque vous utilisez PrincipalPermissionAttribute, le critère est simplement que l'identité de l'utilisateur est authentifiée et que l'utilisateur appartient à un rôle spécifique. En revanche, le modèle d'identité vous permet de créer une stratégie stipulant que l'utilisateur doit être majeur et qu'il doit posséder un permis de conduire valide pour pouvoir être autorisé à consulter un document.

Par exemple, vous pouvez tirer parti du contrôle d'accès basé sur revendication du modèle d'identité lorsque vous utilisez des informations d'identification de fédération dans le scénario de jeton émis. Pour plus d’informations sur la fédération et les jetons émis, consultez Fédération et jetons émis.

Pour plus d’informations sur le modèle d’identité, consultez Gérer les revendications et les autorisations avec le modèle d’identité.

Voir aussi