Gestion de la sécurité (Service Broker)

Service Broker fournit une infrastructure de sécurité souple qui permet de sécuriser vos applications. Cette rubrique détaille certains points à prendre en considération lorsque vous gérez la sécurité Service Broker.

Planification de la sécurité

Chaque application possède ses propres exigences en matière de sécurité. Gérer la sécurité consiste, entre autres choses, à prévoir soigneusement les besoins de votre application. La sécurité du transport, la sécurité du dialogue et l'infrastructure de sécurité élaborées dans SQL Server travaillent conjointement pour assurer la sécurité de votre application.

Toutes les applications utilisent l'infrastructure de sécurité élaborée dans SQL Server. Chaque opération exécutée dans SQL Server survient dans un contexte de sécurité spécifique. La plupart du temps, des entités de sécurité de base de données SQL Server sont créées spécifiquement pour l'application. De cette façon, vous avez la garantie que chaque étape de l'application se déroule dans un contexte de sécurité où seuls les privilèges nécessaires à l'étape en cours sont sollicités. Par exemple, l'entité de sécurité que vous spécifiez pour l'activation interne requiert des autorisations d'exécution sur la procédure stockée que Service Broker active. La procédure elle-même peut prendre l'identité d'un utilisateur disposant de l'autorisation RECEIVE pour la file d'attente et de l'autorisation UPDATE pour une table particulière. Vous concevez donc votre application afin que, à chaque étape, le contexte de sécurité de l'application ne dispose d'aucune autorisation lui permettant d'effectuer des opérations non prévues.

Les applications qui envoient des messages entre des instances SQL Server sont susceptibles d'utiliser la sécurité du transport, la sécurité du dialogue, voire les deux à la fois. Ces types de sécurité assurent séparément des protections différentes.

La sécurité du dialogue Service Broker fournit une autorisation et un chiffrement de bout en bout pour les conversations qui se tiennent entre des services spécifiques. Ce type de sécurité vous permet donc de protéger des données contre toute inspection ou toute modification pendant le transit. Les applications qui transmettent des données confidentielles ou sensibles, mais aussi des messages sur des réseaux non approuvés, doivent utiliser la sécurité du dialogue. Ce type de sécurité permet à un participant d'une conversation d'identifier l'autre participant de cette conversation.

Dans la mesure où la sécurité du dialogue s'applique à des services spécifiques, vous devez configurer cette sécurité pour chaque service concerné. En revanche, une instance peut utiliser la sécurité du dialogue pour certaines conversations et autoriser la transmission non chiffrée pour d'autres. Ainsi, les conversations destinées à un service qui met à jour des informations client sont tout à fait indiquées pour la sécurité du dialogue, alors que les conversations assurant une simple recherche d'informations sur un numéro de pièce ne nécessitent pas forcément ce type de sécurité.

Service Broker utilise les liaisons de service distant dans la base de données qui engage la conversation pour définir la sécurité de la conversation. Le nom du service est donc utilisé pour déterminer la sécurité du service. Dans les cas où plusieurs instances d'un même service cible existent, le routage des services qui ont engagé la conversation doit être géré soigneusement pour que ces services communiquent uniquement avec les services cibles qui contiennent les certificats correspondants. Tous les services portant un nom identique doivent être configurés avec le même certificat.

La sécurité du transport Service Broker protège les points de terminaison Service Broker contre les connexions réseau non autorisées, elle détecte les modifications subies par les messages en transit et, le cas échéant, fournit un chiffrement point-à-point. La protection de votre base de données contre la réception de messages indésirables est ainsi renforcée. Puisque la sécurité du transport s'applique aux connexions réseau, ce type de sécurité s'applique automatiquement à toutes les conversations existant entre les instances SQL Server. Remarquez toutefois que la sécurité du transport n'assure ni chiffrement de bout en bout, ni authentification pour les conversations individuelles.

Gestion de la sécurité

Veiller au maintien de la sécurité pour des applications Service Broker se résume à deux tâches principales : l'audit de la configuration de l'application et le remplacement des certificats utilisés par cette application.

Procédez régulièrement à l'audit de l'application pour vérifier que la configuration de la sécurité demeure inchangée et qu'elle répond aux besoins des activités de l'application.

La sécurité du dialogue repose sur des certificats pour l'authentification et le chiffrement. La sécurité du transport peut également utilisée des certificats. Un certificat présente une durée spécifiée pendant laquelle il est valide : il est donc inutilisable avant l'écoulement de cette période et après l'expiration du délai prévu. Service Broker n'utilise que les certificats en cours de validité. En outre, SQL Server inclut l'option ACTIVE FOR BEGIN_DIALOG qui permet d'activer des certificats en vue de les rendre disponibles pour Service Broker. Ainsi, pour mettre à jour des certificats, créez ou chargez de nouveaux certificats en définissant cette option sur OFF (désactivée). Une fois tous les certificats chargés, modifiez les certificats actifs sur toutes les bases de données en vue de les rendre indisponibles pour Service Broker. Modifiez ensuite les nouveaux certificats en définissant l'option ACTIVE FOR BEGIN_DIALOG pour les rendre disponibles et utilisables par Service Broker.

Pour plus d'informations sur les certificats, consultez Les certificats et Service Broker et CREATE CERTIFICATE (Transact-SQL).