Aracılığıyla paylaş


Azure Digital Twins'de rol atamaları oluşturma ve yönetme

Önemli

Azure Digital Twins hizmetinin yeni bir sürümü yayınlandı. Yeni hizmetin genişletilmiş özellikleri ışığında özgün Azure Digital Twins hizmeti (bu belge kümesinde açıklanmıştır) kullanımdan kaldırılmıştır.

Yeni hizmetin belgelerini görüntülemek için etkin Azure Digital Twins Belgeleri'ni ziyaret edin.

Azure Digital Twins, kaynaklara erişimi yönetmek için rol tabanlı erişim denetimi (RBAC) kullanır.

Rol atamalarına genel bakış

Her rol ataması aşağıdaki tanıma uygundur:

{
  "roleId": "00e00ad7-00d4-4007-853b-b9968ad000d1",
  "objectId": "be2c6daa-a3a0-0c0a-b0da-c000000fbc5f",
  "objectIdType": "ServicePrincipalId",
  "path": "/",
  "tenantId": "00f000bf-86f1-00aa-91ab-2d7cd000db47"
}

Aşağıdaki tabloda her öznitelik açıklanmaktadır:

Öznitelik Name Gerekli Tür Açıklama
Roleıd Rol tanımı tanımlayıcısı Evet Dize İstenen rol atamasının benzersiz kimliği. Sistem API'sini sorgulayarak veya aşağıdaki tabloyu gözden geçirerek rol tanımlarını ve tanımlayıcılarını bulun.
objectId Nesne tanımlayıcısı Evet Dize Azure Active Directory kimliği, hizmet sorumlusu nesne kimliği veya etki alanı adı. Rol atamasının atandığı veya atandığı kişi. Rol ataması ilişkili türüne göre biçimlendirilmelidir. DomainName objectIdType için objectId karakteriyle “@” başlamalıdır.
objectIdType Nesne tanımlayıcı türü Evet Dize Kullanılan Nesne Tanımlayıcısı türü. Aşağıdaki Desteklenen ObjectIdTypes bölümüne bakın.
path Ara çubuğu yolu Evet Dize Nesnenin Space tam erişim yolu. /{Guid}/{Guid} bunun bir örneğidir. Bir tanımlayıcının grafın tamamı için rol ataması gerekiyorsa belirtin "/". Bu karakter kökü gösterir, ancak kullanımı önerilmez. Her zaman En Az Ayrıcalık İlkesi'ni izleyin.
tenantId Kiracı tanımlayıcısı Değişir Dize Çoğu durumda Azure Active Directory kiracı kimliği. ve TenantId ObjectIdTypes için DeviceId izin verilmiyor. ve ServicePrincipalId ObjectIdTypes için UserId gereklidir. DomainName ObjectIdType için isteğe bağlı.

Desteklenen rol tanımı tanımlayıcıları

Her rol ataması bir rol tanımını Azure Digital Twins ortamınızdaki bir varlıkla ilişkilendirir.

Aşağıdaki tabloda Azure Digital Twins'de kullanılabilen roller açıklanmaktadır:

Role Açıklama Tanımlayıcı
Alan Yöneticisi Belirtilen alan ve altındaki tüm düğümler için CREATE, READ, UPDATE ve DELETE izni. Genel izin. 98e44ad7-28d4-4007-853b-b9968ad132d1
Kullanıcı Yöneticisi Kullanıcılar ve kullanıcıyla ilgili nesneler için CREATE, READ, UPDATE ve DELETE izni. Boşluklar için READ izni. dfaac54c-f583-4dd2-b45d-8d4bbc0aa1ac
Cihaz Yöneticisi Cihazlar ve cihazla ilgili nesneler için CREATE, READ, UPDATE ve DELETE izni. Boşluklar için READ izni. 3cdfde07-bc16-40d9-bed3-66d49a8f52ae
Anahtar Yöneticisi Erişim anahtarları için CREATE, READ, UPDATE ve DELETE izinleri. Boşluklar için READ izni. 5a0b1afc-e118-4068-969f-b50efb8e5da6
Belirteç Yöneticisi Erişim anahtarları için READ ve UPDATE izni. Boşluklar için READ izni. 38a3bb21-5424-43b4-b0bf-78ee228840c3
Kullanıcı İlgili nesneleri içeren boşluklar, algılayıcılar ve kullanıcılar için READ izni. b1ffdb77-c635-4e7e-ad25-948237d85b30
Destek Uzmanı Erişim anahtarları dışında her şey için READ izni. 6e46958b-dc62-4e7c-990c-c3da2e030969
Cihaz Yükleyicisi Cihazlar ve algılayıcılar için ilgili nesneleri içeren READ ve UPDATE izni. Boşluklar için READ izni. b16dd9fe-4efe-467b-8c8c-720e2ff8817c
Ağ Geçidi Cihazı Algılayıcılar için CREATE izni. İlgili nesneleri içeren cihazlar ve algılayıcılar için OKUMA izni. d4c69766-e9bd-4e61-bfc1-d8b6e686c7a8

