Vytváření a správa přiřazení rolí ve službě Azure Digital Twins
Důležité
Byla vydána nová verze služby Azure Digital Twins. Vzhledem k rozšířeným funkcím nové služby byla původní služba Azure Digital Twins (popsaná v této sadě dokumentace) vyřazena.
Pokud chcete zobrazit dokumentaci k nové službě, navštivte aktivní dokumentaci ke službě Azure Digital Twins.
Azure Digital Twins používá řízení přístupu na základě role (RBAC) ke správě přístupu k prostředkům.
Přehled přiřazení rolí
Každé přiřazení role odpovídá následující definici:
{
"roleId": "00e00ad7-00d4-4007-853b-b9968ad000d1",
"objectId": "be2c6daa-a3a0-0c0a-b0da-c000000fbc5f",
"objectIdType": "ServicePrincipalId",
"path": "/",
"tenantId": "00f000bf-86f1-00aa-91ab-2d7cd000db47"
}
Následující tabulka popisuje jednotlivé atributy:
Atribut | Name | Požaduje se | Typ | Description |
---|---|---|---|---|
roleId | Identifikátor definice role | Ano | Řetězec | Jedinečné ID požadovaného přiřazení role. Vyhledejte definice rolí a jejich identifikátor dotazováním na rozhraní SYSTEM API nebo projděte si následující tabulku. |
objectId | Identifikátor objektu | Ano | Řetězec | ID azure Active Directory, ID instančního objektu nebo název domény. Komu nebo komu je přiřazení role přiřazeno. Přiřazení role musí být naformátované podle jeho přidruženého typu.
DomainName Pro objectIdType musí objectId začínat znakem“@” . |
objectIdType | Typ identifikátoru objektu | Ano | Řetězec | Typ použitého identifikátoru objektu. Viz podporované typy ObjectIdTypes níže. |
program | Cesta mezery | Ano | Řetězec | Úplná přístupová cesta k objektu Space . Příklad: /{Guid}/{Guid} . Pokud identifikátor potřebuje přiřazení role pro celý graf, zadejte "/" . Tento znak určuje kořen, ale jeho použití se nedoporučuje. Vždy dodržujte zásadu nejnižších oprávnění. |
id tenanta | Identifikátor tenanta | Různé | Řetězec | Ve většině případů ID tenanta Azure Active Directory. Nepovoleno pro DeviceId a TenantId ObjectIdTypes. Vyžaduje se pro UserId objekty ServicePrincipalId ObjectIdTypes. Volitelné pro ObjectIdType DomainName. |
Podporované identifikátory definic rolí
Každé přiřazení role přidruží definici role k entitě ve vašem prostředí Azure Digital Twins.
Následující tabulka popisuje role, které jsou k dispozici ve službě Azure Digital Twins:
Role | Popis | Identifikátor |
---|---|---|
Správce prostoru | OPRÁVNĚNÍ CREATE, READ, UPDATE a DELETE pro zadaný prostor a všechny uzly pod nimi. Globální oprávnění. | 98e4ad7-28d4-4007-853b-b9968ad132d1 |
Správce uživatelů | OPRÁVNĚNÍ CREATE, READ, UPDATE a DELETE pro uživatele a objekty související s uživatelem. Oprávnění ČÍST pro mezery | dfaac54c-f583-4dd2-b45d-8d4bbc0aa1ac |
Správce zařízení | OPRÁVNĚNÍ CREATE, READ, UPDATE a DELETE pro zařízení a objekty související se zařízeními. Oprávnění ČÍST pro mezery | 3cdfde07-bc16-40d9-bed3-66d49a8f52ae |
Správce klíčů | Oprávnění CREATE, READ, UPDATE a DELETE pro přístupové klíče Oprávnění ČÍST pro mezery | 5a0b1afc-e118-4068-969f-b50efb8e5da6 |
Správce tokenů | Oprávnění READ a UPDATE pro přístupové klíče Oprávnění ČÍST pro mezery | 38a3bb21-5424-43b4-b0bf-78ee228840c3 |
Uživatel | Oprávnění READ pro prostory, senzory a uživatele, které zahrnují odpovídající související objekty. | b1ffdb77-c635-4e7e-ad25-948237d85b30 |
Specialista podpory | Oprávnění ČÍST pro všechno kromě přístupových klíčů. | 6e46958b-dc62-4e7c-990c-c3da2e030969 |
Instalační program zařízení | Oprávnění READ a UPDATE pro zařízení a senzory, které zahrnují odpovídající související objekty. Oprávnění ČÍST pro mezery | b16dd9fe-4efe-467b-8c8c-720e2ff8817c |
Zařízení brány | OPRÁVNĚNÍ CREATE pro senzory. Oprávnění READ pro zařízení a senzory, které zahrnují odpovídající související objekty. | d4c69766-e9bd-4e61-bfc1-d8b6e686c7a8 |
Podporované typy identifikátorů objektů
Dříve byl zaveden atribut objectIdType .
Typ objectIdType
(nebo typ identifikátoru objektu) odkazuje na typ identity, která je udělena roli.
DeviceId
Kromě typů a UserDefinedFunctionId
typů typy identifikátorů objektů odpovídají vlastnostem objektů Azure Active Directory.
Následující tabulka obsahuje podporované typy identifikátorů objektů ve službě Azure Digital Twins:
Typ | Description |
---|---|
UserId | Přiřadí uživateli roli. |
DeviceId | Přiřadí k zařízení roli. |
DomainName | Přiřadí roli k názvu domény. Každý uživatel se zadaným názvem domény má přístupová práva odpovídající role. |
TenantId | Přiřadí roli tenantovi. Každý uživatel, který patří do zadaného Azure AD ID tenanta, má přístupová práva odpovídající role. |
ServicePrincipalId | Přiřadí roli k ID objektu instančního objektu. |
UserDefinedFunctionId | Přiřadí roli k uživatelem definované funkci (UDF). |
Operace přiřazení role
Azure Digital Twins podporuje úplné operace CREATE, READ a DELETE pro přiřazení rolí. Operace AKTUALIZACE se zpracovávají přidáním přiřazení rolí, odebráním přiřazení rolí nebo úpravou uzlů graphu prostorové inteligence, ke kterým přiřazení rolí poskytují přístup.
Zadaná referenční dokumentace ke Swaggeru obsahuje další informace o všech dostupných koncových bodech rozhraní API, operacích požadavků a definicích.
Tip
K předvedení sady funkcí rozhraní API se poskytuje Swagger sneak Preview. Hostuje se v docs.westcentralus.azuresmartspaces.net/management/swagger.
Můžete získat přístup k vlastní vygenerované dokumentaci k rozhraní API pro správu Swaggeru na adrese:
https://YOUR_INSTANCE_NAME.YOUR_LOCATION.azuresmartspaces.net/management/swagger
Name | Nahradit hodnotou |
---|---|
YOUR_INSTANCE_NAME | Název instance služby Azure Digital Twins |
YOUR_LOCATION | Na které oblasti serveru je vaše instance hostovaná |
V následujících YOUR_MANAGEMENT_API_URL
příkladech se odkazuje na identifikátor URI rozhraní API služby Digital Twins:
https://YOUR_INSTANCE_NAME.YOUR_LOCATION.azuresmartspaces.net/management/api/v1.0
Name | Nahradit hodnotou |
---|---|
YOUR_INSTANCE_NAME | Název instance služby Azure Digital Twins |
YOUR_LOCATION | Oblast, ve které je vaše instance hostovaná |
Udělení oprávnění instančnímu objektu
Udělení oprávnění instančnímu objektu je často jedním z prvních kroků, které provedete při práci s Azure Digital Twins. Zahrnuje:
- Přihlaste se k instanci Azure prostřednictvím Azure CLI nebo PowerShellu.
- Získání informací o instančním objektu
- Přiřazení požadované role k instančnímu objektu
ID vaší aplikace se zadává v Azure Active Directory. Další informace o konfiguraci a zřízení služby Azure Digital Twins ve službě Active Directory najdete v rychlém startu.
Jakmile budete mít ID aplikace, spusťte jeden z následujících příkazů. V Azure CLI:
az login
az ad sp show --id <ApplicationId>
V PowerShellu:
Login-AzAccount
Get-AzADServicePrincipal -ApplicationId <ApplicationId>
Uživatel s rolí Správa pak může uživateli přiřadit roli Správce prostoru provedením ověřeného požadavku HTTP POST na adresu URL:
YOUR_MANAGEMENT_API_URL/roleassignments
S následujícím textem JSON:
{
"roleId": "98e44ad7-28d4-4007-853b-b9968ad132d1",
"objectId": "YOUR_SERVICE_PRINCIPLE_OBJECT_ID",
"objectIdType": "ServicePrincipalId",
"path": "YOUR_PATH",
"tenantId": "YOUR_TENANT_ID"
}
Načtení všech rolí
Pokud chcete zobrazit seznam všech dostupných rolí (definice rolí), proveďte ověřený požadavek HTTP GET na:
YOUR_MANAGEMENT_API_URL/system/roles
Úspěšný požadavek vrátí pole JSON s položkami pro každou roli, která může být přiřazena:
[
{
"id": "3cdfde07-bc16-40d9-bed3-66d49a8f52ae",
"name": "DeviceAdministrator",
"permissions": [
{
"notActions": [],
"actions": [
"Read",
"Create",
"Update",
"Delete"
],
"condition": "@Resource.Type Any_of {'Device', 'DeviceBlobMetadata', 'DeviceExtendedProperty', 'Sensor', 'SensorBlobMetadata', 'SensorExtendedProperty'} || ( @Resource.Type == 'ExtendedType' && (!Exists @Resource.Category || @Resource.Category Any_of { 'DeviceSubtype', 'DeviceType', 'DeviceBlobType', 'DeviceBlobSubtype', 'SensorBlobSubtype', 'SensorBlobType', 'SensorDataSubtype', 'SensorDataType', 'SensorDataUnitType', 'SensorPortType', 'SensorType' } ) )"
},
{
"notActions": [],
"actions": [
"Read"
],
"condition": "@Resource.Type == 'Space' && @Resource.Category == 'WithoutSpecifiedRbacResourceTypes' || @Resource.Type Any_of {'ExtendedPropertyKey', 'SpaceExtendedProperty', 'SpaceBlobMetadata', 'SpaceResource', 'Matcher'}"
}
],
"accessControlPath": "/system",
"friendlyPath": "/system",
"accessControlType": "System"
}
]
Kontrola konkrétního přiřazení role
Pokud chcete zkontrolovat konkrétní přiřazení role, proveďte ověřený požadavek HTTP GET na:
YOUR_MANAGEMENT_API_URL/roleassignments/check?userId=YOUR_USER_ID&path=YOUR_PATH&accessType=YOUR_ACCESS_TYPE&resourceType=YOUR_RESOURCE_TYPE
Hodnota parametru | Povinné | Typ | Popis |
---|---|---|---|
YOUR_USER_ID | Ano | Řetězec | Id objektu objektu UserId ObjectIdType. |
YOUR_PATH | Ano | Řetězec | Zvolená cesta ke kontrole přístupu. |
YOUR_ACCESS_TYPE | Ano | Řetězec | Čtení, vytváření, aktualizace nebo odstranění |
YOUR_RESOURCE_TYPE | Ano | Řetězec | Device, DeviceBlobMetadata, DeviceExtendedProperty, ExtendedPropertyKey, ExtendedType, Endpoint, KeyStore, Matcher, Ontology, Report, RoleDefinition, Sensor, SensorExtendedProperty, SpaceBlobMetadata, SpaceExtendedProperty, SpaceResource, SpaceRoleAssignment, System, UerDefinedFunction, User, UserBlobMetadata nebo UserExtendedProperty |
Úspěšný požadavek vrátí logickou hodnotu true
nebo false
určí, jestli byl typ přístupu přiřazen uživateli pro danou cestu a prostředek.
Získání přiřazení rolí podle cesty
Pokud chcete získat všechna přiřazení rolí pro cestu, proveďte ověřený požadavek HTTP GET na:
YOUR_MANAGEMENT_API_URL/roleassignments?path=YOUR_PATH
Hodnota | Nahradit hodnotou |
---|---|
YOUR_PATH | Úplná cesta k prostoru |
Úspěšný požadavek vrátí pole JSON s každým přiřazením role přidruženým k vybranému parametru cesty :
[
{
"id": "0000c484-698e-46fd-a3fd-c12aa11e53a1",
"roleId": "98e44ad7-28d4-4007-853b-b9968ad132d1",
"objectId": "0de38846-1aa5-000c-a46d-ea3d8ca8ee5e",
"objectIdType": "UserId",
"path": "/"
}
]
Odvolání oprávnění
Pokud chcete odvolat oprávnění od příjemce, odstraňte přiřazení role provedením ověřeného požadavku HTTP DELETE:
YOUR_MANAGEMENT_API_URL/roleassignments/YOUR_ROLE_ASSIGNMENT_ID
Parametr | Nahradit hodnotou |
---|---|
YOUR_ROLE_ASSIGNMENT_ID | ID přiřazení role k odebrání |
Úspěšný požadavek DELETE vrátí stav odpovědi 204. Ověřte odebrání přiřazení role tak, že zkontrolujte , jestli přiřazení role stále drží.
Vytvoření přiřazení role
Pokud chcete vytvořit přiřazení role, proveďte ověřený požadavek HTTP POST na adresu URL:
YOUR_MANAGEMENT_API_URL/roleassignments
Ověřte, že tělo JSON odpovídá následujícímu schématu:
{
"roleId": "YOUR_ROLE_ID",
"objectId": "YOUR_OBJECT_ID",
"objectIdType": "YOUR_OBJECT_ID_TYPE",
"path": "YOUR_PATH",
"tenantId": "YOUR_TENANT_ID"
}
Úspěšný požadavek vrátí stav odpovědi 201 spolu s ID nově vytvořeného přiřazení role:
"d92c7823-6e65-41d4-aaaa-f5b32e3f01b9"
Příklady konfigurace
Následující příklady ukazují, jak nakonfigurovat tělo JSON v několika běžně používaných scénářích přiřazení role.
Příklad: Uživatel potřebuje přístup správce k podstavci prostoru tenanta.
{ "roleId": "98e44ad7-28d4-4007-853b-b9968ad132d1", "objectId" : " 0fc863aa-eb51-4704-a312-7d635d70e000", "objectIdType" : "UserId", "tenantId": " a0c20ae6-e830-4c60-993d-a00ce6032724", "path": "/ 000e349c-c0ea-43d4-93cf-6b00abd23a44/ d84e82e6-84d5-45a4-bd9d-006a000e3bab" }
Příklad: Aplikace spouští testovací scénáře napodobování zařízení a senzorů.
{ "roleId": "98e44ad7-28d4-0007-853b-b9968ad132d1", "objectId" : "cabf7aaa-af0b-41c5-000a-ce2f4c20000b", "objectIdType" : "ServicePrincipalId", "tenantId": " a0c20ae6-e000-4c60-993d-a91ce6000724", "path": "/" }
Příklad: Všichni uživatelé, kteří jsou součástí domény, dostávají přístup pro čtení pro prostory, senzory a uživatele. Tento přístup zahrnuje odpovídající související objekty.
{ "roleId": " b1ffdb77-c635-4e7e-ad25-948237d85b30", "objectId" : "@microsoft.com", "objectIdType" : "DomainName", "path": "/000e349c-c0ea-43d4-93cf-6b00abd23a00" }
Další kroky
Pokud chcete zkontrolovat řízení přístupu na základě role azure Digital Twins, přečtěte si řízení přístupu na základě role na základě role.
Další informace o ověřování rozhraní API služby Azure Digital Twins najdete v tématu Ověřování rozhraní API pro čtení.