Sdílet prostřednictvím


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 se původní služba Azure Digital Twins (popsaná v této sadě dokumentace) vyřadila z provozu.

Pokud chcete zobrazit dokumentaci k nové službě, navštivte aktivní dokumentaci ke službě Azure Digital Twins.

Azure Digital Twins ke správě přístupu k prostředkům používá řízení přístupu na základě role (RBAC).

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:

Vlastnost Název Povinné Typ Popis
roleId Identifikátor definice role Ano Řetězec ID požadovaného přiřazení role. Vyhledejte definice rolí a jejich identifikátor pomocí dotazu na systémové rozhraní API nebo si projděte tabulku níže.
objectId Identifikátor objektu Ano Řetězec ID azure Active Directory, ID instančního objektu nebo název domény. Komu nebo k čemu je přiřazena role? Přiřazení role musí být naformátované podle přidruženého typu. DomainName Pro objectIdType musí objectId začínat znakem“@”.
typIdentifikátoruObjektu Typ identifikátoru objektu Ano Řetězec Druh použitého identifikátoru objektu. Viz podporované typy ObjectIdTypes níže.
cesta Cesta vesmírem 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 označuje kořen, ale jeho použití se nedoporučuje. Vždy dodržujte zásadu nejnižších oprávnění.
ID nájemce Identifikátor tenanta Liší se Řetězec Ve většině případů ID tenanta Azure Active Directory. Zakázáno pro DeviceId a TenantId ObjectIdTypes. Požadováno pro UserId a ServicePrincipalId ObjectIdTypes. Volitelné pro DomainName ObjectIdType.

Podporované identifikátory definic rolí

Každé přiřazení role přidruží definici role k entitě v prostředí Azure Digital Twins.

Následující tabulka popisuje role, které jsou k dispozici ve službě Azure Digital Twins:

Úloha popis Identifikátor
Správce prostoru VYTVOŘENÍ, ČTENÍ, AKTUALIZACE a SMAZÁNÍ oprávnění pro zadaný prostor a všechny uzly pod ním. Globální oprávnění. 98e44ad7-28d4-4007-853b-b9968ad132d1
Správce uživatelů Oprávnění CREATE, READ, UPDATEa DELETE pro uživatele a objekty související s uživatelem. oprávnění ke čtení pro mezery. dfaac54c-f583-4dd2-b45d-8d4bbc0aa1ac
Správce zařízení CREATE, READ, UPDATEa DELETE oprávnění pro zařízení a objekty související se zařízeními. oprávnění ke čtení pro mezery. 3cdfde07-bc16-40d9-bed3-66d49a8f52ae
Správce klíčů Oprávnění CREATE, READ, UPDATEa DELETE pro přístupové klíče. oprávnění ke čtení pro mezery. 5a0b1afc-e118-4068-969f-b50efb8e5da6
Správce tokenů Oprávnění ke čtení a aktualizaci pro přístupové klíče. oprávnění ke čtení pro mezery. 38a3bb21-5424-43b4-b0bf-78ee228840c3
Uživatel oprávnění ke čtení pro prostory, senzory a uživatele, které zahrnuje jejich odpovídající související objekty. b1ffdb77-c635-4e7e-ad25-948237d85b30
Specialista podpory Oprávnění ke čtení pro všechno kromě přístupových klíčů. 6e46958b-dc62-4e7c-990c-c3da2e030969
Instalační program zařízení oprávnění ke čtení a Aktualizace pro zařízení a senzory, včetně jejich odpovídajících souvisejících objektů. oprávnění ke čtení pro mezery. b16dd9fe-4efe-467b-8c8c-720e2ff8817c
Zařízení brány vytvořit oprávnění pro senzory. oprávnění ke čtení 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 .

objectIdType (nebo typ identifikátoru objektu) odkazuje na typ identity, která je udělena roli. Kromě typů DeviceId a UserDefinedFunctionId odpovídají typy identifikátorů objektů vlastnostem objektů Azure Active Directory.

