The process of including the Azure Digital Twins Data Owner Role using the Azure Python SDK can be done by following these steps:
Here's some Python code that demonstrates the process:
from azure.identity import ClientSecretCredential
from azure.mgmt.digitaltwins import DigitalTwinsManagementClient
from azure.mgmt.resource import ResourceManagementClient
# Azure subscription ID
subscription_id = '<your-subscription-id>'
# Azure Digital Twins instance name
digital_twins_instance_name = '<your-digital-twins-instance-name>'
# Azure AD client ID and secret for the AAD application
client_id = '<your-client-id>'
client_secret = '<your-client-secret>'
# Azure tenant ID
tenant_id = '<your-tenant-id>'
# Create a client credential object
credentials = ClientSecretCredential(
tenant_id=tenant_id,
client_id=client_id,
client_secret=client_secret,
)
# Create a DigitalTwinsManagementClient object
digital_twins_client = DigitalTwinsManagementClient(
credentials=credentials,
subscription_id=subscription_id,
)
# Create a ResourceManagementClient object
resource_client = ResourceManagementClient(
credentials=credentials,
subscription_id=subscription_id,
)
# Create a service principal for the AAD application and assign the Digital Twins Data Owner role to it
sp = resource_client.service_principals.create_or_update(
'<your-service-principal-name>',
api_version='2019-05-01-preview',
parameters={
'account_enabled': True,
'app_id': client_id,
'password_credentials': [
{
'start_date': '2021-01-01T00:00:00Z',
'end_date': '2021-12-31T23:59:59Z',
'value': client_secret,
}
],
'role_assignments': [
{
'role_definition_id': '/providers/Microsoft.Authorization/roleDefinitions/2fecf2bf-8b1f-4ade-a71c-0e27037074fe',
'principal_id': '<your-service-principal-object-id>',
}
],
}
)
# Authenticate the AAD application and obtain an access token
access_token = credentials.get_token('https://digitaltwins.azure.net').token
# Create a Digital Twins instance and grant access to the service principal using the access token
digital_twin = digital_twins_client.digital_twins.create_or_update(
resource_group_name='<your-resource-group-name>',
digital_twins_instance_name=digital_twins_instance_name,
parameters={
'sku': {
'name': 'S1',
'capacity': 1,
},
'location': '<your-location>',
'identity': {
'type': 'SystemAssigned',
},
'access_policies': [
{
'object_id': '<your-service-principal-object-id>',
'tenant_id': tenant_id,
'permissions': [
'Microsoft.DigitalTwins/digitalTwinsInstances/read',
'Microsoft.DigitalTwins/digitalTwinsInstances/write',
],
},
],
},
kwargs={'headers': {'Authorization': 'Bearer ' + access_token}},
)
# Use the DigitalTwinsManagementClient object to perform operations on the Digital Twins instance
models = digital_twins_client.digital_twins.get_models(
resource_group_name='<your-resource-group-name>',
digital_twins_instance_name=digital_twins_instance_name,
kwargs={'headers': {'Authorization': 'Bearer ' + access_token}},
)
Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss
Asked: 2023-07-03 19:27:01 +0000
Seen: 9 times
Last updated: Jul 03 '23
How can I set up Gunicorn with a Django Project?
Looking for a Python Module that finds Tags for a Text describing its Content
Need a Function in Python to remove entries less than 2 digits from an Array
How can I convert a Document in Python?
How can I program a Loop in Python?
How can I enable Python Code Highlighting in Askbot?