다음을 통해 공유


Python용 Azure Communication Identity Package 클라이언트 라이브러리 - 버전 1.4.0

Azure Communication Identity 클라이언트 패키지는 Azure Communication Service 제품을 사용하는 방법을 열기 위한 기본 사항을 설정하는 데 사용됩니다. 이 패키지는 채팅, 통화, sms와 같은 다른 클라이언트 패키지에서 사용할 ID 사용자 토큰을 만드는 데 도움이 됩니다.

소스 코드 | 패키지(Pypi) | 패키지(Conda) | API 참조 설명서 | 제품 설명서

고지 사항

Python 2.7에 대한 Azure SDK Python 패키지 지원은 2022년 1월 1일에 종료되었습니다. 자세한 내용과 질문은 을 참조하세요. https://github.com/Azure/azure-sdk-for-python/issues/20691

시작

필수 구성 요소

  • 이 패키지를 사용하려면 Python 3.7 이상이 필요합니다.
  • Azure 구독이 있어야 합니다.
  • 배포된 Communication Services 리소스. Azure Portal 또는 Azure PowerShell 사용하여 설정할 수 있습니다.

패키지 설치

pip를 사용하여 Python용 Azure Communication Identity 클라이언트 라이브러리를 설치합니다.

pip install azure-communication-identity

주요 개념

CommunicationIdentityClient

CommunicationIdentityClient는 다음에 대한 작업을 제공합니다.

  • Azure Communication Services 사용할 ID를 만들거나 삭제합니다. 이러한 ID는 Azure Communication 제품을 사용하는 데 사용할 수 있으며 토큰 범위를 통해 제한된 기능을 갖도록 범위를 지정할 수 있습니다.

  • 범위가 지정된 사용자 액세스 토큰을 만들거나 해지하여 채팅, 통화, sms와 같은 서비스에 액세스합니다. 토큰은 유효한 Azure Communication ID에 대해 발급되며 언제든지 해지할 수 있습니다.

ID 클라이언트 초기화

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

예제

다음 섹션에서는 다음을 포함하여 가장 일반적인 Azure Communication Services 작업을 다루는 몇 가지 코드 조각을 제공합니다.

새 사용자 만들기

메서드를 create_user 사용하여 새 사용자를 만듭니다.

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

사용자에 대한 액세스 토큰 발급 또는 새로 고침

메서드를 get_token 사용하여 사용자에 대한 범위가 지정된 액세스 토큰을 발급하거나 새로 고칩니다.
사용자 개체를 매개 변수 및 목록으로 전달합니다 CommunicationTokenScope. 범위 옵션은 다음과 같습니다.

  • CHAT (채팅 API에 대한 모든 액세스에 사용)
  • VOIP (호출 API에 대한 전체 액세스에 사용)
  • CHAT_JOIN (채팅 API에 액세스하지만 채팅 스레드를 만들거나 삭제하거나 업데이트할 수 있는 권한 없음)
  • CHAT_JOIN_LIMITED (참가자를 추가하거나 제거할 수 없는 더 제한된 버전의 CHAT_JOIN)
  • VOIP_JOIN (호출 API에 액세스하지만 새 호출을 시작할 수 있는 권한 없음)
tokenresponse = identity_client.get_token(user, scopes=[CommunicationTokenScope.CHAT])
print("Token issued with value: " + tokenresponse.token)

사용자에 대한 사용자 지정 만료를 사용하여 액세스 토큰 발급 또는 새로 고침

토큰의 만료 시간을 지정할 수 있습니다. 토큰은 1시간 또는 24시간 내에 만료되도록 구성할 수 있습니다. 기본 만료 시간은 24시간입니다.

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)

단일 요청에서 사용자 및 토큰 만들기

편의를 위해 를 사용하여 create_user_and_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)

단일 요청에서 사용자 지정 만료가 있는 사용자 및 토큰 만들기

토큰의 만료 시간을 지정할 수 있습니다. 토큰은 1시간 또는 24시간 내에 만료되도록 구성할 수 있습니다. 기본 만료 시간은 24시간입니다.

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)

사용자의 액세스 토큰 해지

를 사용하여 revoke_tokens 사용자의 모든 액세스 토큰을 해지합니다. 사용자 개체를 매개 변수로 전달

identity_client.revoke_tokens(user)

사용자를 삭제하는 중

메서드를 delete_user 사용하여 사용자를 삭제합니다. 사용자 개체를 매개 변수로 전달

identity_client.delete_user(user)

통신 ID 액세스 토큰에 대한 Teams 사용자의 Azure AD 액세스 토큰 교환

메서드를 get_token_for_teams_user 사용하여 Teams 사용자의 Azure AD 액세스 토큰을 새 통신 ID 액세스 토큰으로 교환합니다.

identity_client.get_token_for_teams_user(aad_token, client_id, user_object_id)

문제 해결

Azure Communication Service ID 클라이언트는 Azure Core에 정의된 예외를 발생합니다.

다음 단계

추가 샘플 코드

이 라이브러리를 사용하여 ID 및 토큰을 관리하는 방법에 대한 자세한 예제는 샘플 디렉터리를 참조하세요.

피드백 제공

버그가 발생하거나 제안이 있는 경우 프로젝트의 문제 섹션에 문제를 제출하세요.

참여

이 프로젝트에 대한 기여와 제안을 환영합니다. 대부분의 경우 기여하려면 권한을 부여하며 실제로 기여를 사용할 권한을 당사에 부여한다고 선언하는 CLA(기여자 라이선스 계약)에 동의해야 합니다. 자세한 내용은 https://cla.microsoft.com 을 참조하세요.

끌어오기 요청을 제출하면 CLA-bot은 CLA를 제공하고 PR을 적절하게 데코레이팅해야 하는지 여부를 자동으로 결정합니다(예: 레이블, 설명). 봇에서 제공하는 지침을 따르기만 하면 됩니다. 이 작업은 CLA를 사용하여 모든 리포지토리에서 한 번만 수행하면 됩니다.

이 프로젝트에는 Microsoft Open Source Code of Conduct(Microsoft 오픈 소스 준수 사항)가 적용됩니다. 자세한 내용은 Code of Conduct FAQ(규정 FAQ)를 참조하세요. 또는 추가 질문이나 의견은 opencode@microsoft.com으로 문의하세요.