Skip to content

Commit

Permalink
Merge pull request Azure#10 from beltr0n/bertong-extract-identity
Browse files Browse the repository at this point in the history
Bertong extract identity
  • Loading branch information
lsundaralingam committed Jan 22, 2021
2 parents f661bab + bbda113 commit 70f4beb
Show file tree
Hide file tree
Showing 10 changed files with 184 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@


class ChatClientSamples(object):
from azure.communication.administration import CommunicationIdentityClient
from azure.communication.identity import CommunicationIdentityClient
connection_string = os.environ.get("AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING", None)
if not connection_string:
raise ValueError("Set AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING env before run this sample.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@


class ChatClientSamplesAsync(object):
from azure.communication.administration import CommunicationIdentityClient
from azure.communication.identity import CommunicationIdentityClient
connection_string = os.environ.get("AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING", None)
if not connection_string:
raise ValueError("Set AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING env before run this sample.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@


class ChatThreadClientSamples(object):
from azure.communication.administration import CommunicationIdentityClient
from azure.communication.identity import CommunicationIdentityClient
connection_string = os.environ.get("AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING", None)
if not connection_string:
raise ValueError("Set AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING env before run this sample.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@


class ChatThreadClientSamplesAsync(object):
from azure.communication.administration import CommunicationIdentityClient
from azure.communication.identity import CommunicationIdentityClient
connection_string = os.environ.get("AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING", None)
if not connection_string:
raise ValueError("Set AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING env before run this sample.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from devtools_testutils import AzureTestCase
from msrest.serialization import TZ_UTC

from azure.communication.administration import CommunicationIdentityClient
from azure.communication.identity import CommunicationIdentityClient
from azure.communication.chat import (
ChatClient,
CommunicationTokenCredential,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from datetime import datetime
from msrest.serialization import TZ_UTC

from azure.communication.administration import CommunicationIdentityClient
from azure.communication.identity import CommunicationIdentityClient
from azure.communication.chat.aio import (
ChatClient,
CommunicationTokenCredential,
Expand All @@ -18,7 +18,7 @@
from azure.communication.chat import (
ChatThreadMember
)
from azure.communication.administration._shared.utils import parse_connection_str
from azure.communication.identity._shared.utils import parse_connection_str
from azure_devtools.scenario_tests import RecordingProcessor
from helper import URIIdentityReplacer
from chat_e2e_helper import ChatURIReplacer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from devtools_testutils import AzureTestCase
from msrest.serialization import TZ_UTC

from azure.communication.administration import CommunicationIdentityClient
from azure.communication.identity import CommunicationIdentityClient
from azure.communication.chat import (
ChatClient,
CommunicationTokenCredential,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from datetime import datetime
from msrest.serialization import TZ_UTC

from azure.communication.administration import CommunicationIdentityClient
from azure.communication.identity import CommunicationIdentityClient
from azure.communication.chat.aio import (
ChatClient,
CommunicationTokenCredential,
Expand All @@ -19,7 +19,7 @@
ChatThreadMember,
ChatMessagePriority
)
from azure.communication.administration._shared.utils import parse_connection_str
from azure.communication.identity._shared.utils import parse_connection_str
from azure_devtools.scenario_tests import RecordingProcessor
from helper import URIIdentityReplacer
from chat_e2e_helper import ChatURIReplacer
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# coding: utf-8

# -------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for
# license information.
# --------------------------------------------------------------------------

"""
FILE: identity_sample.py
DESCRIPTION:
These samples demonstrate identity client samples.
///authenticating a client via a connection string
USAGE:
python identity_samples.py
"""
import os

class CommunicationIdentityClientSamples(object):

def __init__(self):
self.connection_string = os.getenv('AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING')
self.endpoint = os.getenv('AZURE_COMMUNICATION_SERVICE_ENDPOINT')
self.client_id = os.getenv('AZURE_CLIENT_ID')
self.client_secret = os.getenv('AZURE_CLIENT_SECRET')
self.tenant_id = os.getnenv('AZURE_TENANT_ID')

def issue_token(self):
from azure.communication.identity import CommunicationIdentityClient

if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None:
from azure.identity import DefaultAzureCredential
identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential())
else:
identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string)
user = identity_client.create_user()
tokenresponse = identity_client.issue_token(user, scopes=["chat"])
print(tokenresponse)

def revoke_tokens(self):
from azure.communication.identity import CommunicationIdentityClient

if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None:
from azure.identity import DefaultAzureCredential
identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential())
else:
identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string)
user = identity_client.create_user()
tokenresponse = identity_client.issue_token(user, scopes=["chat"])
identity_client.revoke_tokens(user)
print(tokenresponse)

def create_user(self):
from azure.communication.identity import CommunicationIdentityClient

if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None:
from azure.identity import DefaultAzureCredential
identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential())
else:
identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string)
user = identity_client.create_user()
print(user.identifier)

def delete_user(self):
from azure.communication.identity import CommunicationIdentityClient

if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None:
from azure.identity import DefaultAzureCredential
identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential())
else:
identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string)
user = identity_client.create_user()
identity_client.delete_user(user)

if __name__ == '__main__':
sample = CommunicationIdentityClientSamples()
sample.create_user()
sample.delete_user()
sample.issue_token()
sample.revoke_tokens()
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# coding: utf-8

# -------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for
# license information.
# --------------------------------------------------------------------------

"""
FILE: identity_sample_async.py
DESCRIPTION:
These samples demonstrate async identity client samples.
///authenticating a client via a connection string
USAGE:
python identity_samples_async.py
"""

import asyncio
import os


class CommunicationIdentityClientSamples(object):

def __init__(self):
self.connection_string = os.getenv('AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING')
self.endpoint = os.getenv('AZURE_COMMUNICATION_SERVICE_ENDPOINT')
self.client_id = os.getenv('AZURE_CLIENT_ID')
self.client_secret = os.getenv('AZURE_CLIENT_SECRET')
self.tenant_id = os.getnenv('AZURE_TENANT_ID')

async def issue_token(self):
from azure.communication.identity.aio import CommunicationIdentityClient
if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None:
from azure.identity import DefaultAzureCredential
identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential())
else:
identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string)

async with identity_client:
user = await identity_client.create_user()
print(user.identifier)
tokenresponse = await identity_client.issue_token(user, scopes=["chat"])
print(tokenresponse)

async def revoke_tokens(self):
from azure.communication.identity.aio import CommunicationIdentityClient
if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None:
from azure.identity import DefaultAzureCredential
identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential())
else:
identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string)

async with identity_client:
user = await identity_client.create_user()
tokenresponse = await identity_client.issue_token(user, scopes=["chat"])
await identity_client.revoke_tokens(user)
print(tokenresponse)

async def create_user(self):
from azure.communication.identity.aio import CommunicationIdentityClient
if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None:
from azure.identity import DefaultAzureCredential
identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential())
else:
identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string)

async with identity_client:
user = await identity_client.create_user()
print(user.identifier)

async def delete_user(self):
from azure.communication.identity.aio import CommunicationIdentityClient
if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None:
from azure.identity import DefaultAzureCredential
identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential())
else:
identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string)

async with identity_client:
user = await identity_client.create_user()
await identity_client.delete_user(user)

async def main():
sample = CommunicationIdentityClientSamples()
await sample.create_user()
await sample.delete_user()
await sample.issue_token()
await sample.revoke_tokens()

if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(main())

0 comments on commit 70f4beb

Please sign in to comment.