Bibliothèque cliente du package Azure Communication Identity pour Python - version 1.4.0

Le package client Azure Communication Identity est destiné à être utilisé pour configurer les principes de base pour ouvrir un moyen d’utiliser les offres Azure Communication Service. Ce package permet de créer des jetons d’utilisateur d’identité à utiliser par d’autres packages clients tels que la conversation, l’appel, les sms.

| Code sourcePackage (Pypi) | Package (Conda) | Documentation de référence sur les | APIDocumentation produit

Clause d’exclusion de responsabilité

La prise en charge des packages Python du SDK Azure pour Python 2.7 a pris fin le 1er janvier 2022. Pour obtenir plus d’informations et poser des questions, reportez-vous à https://github.com/Azure/azure-sdk-for-python/issues/20691

Prise en main

Prérequis

  • Python 3.7 ou version ultérieure est requis pour utiliser ce package.
  • Vous devez disposer d’un abonnement Azure
  • Une ressource Communication Services déployée. Vous pouvez utiliser le portail Azure ou le Azure PowerShell pour le configurer.

Installer le package

Installez la bibliothèque cliente Azure Communication Identity pour Python avec pip :

pip install azure-communication-identity

Concepts clés

CommunicationIdentityClient

CommunicationIdentityClient propose des opérations pour :

  • Créer/supprimer des identités à utiliser dans Azure Communication Services. Ces identités peuvent être utilisées pour utiliser les offres Azure Communication et peuvent être limitées à des capacités limitées via des étendues de jeton.

  • Créez/révoquez des jetons d’accès utilisateur délimités pour accéder à des services tels que la conversation, les appels, les sms. Les jetons sont émis pour une identité Azure Communication valide et peuvent être révoqués à tout moment.

Initialisation d’Identity Client

# You can find your endpoint and access token from your resource in the Azure Portal
import os
from azure.communication.identity import CommunicationIdentityClient
from azure.identity import DefaultAzureCredential

connection_str = "endpoint=ENDPOINT;accessKey=KEY"
endpoint = "https://<RESOURCE_NAME>.communication.azure.com"

# To use Azure Active Directory Authentication (DefaultAzureCredential) make sure to have
# AZURE_TENANT_ID, AZURE_CLIENT_ID and AZURE_CLIENT_SECRET as env variables.
identity_client_managed_identity = CommunicationIdentityClient(endpoint, DefaultAzureCredential())

#You can also authenticate using your connection string
identity_client = CommunicationIdentityClient.from_connection_string(connection_str)

Exemples

La section suivante fournit plusieurs extraits de code couvrant certaines des tâches Azure Communication Services les plus courantes, notamment :

Création d’un utilisateur

Utilisez la create_user méthode pour créer un utilisateur.

user = identity_client.create_user()
print("User created with id:" + user.properties['id'])

Émission ou actualisation d’un jeton d’accès pour un utilisateur

Utilisez la get_token méthode pour émettre ou actualiser un jeton d’accès délimité pour l’utilisateur.
Transmettez l’objet utilisateur en tant que paramètre et une liste de CommunicationTokenScope. Les options d’étendue sont les suivantes :

  • CHAT (Utilisez-le pour un accès complet aux API de conversation)
  • VOIP (Utilisez cette option pour un accès complet aux API d’appel)
  • CHAT_JOIN (Accès aux API de conversation, mais sans l’autorisation de créer, supprimer ou mettre à jour des threads de conversation)
  • CHAT_JOIN_LIMITED (Version plus limitée de CHAT_JOIN qui ne permet pas d’ajouter ou de supprimer des participants)
  • VOIP_JOIN (Accès aux API d’appel, mais sans l’autorisation de démarrer de nouveaux appels)
tokenresponse = identity_client.get_token(user, scopes=[CommunicationTokenScope.CHAT])
print("Token issued with value: " + tokenresponse.token)

Émission ou actualisation d’un jeton d’accès avec expiration personnalisée pour un utilisateur

Vous pouvez spécifier l’heure d’expiration du jeton. Le jeton peut être configuré pour expirer en à peine une heure ou 24 heures. Le délai d’expiration par défaut est de 24 heures.

token_expires_in = timedelta(hours=1)
tokenresponse = identity_client.get_token(user, scopes=[CommunicationTokenScope.CHAT], token_expires_in=token_expires_in)
print("Token issued with value: " + tokenresponse.token)

Création d’un utilisateur et d’un jeton dans une requête unique

Pour plus de commodité, utilisez create_user_and_token pour créer un utilisateur et émettre un jeton avec un appel de fonction. Cela se traduit par une requête web unique au lieu de créer d’abord un utilisateur, puis d’émettre un jeton.

user, tokenresponse = identity_client.create_user_and_token(scopes=[CommunicationTokenScope.CHAT])
print("User id:" + user.properties['id'])
print("Token issued with value: " + tokenresponse.token)

Création d’un utilisateur et d’un jeton avec expiration personnalisée dans une seule requête

Vous pouvez spécifier l’heure d’expiration du jeton. Le jeton peut être configuré pour expirer en à peine une heure ou 24 heures. Le délai d’expiration par défaut est de 24 heures.

token_expires_in = timedelta(hours=1)
user, tokenresponse = identity_client.create_user_and_token(scopes=[CommunicationTokenScope.CHAT], token_expires_in=token_expires_in)
print("User id:" + user.properties['id'])
print("Token issued with value: " + tokenresponse.token)

Révocation des jetons d’accès d’un utilisateur

Permet revoke_tokens de révoquer tous les jetons d’accès d’un utilisateur. Passer l’objet utilisateur en tant que paramètre

identity_client.revoke_tokens(user)

Suppression d'un utilisateur

Utilisez la delete_user méthode pour supprimer un utilisateur. Passer l’objet utilisateur en tant que paramètre

identity_client.delete_user(user)

Échange d’un jeton d’accès Azure AD d’un utilisateur Teams pour un jeton d’accès d’identité de communication

Utilisez la get_token_for_teams_user méthode pour échanger un jeton d’accès Azure AD d’un utilisateur Teams contre un nouveau jeton d’accès Communication Identity.

identity_client.get_token_for_teams_user(aad_token, client_id, user_object_id)

Dépannage

Le client Azure Communication Service Identity déclenche des exceptions définies dans Azure Core.

Étapes suivantes

Autres exemples de code

Consultez le répertoire d’exemples pour obtenir des exemples détaillés sur l’utilisation de cette bibliothèque pour gérer les identités et les jetons.

Fournir des commentaires

Si vous rencontrez des bogues ou si vous avez des suggestions, veuillez déposer un problème dans la section Problèmes du projet

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 https://cla.microsoft.com.

Quand vous envoyez une demande de tirage (pull request), un bot CLA détermine automatiquement si vous devez fournir un contrat CLA et agrémenter la demande de tirage de façon appropriée (par exemple, avec une étiquette ou un commentaire). Suivez simplement les instructions fournies par le bot. Vous ne devez effectuer cette opération qu’une seule fois sur tous les dépôts utilisant notre contrat CLA.

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.