Sécurité des composants programmatiques
Lorsque vous utilisez la sécurité basée sur les rôles dans l’application COM+ qui contient votre composant, vous avez accès à la fonctionnalité de sécurité programmatique à partir de votre composant. Vous pouvez case activée’appartenance au rôle pour déterminer si des sections particulières du code sont exécutées, vous pouvez accéder aux informations de sécurité à l’aide de l’objet de contexte d’appel de sécurité et vous pouvez déterminer si la sécurité est activée pour l’appel actuel. Vous pouvez effectuer toutes ces tâches à l’aide d’une référence à un objet SecurityCallContext (pour les applications Microsoft Visual Basic) ou d’un pointeur vers l’interface ISecurityCallContext (pour les applications C et Microsoft Visual C++).
Pour plus d’informations sur la sécurité basée sur les rôles par programmation, consultez les rubriques suivantes de cette section :
- Vérification de l’appartenance au rôle
- Déterminer si la sécurité Role-Based est activée
- Accès aux informations de contexte d’appel de sécurité
Fonctionnalités de sécurité COM et d’emprunt d’identité
Si votre composant est utilisé dans une application COM+ qui n’utilise pas la sécurité basée sur les rôles, la vérification des rôles par programmation et les informations de contexte d’appel de sécurité ne sont pas disponibles. Toutefois, vous pouvez utiliser la fonctionnalité de sécurité par programmation fournie par COM. Pour plus d’informations, consultez Sécurité dans COM.
Bien que vous puissiez utiliser la plupart des fonctionnalités de sécurité fournies par COM, vous ne pouvez pas appeler CoInitializeSecurity à partir d’un composant qui fait partie d’une application COM+, car CoInitializeSecurity est appelé par le substitut dans lequel l’application COM+ s’exécute. Toutefois, vous pouvez appeler d’autres fonctions de sécurité, telles que CoQueryClientBlanket, qui récupère des informations sur le client.
En particulier, lorsque vous devez utiliser l’identité du client pour accéder à une ressource( par exemple, l’accès à un fichier protégé par un descripteur de sécurité ou la propagation de l’identité du client à une base de données), vous pouvez effectuer l’emprunt d’identité par programme. Pour plus d’informations sur le moment et la façon de procéder, consultez Emprunt d’identité et délégation du client.
Test des fonctionnalités de sécurité
Si vous utilisez la sécurité programmatique COM+ dans votre composant, vous devez intégrer le composant dans une application COM+ lorsque vous êtes prêt à tester les fonctionnalités de sécurité du composant. Si un composant utilisant la sécurité programmatique COM+ est exécuté sans être intégré à une application COM+, des exceptions sont levées. Par conséquent, si vous souhaitez vous assurer qu’un tel composant est également capable d’être correctement intégré à une application qui ne fait pas partie de l’environnement COM+, vous devez vous assurer que ces exceptions sont gérées de manière appropriée.
Documentation des exigences de sécurité
Si vous écrivez un composant autonome pour les applications COM+ qui utilisent la sécurité basée sur les rôles, vous devez documenter le composant afin que la sécurité puisse être configurée de manière appropriée lorsque le composant est intégré à une application COM+. Par exemple, vous devez identifier les rôles qui doivent être ajoutés et expliquer à quelles méthodes et interfaces chaque rôle doit être attribué. En outre, si une méthode telle que IsCallerInRole(« Teller ») est appelée, vous devez décrire la fonctionnalité à laquelle seuls les scrutateurs ont accès. Vous devez également spécifier si un rôle est requis pour protéger l’accès à l’ensemble du composant.
Rubriques connexes