Biblioteca de clientes do Pacote de Identidade de Comunicação do Azure para Python – versão 1.4.0

O pacote de cliente da Identidade de Comunicação do Azure destina-se a ser usado para configurar os conceitos básicos para abrir uma maneira de usar as ofertas do Serviço de Comunicação do Azure. Esse pacote ajuda a criar tokens de usuário de identidade a serem usados por outros pacotes de cliente, como chat, chamada, sms.

Código-fonte | Pacote (Pypi) | Pacote (Conda) | Documentação | de referência da APIDocumentação do produto

Aviso de isenção de responsabilidade

O suporte a pacotes python do SDK do Azure para Python 2.7 terminou em 01 de janeiro de 2022. Para obter mais informações e tirar dúvidas, consulte https://github.com/Azure/azure-sdk-for-python/issues/20691

Introdução

Pré-requisitos

Instalar o pacote

Instale a biblioteca de clientes da Identidade de Comunicação do Azure para Python com pip:

pip install azure-communication-identity

Principais conceitos

CommunicationIdentityClient

CommunicationIdentityClient fornece operações para:

  • Crie/exclua identidades a serem usadas no Serviços de Comunicação do Azure. Essas identidades podem ser usadas para usar as ofertas de Comunicação do Azure e podem ter escopo para ter capacidades limitadas por meio de escopos de token.

  • Crie/revogue tokens de acesso de usuário com escopo para acessar serviços como chat, chamada, sms. Os tokens são emitidos para uma identidade válida de Comunicação do Azure e podem ser revogados a qualquer momento.

Inicializando o Cliente de Identidade

# 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)

Exemplos

A seção a seguir fornece vários snippets de código que abrangem algumas das tarefas de Serviços de Comunicação do Azure mais comuns, incluindo:

Criando um novo usuário

Use o create_user método para criar um novo usuário.

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

Emissão ou atualização de um token de acesso para um usuário

Use o get_token método para emitir ou atualizar um token de acesso com escopo para o usuário.
Passe o objeto de usuário como um parâmetro e uma lista de CommunicationTokenScope. As opções de escopo são:

  • CHAT (Use isso para acesso completo às APIs de Chat)
  • VOIP (Use isso para acesso completo às APIs de Chamada)
  • CHAT_JOIN (Acesso às APIs de Chat, mas sem autorização para criar, excluir ou atualizar threads de chat)
  • CHAT_JOIN_LIMITED (Uma versão mais limitada do CHAT_JOIN que não permite adicionar ou remover participantes)
  • VOIP_JOIN (Acesso a APIs de chamada, mas sem autorização para iniciar novas chamadas)
tokenresponse = identity_client.get_token(user, scopes=[CommunicationTokenScope.CHAT])
print("Token issued with value: " + tokenresponse.token)

Emissão ou atualização de um token de acesso com expiração personalizada para um usuário

Você pode especificar o tempo de expiração para o token. O token pode ser configurado para expirar em apenas uma hora ou até 24 horas. O tempo de expiração padrão é de 24 horas.

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)

Criando um usuário e um token em uma única solicitação

Para sua conveniência, use create_user_and_token para criar um novo usuário e emitir um token com uma chamada de função. Isso se traduz em uma única solicitação da Web em vez de criar um usuário primeiro e, em seguida, emitir um token.

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

Criando um usuário e um token com expiração personalizada em uma única solicitação

Você pode especificar o tempo de expiração para o token. O token pode ser configurado para expirar em apenas uma hora ou até 24 horas. O tempo de expiração padrão é de 24 horas.

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)

Revogando tokens de acesso de um usuário

Use revoke_tokens para revogar todos os tokens de acesso de um usuário. Passar o objeto de usuário como um parâmetro

identity_client.revoke_tokens(user)

Excluir um usuário

Use o delete_user método para excluir um usuário. Passar o objeto de usuário como um parâmetro

identity_client.delete_user(user)

Trocando Azure AD token de acesso de um usuário do Teams por um token de acesso da Identidade de Comunicação

Use o get_token_for_teams_user método para trocar um token de acesso Azure AD de um Usuário do Teams por um novo token de acesso da Identidade de Comunicação.

identity_client.get_token_for_teams_user(aad_token, client_id, user_object_id)

Solução de problemas

O cliente de Identidade do Serviço de Comunicação do Azure gerará exceções definidas no Azure Core.

Próximas etapas

Mais códigos de exemplo

Dê uma olhada no diretório de exemplos para obter exemplos detalhados de como usar essa biblioteca para gerenciar identidades e tokens.

Forneça comentários

Se você encontrar bugs ou tiver sugestões, registre um problema na seção Problemas do projeto

Contribuição

Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença do Colaborador) declarando que você tem o direito de nos conceder, e de fato concede, os direitos de usar sua contribuição. Para obter detalhes, visite https://cla.microsoft.com.

Quando você envia uma solicitação de pull, um bot do CLA determina automaticamente se você precisa fornecer um CLA e preencher a PR corretamente (por exemplo, rótulo, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios que usam nosso CLA.

Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para obter mais informações, confira as Perguntas frequentes sobre o Código de Conduta ou contate opencode@microsoft.com para enviar outras perguntas ou comentários.