Modèle d’identité

Azure Communication Services est un service indépendant de l’identité, qui offre plusieurs avantages :

  • Réutilisez les identités existantes à partir de votre système de gestion des identités et mappez-les simplement avec des identités Azure Communication Services.
  • Fournit une flexibilité d’intégration en tant que modèle indépendant de l’identité fonctionne bien avec votre système d’identité existant.
  • Vous pouvez conserver les données de votre utilisateur, telles que leur nom, privé, car vous n’avez pas besoin de le dupliquer dans Azure Communication Services.

Le modèle d’identité Azure Communication Services fonctionne avec deux concepts clés.

Identité /mappage de l’utilisateur

Identifie de façon unique un utilisateur par le biais d’un identificateur d’utilisateur, généré par Azure Communication Services lors de la création d’un utilisateur. Les identificateurs externes, comme les numéros de téléphone, les utilisateurs, les appareils, les applications et les GUID, ne peuvent pas être utilisés pour l’identité dans Azure Communication Services. Vous pouvez créer gratuitement des identités utilisateur Azure Communication Service. Les frais sont facturés uniquement lorsque l’utilisateur consomme des modalités de communication telles qu’une conversation ou un appel. Votre identité d’utilisateur peut être mappée à l’identité utilisateur Azure Communication Services dans les configurations 1 :1, 1 :N, N :1, N :N. Un utilisateur peut participer simultanément à plusieurs sessions de communication à l’aide de plusieurs appareils. Le mappage entre l’identité utilisateur Azure Communication Services et l’identité d’utilisateur privée du client est conservé et géré par le client. Par exemple, les clients peuvent ajouter une CommunicationServicesId colonne dans leur table utilisateur pour stocker l’identité Azure Communication Services associée.

Jetons d’accès

Une fois qu’une identité d’utilisateur est créée, un utilisateur dispose de la possibilité de participer aux communications à l’aide de conversations ou d’appels, à l’aide de jetons d’accès. Par exemple, seul un utilisateur disposant d’un jeton de conversation peut participer à la conversation et à l’utilisateur avec un jeton VoIP peut participer à un appel VoIP. Un utilisateur peut avoir plusieurs jetons simultanément. Azure Communication Services prend en charge plusieurs types de jetons pour prendre en compte les utilisateurs qui ont besoin d’un accès complet et d’un accès limité. Les jetons d’accès ont les propriétés suivantes.

Propriété Description
Identité Identifie de façon unique un jeton
Expiration Un jeton d’accès est valide pendant une période comprise entre 1 et 24 heures. Une fois expiré, le jeton d’accès est invalidé et ne peut pas être utilisé pour accéder à une primitive. Pour générer un jeton avec une validité personnalisée, spécifiez la période de validité souhaitée lors de la génération du jeton. Si aucune validité personnalisée n’est spécifiée, le jeton est valide pendant 24 heures. Nous vous recommandons d’utiliser des jetons de durée de vie courte pour les réunions ponctuelles et des jetons de durée de vie plus longs pour les agents utilisant l’application pendant des périodes plus longues
Étendue Le paramètre d’étendue définit un ensemble sansmpty de primitives (Chat/VoIP) qui peuvent être utilisées.

Un jeton d’accès est un jeton web JSON (JWT) et dispose d’une protection d’intégrité. Autrement dit, ses revendications ne peuvent pas être changées une fois qu’il a été émis. Ainsi, une modification manuelle de propriétés comme l’identité, l’expiration ou les étendues va invalider le jeton d’accès. Si des primitives sont utilisées avec des jetons non valides, l’accès aux primitives est refusé. Azure Communication Services prend en charge les étendues suivantes pour les jetons d’accès.

Étendues de jeton de conversation

Trois types d’étendues de jeton de conversation sont pris en charge. Les autorisations pour chaque jeton sont décrites ci-dessous.

  • chat
  • chat.join
  • chat.join.limited
Fonctionnalité / Étendue du jeton chat chat.join chat.join.limited
Créer un fil de conversation O N N
Mettre à jour le thread de conversation avec l’ID O N N
Supprimer un thread de conversation avec l’ID O N N
Ajouter un participant à un thread de conversation O Y N
Supprimer un participant d’un fil de conversation O Y N
Obtenir des threads de conversation O O O
Obtenir un thread de conversation avec l’ID O O O
Obtenir ReadReceipt O O O
Créer ReadReceipt O O O
Créer un message pour le thread de conversation avec l’ID O O O
Obtenir un message avec l’ID de message O O O
Mettre à jour votre propre message avec l’ID de message O O O
Supprimer votre propre message avec l’ID de message O O O
Envoyer un indicateur de saisie O O O
Obtenir le participant pour l’ID de thread O O O

Étendues de jeton VoIP

Deux types d’étendues de jeton VoIP sont pris en charge. Les autorisations pour chaque jeton sont décrites ci-dessous.

  • Voip
  • voip.join
Fonctionnalité / Étendue du jeton Voip voip.join
Démarrer un appel VoIP O N
Démarrez un appel VoIP dans les salles virtuelles lorsque l’utilisateur est déjà invité à la salle O O
Rejoindre un appel VoIP InProgress O O
Rejoindre un appel VoIP InProgress dans les salles virtuelles, lorsque l’utilisateur est déjà invité à la salle O O
Toutes les autres opérations in-call telles que le son/lemutage, le partage d’écran, etc. O O
Toutes les autres opérations in-call telles que le son/le son, le partage d’écran, etc. dans les salles virtuelles Déterminé par le rôle d’utilisateur Déterminé par le rôle d’utilisateur

Révoquer ou mettre à jour le jeton d’accès

  • La bibliothèque d’identités Azure Communication Services peut être utilisée pour révoquer un jeton d’accès avant son délai d’expiration. La révocation du jeton n’est pas immédiate. La propagation peut prendre jusqu’à 15 minutes.
  • La suppression d’une identité, d’une ressource ou d’un abonnement entraîne la révocation de tous les jetons d’accès.
  • Si vous voulez retirer à un utilisateur la possibilité d’accéder à des fonctionnalités spécifiques, révoquez tous les jetons d’accès. Émettez ensuite un nouveau jeton d’accès avec un ensemble d’étendues plus limité.
  • La rotation des clés d’accès révoque tous les jetons d’accès actifs créés à l’aide d’une ancienne clé d’accès. Dans ce cas, toutes les identités perdent l’accès à Azure Communication Services et doivent émettre de nouveaux jetons d’accès.

À propos de l’installation

  • Nous vous recommandons d’émettre les jetons d’accès dans votre service côté serveur, et non dans l’application du client. Le raisonnement est que l’émission nécessite une clé d’accès ou l’authentification Microsoft Entra. Pour des raisons de sécurité, le partage des clés d’accès avec l’application du client n’est pas recommandé.
  • L’application cliente doit utiliser un point de terminaison de service approuvé qui peut authentifier les clients. Le point de terminaison doit émettre des jetons d’accès en leur nom. Pour plus d’informations, consultez Architecture client et serveur.
  • Si vous mettez en cache les jetons d’accès dans un magasin de stockage, nous vous recommandons d’utiliser le chiffrement. Un jeton d’accès est une donnée sensible. Il peut être utilisé pour une activité malveillante s’il n’est pas protégé. Une personne disposant d’un jeton d’accès peut démarrer le SDK et accéder à l’API. L’API accessible est limitée seulement en fonction des étendues dont dispose le jeton d’accès.
  • Nous vous recommandons d’émettre des jetons d’accès avec seulement les étendues qui sont nécessaires.

Étapes suivantes