Autoriser l’accès avec Microsoft Entra ID pour Azure SignalR Service

Azure SignalR Service prend en charge l’ID Microsoft Entra pour autoriser les demandes à ses ressources. Avec l’ID Microsoft Entra, vous pouvez utiliser le contrôle d’accès en fonction du rôle (RBAC) pour accorder des autorisations à un principal de sécurité. Un principal de sécurité est un groupe d’utilisateurs/ressources, une application ou un principal de service, tel que des identités affectées par le système et des identités affectées par l’utilisateur.

Microsoft Entra ID authentifie le principal de sécurité et retourne un jeton OAuth 2.0. Le jeton est ensuite utilisé pour autoriser une demande sur la ressource Azure SignalR Service.

L’autorisation des demandes sur Azure SignalR Service à l’aide de l’ID Microsoft Entra offre une sécurité et une facilité d’utilisation supérieures par rapport à l’autorisation de clé d’accès. Nous vous recommandons vivement d’utiliser l’ID Microsoft Entra pour autoriser chaque fois que possible, car il garantit l’accès avec les privilèges minimum requis.

Important

La désactivation de l’authentification locale peut avoir les conséquences suivantes :

  • L’ensemble actuel de clés d’accès est définitivement supprimé.
  • Les jetons signés avec l’ensemble actuel de clés d’accès deviennent indisponibles.

Vue d’ensemble de Microsoft Entra ID

Lorsqu’un principal de sécurité tente d’accéder à une ressource Azure SignalR Service, la demande doit être autorisée. L’utilisation de l’ID Microsoft Entra pour accéder à une ressource nécessite deux étapes :

  1. Microsoft Entra ID authentifie le principal de sécurité, puis retourne un jeton OAuth 2.0.
  2. Le jeton est transmis dans le cadre d’une demande à la ressource Azure SignalR Service pour autoriser la demande.

Authentification côté client avec l’ID Microsoft Entra

Lorsque vous utilisez une clé d’accès, la clé est partagée entre votre serveur d’applications (ou application de fonction) et la ressource Azure SignalR Service. Azure SignalR Service authentifie la demande de connexion client à l’aide de la clé partagée.

Lorsque vous utilisez l’ID Microsoft Entra, il n’existe aucune clé partagée. Au lieu de cela, Azure SignalR Service utilise une clé d’accès temporaire pour les jetons de signature utilisés dans les connexions clientes. Le flux de travail contient quatre étapes :

  1. Le principal de sécurité nécessite un jeton OAuth 2.0 de Microsoft Entra ID pour s’authentifier.
  2. Le principal de sécurité appelle l’API d’authentification SignalR pour obtenir une clé d’accès temporaire.
  3. Le principal de sécurité signe un jeton client avec la clé d’accès temporaire pour les connexions clientes lors de la négociation.
  4. Le client utilise le jeton client pour se connecter aux ressources Azure SignalR Service.

La clé d’accès temporaire expire dans 90 minutes. Nous vous recommandons d’en obtenir un nouveau et de faire pivoter l’ancien une fois par heure.

Le flux de travail est intégré au Kit de développement logiciel (SDK) Azure SignalR Service pour les serveurs d’applications.

Attribuer des rôles Azure pour les droits d’accès

Microsoft Entra ID autorise les droits d’accès aux ressources sécurisées via Azure RBAC. Azure SignalR Service définit un ensemble de rôles intégrés Azure qui englobent des ensembles d’autorisations courants pour accéder aux ressources Azure SignalR Service. Vous pouvez également définir des rôles personnalisés pour l’accès aux ressources Azure SignalR Service.

Étendue des ressources

Vous devrez peut-être déterminer l’étendue de l’accès que le principal de sécurité doit avoir avant d’affecter un rôle RBAC Azure à un principal de sécurité. Nous vous recommandons d’accorder uniquement l’étendue la plus étroite possible. Les rôles RBAC Azure définis au niveau d’une étendue plus large sont hérités par les ressources qui sont sous eux.

Vous pouvez étendre l’accès aux ressources Azure SignalR Service aux niveaux suivants, en commençant par l’étendue la plus étroite.

Étendue Description
Ressource individuelle S’applique uniquement à la ressource cible.
Resource group S’applique à toutes les ressources d’un groupe de ressources.
Abonnement S’applique à toutes les ressources d'un abonnement.
Groupe d’administration S’applique à toutes les ressources des abonnements inclus dans un groupe d’administration.

Rôles intégrés Azure pour les ressources Azure SignalR Service

Rôle Description Cas d’utilisation
Serveur d’applications SignalR Accès à l’API de création de connexion WebSocket et aux API d’authentification. Le plus couramment utilisé pour un serveur d’applications.
Propriétaire SignalR Service Accès complet à toutes les API de plan de données, y compris les API REST, l’API de création de connexion WebSocket et les API d’authentification. Utilisez le mode serverless pour l’autorisation avec l’ID Microsoft Entra, car il nécessite des autorisations d’API REST et des autorisations d’API d’authentification.
Propriétaire de l’API REST SignalR Accès complet aux API REST de plan de données. Souvent utilisé pour écrire un outil qui gère les connexions et les groupes, mais n’effectue pas de connexions ni d’API d’authentification d’appel.
Lecteur de l’API REST SignalR Accès en lecture seule aux API REST de plan de données. Couramment utilisé pour écrire un outil de surveillance qui appelle uniquement les API REST du plan de données Azure SignalR Service en lecture seule.

Étapes suivantes