Bibliothèque de client Azure Communication Common pour .NET - version 1.2.1
Ce package contient du code commun pour les bibliothèques Azure Communication Service.
| Code sourcePackage (NuGet) | Documentation produit
Prise en main
Installer le package
Installez la bibliothèque de client Azure Communication Common pour .NET avec NuGet.
dotnet add package Azure.Communication.Common
Prérequis
Vous avez besoin d’un abonnement Azure et d’une ressource Communication Service pour utiliser ce package.
Pour créer un service communication, vous pouvez utiliser le portail Azure, le Azure PowerShell ou la bibliothèque de client de gestion .NET.
Authentifier le client
Ce module ne contient pas de client, mais des bibliothèques qui aident d’autres clients Azure Communication à s’authentifier.
Concepts clés
CommunicationTokenCredential
L’objet CommunicationTokenCredential
est utilisé pour authentifier un utilisateur auprès de Communication Services, par exemple chat ou appel. Il fournit éventuellement un mécanisme d’actualisation automatique pour garantir un état d’authentification stable en continu pendant les communications.
Selon votre scénario, vous souhaiterez peut-être initialiser avec CommunicationTokenCredential
:
- un jeton statique (adapté aux clients de courte durée utilisés pour envoyer des messages de conversation ponctuels, par exemple) ou
- fonction de rappel qui garantit un état d’authentification continue (idéal, par exemple, pour les sessions d’appel longues).
Les jetons fournis au CommunicationTokenCredential
par le biais du constructeur ou du rappel de l’actualisation de jeton peuvent être obtenus à l’aide de la bibliothèque Azure Communication Identity.
Sécurité des threads
Nous garantissons que toutes les méthodes de instance client sont thread-safe et indépendantes les unes des autres (instructions). Cela garantit que la recommandation de réutilisation des instances clientes est toujours sécurisée, même entre les threads.
Concepts supplémentaires
Options | du client Accès à la réponse | Opérations | de longue duréeGestion des défaillances | Diagnostics | Moqueur | Durée de vie du client
Exemples
Créer des informations d’identification avec un jeton statique
Pour les clients de courte durée, l’actualisation du jeton lors de l’expiration n’est pas nécessaire et CommunicationTokenCredential
peut être instanciée avec un jeton statique.
string token = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_USER_TOKEN");
using var tokenCredential = new CommunicationTokenCredential(token);
Créer des informations d’identification avec un rappel
Pour les clients de longue durée, vous pouvez également créer un CommunicationTokenCredential
avec un rappel pour renouveler les jetons en cas d’expiration.
Ici, nous passons deux fonctions imaginées qui effectuent des demandes réseau pour récupérer des chaînes de jeton pour l’utilisateur Bob.
Si des rappels sont passés, lors des demandes (envoi d’un message de conversation), CommunicationTokenCredential
garantit qu’un jeton valide est acquis avant l’exécution de la demande.
Il est nécessaire que la FetchTokenForUserFromMyServer
méthode retourne un jeton valide (avec une date d’expiration définie à l’avenir) à tout moment.
Si vous le souhaitez, vous pouvez activer l’actualisation proactive des jetons où un nouveau jeton est acquis dès que le jeton précédent approche de l’expiration. À l’aide de cette méthode, vos demandes sont moins susceptibles d’être bloquées pour acquérir un nouveau jeton :
using var tokenCredential = new CommunicationTokenCredential(
new CommunicationTokenRefreshOptions(
refreshProactively: true, // Indicates if the token should be proactively refreshed in the background or only on-demand
tokenRefresher: cancellationToken => FetchTokenForUserFromMyServer("bob@contoso.com", cancellationToken))
{
AsyncTokenRefresher = cancellationToken => FetchTokenForUserFromMyServerAsync("bob@contoso.com", cancellationToken)
});
Si vous avez déjà un jeton, vous pouvez optimiser l’actualisation du jeton encore plus en transmettant ce jeton initial :
string initialToken = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_USER_TOKEN");
using var tokenCredential = new CommunicationTokenCredential(
new CommunicationTokenRefreshOptions(
refreshProactively: true, // Indicates if the token should be proactively refreshed in the background or only on-demand
tokenRefresher: cancellationToken => FetchTokenForUserFromMyServer("bob@contoso.com", cancellationToken))
{
AsyncTokenRefresher = cancellationToken => FetchTokenForUserFromMyServerAsync("bob@contoso.com", cancellationToken),
InitialToken = initialToken
});
Résolution des problèmes
Les échecs d’actualisation proactive se produisent dans un thread d’arrière-plan et pour éviter le blocage de votre application, les exceptions sont gérées en mode silencieux.
Tous les autres échecs se produisent lors de votre demande à l’aide d’autres clients, tels que la conversation, où vous pouvez intercepter l’exception à l’aide de RequestFailedException
.
Étapes suivantes
En savoir plus sur les jetons d’accès utilisateur communication
Contribution
Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez réellement, les droits d’utilisation de votre contribution. Pour plus d’informations, visitez cla.microsoft.com.
Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d’informations, consultez les Questions fréquentes (FAQ) sur le code de conduite ou envoyez vos questions ou vos commentaires à opencode@microsoft.com.
Azure SDK for .NET