Gérer la sécurité (Service Broker)

S’applique à :SQL ServerAzure SQL Managed Instance

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.

Planifier 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 sont combinées pour sécuriser 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. Dans la plupart des cas, vous créez des principaux de base de données SQL Server 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, le principal 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 stockée peut elle-même se faire passer pour un utilisateur disposant de l’autorisation pour la file d’attente RECEIVE et de l’autorisation pour une table particulière UPDATE. Vous concevez votre application afin que, à chaque étape, le contexte de sécurité de l’application n’ait pas l’autorisation d’effectuer des opérations inattendues.

Les applications qui envoient des messages entre des instances SQL Server peuvent utiliser la sécurité du transport, la sécurité de boîte de dialogue ou les deux. 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é. Toutefois, une instance peut utiliser la sécurité des boîtes de dialogue pour certaines conversations et permettre à d’autres conversations d’être transmises non chiffrées. Par exemple, les conversations vers un service qui met à jour les informations client peuvent utiliser la sécurité des dialogues, tandis que les conversations qui recherchent simplement des informations de numéro de partie peuvent ne pas nécessiter de sécurité de dialogue.

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. Étant donné que 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. Toutefois, la sécurité du transport ne fournit pas de chiffrement de bout en bout et ne fournit pas d’authentification pour les conversations individuelles.

Maintenir la sécurité

La maintenance de la sécurité pour les applications Service Broker se compose de deux tâches principales : l’audit de la configuration de l’application et le remplacement des certificats que l’application utilise.

Auditez régulièrement l’application pour déterminer que la configuration de sécurité n’est pas modifiée et que la configuration de sécurité répond aux besoins métier 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 utiliser des certificats. Un certificat présente une durée spécifiée pendant laquelle il est valide : Le certificat n’est pas valide avant ce début ou après l’expiration de cette heure. Service Broker n’utilise pas de certificats qui ne sont pas valides actuellement. En outre, SQL Server inclut l’option ACTIVE FOR BEGIN_DIALOG permettant de rendre un certificat disponible pour Service Broker. Pour mettre à jour des certificats, créez ou chargez de nouveaux certificats avec l'option active pour le début de la boîte de dialogue définie sur OFF. Une fois tous les certificats chargés, modifiez les certificats actuels dans toutes les bases de données pour rendre les certificats indisponibles pour Service Broker, puis modifiez les nouveaux certificats en définissant l’option ACTIVE FOR BEGIN_DIALOG afin que ces certificats soient disponibles pour Service Broker.

Pour plus d’informations sur les certificats, consultez Certificats et Service Broker et CREATE CERTIFICATE.