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 작업을 다루는 몇 가지 코드 조각을 제공합니다.
- 새 사용자 만들기
- 사용자에 대한 액세스 토큰 발급 또는 새로 고침
- 단일 요청에서 사용자 및 토큰 만들기
- 사용자의 액세스 토큰 해지
- 사용자를 삭제하는 중
- 통신 ID 액세스 토큰에 대한 Teams 사용자의 Azure AD 액세스 토큰 교환
새 사용자 만들기
메서드를 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으로 문의하세요.
Azure SDK for Python