Desteklenen nesne tanımlayıcı türleri

Daha önce objectIdType özniteliği tanıtılmıştı.

objectIdType (veya nesne tanımlayıcı türü), bir role verilen kimliğin türünü ifade eder. ve UserDefinedFunctionId türleri dışındaDeviceId, nesne tanımlayıcı türleri Azure Active Directory nesnelerinin özelliklerine karşılık gelir.

Aşağıdaki tabloda Azure Digital Twins'de desteklenen nesne tanımlayıcı türleri yer alır:

Tür Açıklama
UserId Kullanıcıya rol atar.
DeviceId Bir cihaza rol atar.
DomainName Etki alanı adına rol atar. Belirtilen etki alanı adına sahip her kullanıcının ilgili rolün erişim hakları vardır.
TenantId Kiracıya rol atar. Belirtilen Azure AD kiracı kimliğine ait her kullanıcının ilgili rolün erişim hakları vardır.
ServicePrincipalId Hizmet sorumlusu nesne kimliğine rol atar.
UserDefinedFunctionId Kullanıcı tanımlı işleve (UDF) rol atar.

Rol atama işlemleri

Azure Digital Twins, rol atamaları için tam CREATE, READ ve DELETE işlemlerini destekler. UPDATE işlemleri rol atamaları eklenerek, rol atamaları kaldırılarak veya rol atamalarının erişim verdiği Uzamsal Zeka Grafı düğümlerini değiştirerek işlenir.

Rol atama uç noktaları

Sağlanan Swagger başvuru belgeleri tüm kullanılabilir API uç noktaları, istek işlemleri ve tanımlar hakkında daha fazla bilgi içerir.

İpucu

API özellik kümesini göstermek için bir Swagger sneak önizlemesi sağlanır. docs.westcentralus.azuresmartspaces.net/management/swagger'da barındırlenmektedir.

Kendi oluşturduğunuz Yönetim API'si Swagger belgelerine şu konumdan erişebilirsiniz:

https://YOUR_INSTANCE_NAME.YOUR_LOCATION.azuresmartspaces.net/management/swagger
Name Şununla değiştir
YOUR_INSTANCE_NAME Azure Digital Twins örneğinizin adı
YOUR_LOCATION Örneğinizin barındırıldığı sunucu bölgesi

Aşağıdaki örneklerde Digital YOUR_MANAGEMENT_API_URL Twins API'lerinin URI'sini ifade eder:

https://YOUR_INSTANCE_NAME.YOUR_LOCATION.azuresmartspaces.net/management/api/v1.0
Name Şununla değiştir
YOUR_INSTANCE_NAME Azure Digital Twins örneğinizin adı
YOUR_LOCATION Örneğinizin barındırılıyor olduğu bölge

Hizmet sorumlunuza izin verme

Hizmet sorumlunuza izin vermek genellikle Azure Digital Twins ile çalışırken atabileceğiniz ilk adımlardan biridir. Bu, şu işlemleri kapsar:

  1. Azure CLI veya PowerShell aracılığıyla Azure örneğinizde oturum açın.
  2. Hizmet sorumlusu bilgilerinizi alma.
  3. İstenen rolü hizmet sorumlunuza atama.

Uygulama kimliğiniz Size Azure Active Directory'de sağlanır. Active Directory'de Azure Digital Twins yapılandırma ve sağlama hakkında daha fazla bilgi edinmek için Hızlı Başlangıç'ı okuyun.

Uygulama kimliğine sahip olduktan sonra aşağıdaki komutlardan birini yürütebilirsiniz. Azure CLI'da:

az login
az ad sp show --id <ApplicationId>

PowerShell'de:

Login-AzAccount
Get-AzADServicePrincipal -ApplicationId <ApplicationId>

Yönetici rolüne sahip bir kullanıcı, URL'ye kimliği doğrulanmış bir HTTP POST isteği yaparak kullanıcıya Alan Yöneticisi rolünü atayabilir:

YOUR_MANAGEMENT_API_URL/roleassignments

Aşağıdaki JSON gövdesiyle:

{
  "roleId": "98e44ad7-28d4-4007-853b-b9968ad132d1",
  "objectId": "YOUR_SERVICE_PRINCIPLE_OBJECT_ID",
  "objectIdType": "ServicePrincipalId",
  "path": "YOUR_PATH",
  "tenantId": "YOUR_TENANT_ID"
}

Tüm rolleri alma

Sistem rolleri

Tüm kullanılabilir rolleri (rol tanımları) listelemek için, kimliği doğrulanmış bir HTTP GET isteği oluşturun:

YOUR_MANAGEMENT_API_URL/system/roles

Başarılı bir istek, atanabilecek her rol için girişleri olan bir JSON dizisi döndürür:

[
    {
        "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"
    }
]

Belirli bir rol atamayı denetleme

