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 :

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.

Authentification du client

Emprunt d’identité et délégation du client

Sécurité des applications de bibliothèque

Sécurité des applications multiniveau

Administration de la sécurité basée sur les rôles

Utilisation de la stratégie de restriction logicielle dans COM+