Následující tabulka obsahuje podporované typy identifikátorů objektů ve službě Azure Digital Twins:

Typ Popis
Id uživatele Přiřadí uživateli roli.
Id zařízení Přiřadí k zařízení roli.
název domény 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.
Id nájemce Přiřadí roli tenantovi. Každý uživatel, který patří k zadanému ID tenanta Azure AD, má přístupová práva odpovídající role.
ServicePrincipalId Přiřadí roli k ID objektu zástupce služby.
IdUživatelskyDefinovanéFunkce Přiřadí roli uživatelem definované funkci (UDF).

Operace přiřazení rolí

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ů grafu prostorové inteligence, ke kterým přiřazení rolí poskytují přístup.

Koncové body přiřazení rolí

Dodaná 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.

Návod

K demonstraci sady funkcí rozhraní API je poskytován náhled Swaggeru. Hostuje se v docs.westcentralus.azuresmartspaces.net/management/swagger.

K vlastní vygenerované dokumentaci k rozhraní API pro správu Swaggeru můžete přistupovat na adrese:

https://YOUR_INSTANCE_NAME.YOUR_LOCATION.azuresmartspaces.net/management/swagger
Název Nahradit za
NÁZEV_VAŠEHO_INSTANCE Název instance služby Azure Digital Twins
VAŠE_MÍSTO V jaké oblasti serveru je vaše instance hostovaná

V následujících příkladech YOUR_MANAGEMENT_API_URL odkazuje na identifikátor URI rozhraní API služby Digital Twins:

https://YOUR_INSTANCE_NAME.YOUR_LOCATION.azuresmartspaces.net/management/api/v1.0
Název Nahradit za
NÁZEV_VAŠEHO_INSTANCE Název instance služby Azure Digital Twins
VAŠE_MÍSTO Oblast, ve které je vaše instance hostovaná

Udělte oprávnění vašemu služebnímu objektu

Udělení oprávnění vašemu servisnímu účtu je často jedním z prvních kroků, které provedete při práci s Azure Digital Twins. To zahrnuje:

  1. Přihlaste se k instanci Azure prostřednictvím Azure CLI nebo PowerShellu.
  2. Získání informací o hlavním objektu služby.
  3. Přiřazení požadované role poskytovateli služby.

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 prostředí PowerShell:

Login-AzAccount
Get-AzADServicePrincipal -ApplicationId <ApplicationId>

Uživatel s rolí Správce 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 JSON obsahem:

{
  "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í

Systémové role

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 Pravda Řetězec ObjectId pro UserId Typ objektuID.
VAŠE_CESTA Pravda Řetězec Zvolená cesta ke kontrole přístupu.
TVŮJ_TYP_PŘÍSTUPU Pravda Řetězec Čtení, vytváření, aktualizace nebo odstranění
YOUR_RESOURCE_TYPE Pravda Řetězec Device, DeviceBlobMetadata, DeviceExtendedProperty, ExtendedPropertyKey, ExtendedType, Endpoint, KeyStore, Matcher, Ontology, Report, RoleDefinition, Sensor, SensorExtendedProperty, Space, SpaceBlobMetadata, SpaceExtendedProperty, SpaceResource, SpaceRoleAssignment, System, UserDefinedFunction, 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ískejte 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 za
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 za
VAŠE_ID_PŘIŘAZENÍ_ROLE ID přiřazení role, které má být odebráno

Úspěšný požadavek DELETE vrátí stav odpovědi 204. Ověřte odebrání přiřazení role tak, že zkontrolujete, jestli přiřazení role stále platí.

Vytvořte 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í rolí.

  • Příklad: Uživatel potřebuje administrativní přístup k nájemnímu prostoru.

    {
      "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 simulující zařízení a senzory.

    {
      "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, získají přístup pro čtení prostorů, senzorů a uživatelů. 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