Belirli bir rol atamasını denetlemek için, kimliği doğrulanmış bir HTTP GET isteği oluşturun:

YOUR_MANAGEMENT_API_URL/roleassignments/check?userId=YOUR_USER_ID&path=YOUR_PATH&accessType=YOUR_ACCESS_TYPE&resourceType=YOUR_RESOURCE_TYPE
Parametre değeri Gerekli Tür Açıklama
YOUR_USER_ID Doğru Dize UserId objectIdType için objectId.
YOUR_PATH Doğru Dize Erişimi denetlemek için seçilen yol.
YOUR_ACCESS_TYPE Doğru Dize Okuma, Oluşturma, Güncelleştirme veya Silme
YOUR_RESOURCE_TYPE Doğru Dize Device, DeviceBlobMetadata, DeviceExtendedProperty, ExtendedPropertyKey, ExtendedType, Endpoint, KeyStore, Matcher, Ontology, Report, RoleDefinition, Sensor, SensorExtendedProperty, Space, SpaceBlobMetadata, SpaceExtendedProperty, SpaceResource, SpaceRoleAssignment, System, UerDefinedFunction, User, UserBlobMetadata veya UserExtendedProperty

Başarılı bir istek bir boole true değeri döndürür veya false erişim türünün kullanıcıya verilen yol ve kaynak için atanıp atanmadığını belirtir.

Yola göre rol atamaları alma

Bir yol için tüm rol atamalarını almak için, kimliği doğrulanmış bir HTTP GET isteği oluşturun:

YOUR_MANAGEMENT_API_URL/roleassignments?path=YOUR_PATH
Değer Şununla değiştir
YOUR_PATH Boşluğun tam yolu

Başarılı bir istek, seçilen yol parametresiyle ilişkilendirilmiş her rol atamasıyla birlikte bir JSON dizisi döndürür:

[
    {
        "id": "0000c484-698e-46fd-a3fd-c12aa11e53a1",
        "roleId": "98e44ad7-28d4-4007-853b-b9968ad132d1",
        "objectId": "0de38846-1aa5-000c-a46d-ea3d8ca8ee5e",
        "objectIdType": "UserId",
        "path": "/"
    }
]

İzni iptal etme

Alıcıdan gelen izni iptal etmek için kimliği doğrulanmış HTTP DELETE isteğinde bulunarak rol atamasını silin:

YOUR_MANAGEMENT_API_URL/roleassignments/YOUR_ROLE_ASSIGNMENT_ID
Parametre Şununla değiştir
YOUR_ROLE_ASSIGNMENT_ID Kaldırılacak rol atamasının kimliği

Başarılı bir DELETE isteği 204 yanıt durumu döndürür. Rol atamasının hala geçerli olup olmadığını denetleyerek rol atamasının kaldırılıp kaldırılmadığını doğrulayın.

Rol ataması oluşturma

Rol ataması oluşturmak için URL'ye kimliği doğrulanmış bir HTTP POST isteği gönderin:

YOUR_MANAGEMENT_API_URL/roleassignments

JSON gövdesinin aşağıdaki şemaya uygun olduğunu doğrulayın:

{
  "roleId": "YOUR_ROLE_ID",
  "objectId": "YOUR_OBJECT_ID",
  "objectIdType": "YOUR_OBJECT_ID_TYPE",
  "path": "YOUR_PATH",
  "tenantId": "YOUR_TENANT_ID"
}

Başarılı bir istek, yeni oluşturulan rol atamasının kimliğiyle birlikte bir 201 yanıt durumu döndürür:

"d92c7823-6e65-41d4-aaaa-f5b32e3f01b9"

Yapılandırma örnekleri

Aşağıdaki örneklerde, sık karşılaşılan birkaç rol atama senaryosunda JSON gövdenizi yapılandırma adımları gösterilmektedir.

  • Örnek: Kullanıcının kiracı alanının bir katı için yönetici erişimine ihtiyacı vardır.

    {
      "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"
    }
    
  • Örnek: Bir uygulama, sahte cihazları ve algılayıcıları test senaryoları çalıştırır.

    {
      "roleId": "98e44ad7-28d4-0007-853b-b9968ad132d1",
      "objectId" : "cabf7aaa-af0b-41c5-000a-ce2f4c20000b",
      "objectIdType" : "ServicePrincipalId",
      "tenantId": " a0c20ae6-e000-4c60-993d-a91ce6000724",
      "path": "/"
    }
    
  • Örnek: Bir etki alanının parçası olan tüm kullanıcılar alanlar, algılayıcılar ve kullanıcılar için okuma erişimi alır. Bu erişim, bunlara karşılık gelen ilgili nesneleri içerir.

    {
      "roleId": " b1ffdb77-c635-4e7e-ad25-948237d85b30",
      "objectId" : "@microsoft.com",
      "objectIdType" : "DomainName",
      "path": "/000e349c-c0ea-43d4-93cf-6b00abd23a00"
    }
    

Sonraki adımlar