Konfigurasikan kontrol akses berbasis peran dengan Microsoft Entra ID untuk akun Azure Cosmos DB Anda

BERLAKU UNTUK: NoSQL

Catatan

Artikel ini berisi kumpulan tentang kontrol akses berbasis peran untuk operasi sarana data di Azure Cosmos DB. Jika Anda menggunakan operasi sarana manajemen, lihat kontrol akses berbasis peran yang diterapkan pada artikel operasi sarana manajemen Anda.

Azure Cosmos DB mengekspos sistem kontrol akses berbasis peran bawaan yang memungkinkan Anda:

  • Autentikasi permintaan data Anda dengan identitas Microsoft Entra.
  • Mengotorisasi permintaan data dengan model izin berbasis peran yang mendetail.

Konsep

Kontrol akses berbasis peran sarana data Azure Cosmos DB dibangun berdasarkan konsep yang umumnya ditemukan dalam sistem kontrol akses berbasis peran lainnya seperti kontrol akses berbasis peran Azure:

  • Model izin terdiri dari serangkaian tindakan; tiap-tiap tindakan ini memetakan ke satu atau beberapa operasi database. Beberapa contoh tindakan termasuk membaca item, menulis item, atau menjalankan kueri.
  • Pengguna Azure Cosmos DB membuat definisi peran yang berisi daftar tindakan yang diizinkan.
  • Definisi peran ditetapkan ke identitas Microsoft Entra tertentu melalui penetapan peran. Penetapan peran juga menentukan cakupan yang diterapkan definisi peran; saat ini, tiga cakupan saat ini adalah:
    • Akun Azure Cosmos DB,
    • Keamanan database Azure Cosmos DB,
    • Kontainer DB Azure Cosmos.

Diagram of common role-based access control concepts including role definitions, role assignments, and principals.

Model izin

Penting

Model izin ini hanya mencakup operasi database yang melibatkan membaca dan menulis data. Ini tidak mencakup segala jenis operasi manajemen pada sumber daya manajemen, termasuk:

  • Membuat/Mengganti/Menghapus Database
  • Membuat/Mengganti/Menghapus Kontainer
  • Membaca/Mengganti Throughput Kontainer
  • Membuat/Mengganti/Menghapus/Membaca Prosedur Tersimpan
  • Membuat/Mengganti/Menghapus/Membaca Pemicu
  • Membuat/Mengganti/Menghapus/Membaca Fungsi yang Ditentukan Pengguna

Anda tidak dapat menggunakan SDK sarana data Azure Cosmos DB apa pun untuk mengautentikasi operasi manajemen dengan identitas Microsoft Entra. Sebagai gantinya, Anda harus menggunakan kontrol akses berbasis peran Azure melalui salah satu opsi berikut:

Basis Data Baca dan Kontainer Baca dianggap sebagai permintaan metadata. Akses ke operasi ini dapat diberikan sebagaimana dinyatakan di bagian berikut.

Tabel ini mencantumkan semua tindakan yang diekspos oleh model izin.

Nama Operasi database terkait
Microsoft.DocumentDB/databaseAccounts/readMetadata Baca metadata akun. Lihat Permintaan metadata untuk penjelasan selengkapnya.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/create Buat item baru.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read Baca item individual dengan ID dan kunci partisinya (point-read).
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/replace Ganti item yang sudah ada.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/upsert "Upsert" item. Operasi ini membuat item jika belum ada, atau untuk mengganti item jika memang ada.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/delete Hapus item.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery Jalankan kueri SQL.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed Baca dari umpan perubahan kontainer. Jalankan kueri SQL menggunakan SDK.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeStoredProcedure Jalankan prosedur tersimpan.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/manageConflicts Kelola konflik untuk akun wilayah multi-tulis (artinya, mencantumkan dan menghapus item dari umpan konflik).

Catatan

Saat menjalankan kueri melalui SDK, izin dan Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQueryMicrosoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed diperlukan.

Wildcard didukung di tingkat kontainer dan item:

  • Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*
  • Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*

Permintaan metadata

SDK Azure Cosmos DB mengeluarkan permintaan metadata baca-saja selama inisialisasi dan untuk melayani permintaan data tertentu. Permintaan ini mengambil berbagai detail konfigurasi seperti:

  • Konfigurasi global akun Anda, yang mencakup wilayah Azure tempat akun tersedia.
  • Kunci partisi kontainer Anda atau kebijakan pengindeksannya.
  • Daftar partisi fisik yang membuat kontainer dan alamat mereka.

Data apa pun yang telah Anda simpan di akun Anda tidak diambil.

Untuk memastikan transparansi terbaik dari model izin kami, permintaan metadata ini secara eksplisit dicakup oleh tindakan Microsoft.DocumentDB/databaseAccounts/readMetadata. Tindakan ini akan diizinkan dalam setiap situasi di mana akun Azure Cosmos DB Anda diakses melalui salah satu Azure Cosmos DB SDK. Ini dapat ditetapkan (melalui penetapan peran) pada tingkat apa pun dalam hierarki Azure Cosmos DB (yaitu, akun, database, atau kontainer).

Permintaan metadata aktual yang diizinkan oleh tindakan Microsoft.DocumentDB/databaseAccounts/readMetadata bergantung pada lingkup tempat tindakan ditetapkan untuk:

Cakupan Permintaan yang diizinkan oleh tindakan
Akun • Mencantumkan database di bawah akun
• Untuk setiap database di bawah akun, tindakan yang diizinkan di cakupan database
Database • Membaca metadata database
• Mencantumkan kontainer di bawah database
• Untuk setiap kontainer di bawah database, tindakan yang diizinkan di cakupan kontainer
Kontainer • Membaca metadata kontainer
• Mencantumkan partisi fisik di bawah kontainer
• Menyelesaikan alamat setiap partisi fisik

Penting

Throughput tidak disertakan dalam metadata untuk tindakan ini.

Definisi peran bawaan

Azure Cosmos DB memaparkan 2 definisi peran bawaan:

Penting

Istilah definisi peran di sini mengacu pada definisi peran khusus Azure Cosmos DB. Ini berbeda dari definisi peran kontrol akses berbasis peran Azure.

ID Nama Tindakan yang disertakan
00000000-0000-0000-0000-000000000001 Pembaca Data Bawaan Cosmos DB Microsoft.DocumentDB/databaseAccounts/readMetadata
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed
00000000-0000-0000-0000-000000000002 Kontributor Data Bawaan Cosmos DB Microsoft.DocumentDB/databaseAccounts/readMetadata
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*

Membuat definisi peran kustom

Saat membuat definisi peran kustom, Anda perlu menyediakan:

  • Nama akun Azure Cosmos DB Anda.
  • Grup sumber daya yang berisi akun Anda.
  • Jenis definisi peran: CustomRole.
  • Nama definisi peran.
  • Daftar tindakan yang Anda inginkan untuk diperbolehkan oleh peran tersebut.
  • Satu atau beberapa cakupan yang dapat ditetapkan oleh definisi peran; cakupan yang didukung adalah:
    • / (tingkat akun),
    • /dbs/<database-name> (tingkat database),
    • /dbs/<database-name>/colls/<container-name> (tingkat kontainer).

Catatan

Operasi yang dijelaskan tersedia di:

Menggunakan Azure PowerShell

Buat peran bernama MyReadOnlyRole yang hanya berisi tindakan baca:

$resourceGroupName = "<myResourceGroup>"
$accountName = "<myCosmosAccount>"
New-AzCosmosDBSqlRoleDefinition -AccountName $accountName `
    -ResourceGroupName $resourceGroupName `
    -Type CustomRole -RoleName MyReadOnlyRole `
    -DataAction @( `
        'Microsoft.DocumentDB/databaseAccounts/readMetadata',
        'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read', `
        'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery', `
        'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed') `
    -AssignableScope "/"

Buat peran bernama MyReadWriteRole yang berisi semua tindakan:

New-AzCosmosDBSqlRoleDefinition -AccountName $accountName `
    -ResourceGroupName $resourceGroupName `
    -Type CustomRole -RoleName MyReadWriteRole `
    -DataAction @( `
        'Microsoft.DocumentDB/databaseAccounts/readMetadata',
        'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*', `
        'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*') `
    -AssignableScope "/"

Cantumkan definisi peran yang telah Anda buat untuk mengambil data ID:

Get-AzCosmosDBSqlRoleDefinition -AccountName $accountName `
    -ResourceGroupName $resourceGroupName
RoleName         : MyReadWriteRole
Id               : /subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAcc
                   ounts/<myCosmosAccount>/sqlRoleDefinitions/<roleDefinitionId>
Type             : CustomRole
Permissions      : {Microsoft.Azure.Management.CosmosDB.Models.Permission}
AssignableScopes : {/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAc
                   counts/<myCosmosAccount>}

RoleName         : MyReadOnlyRole
Id               : /subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAcc
                   ounts/<myCosmosAccount>/sqlRoleDefinitions/<roleDefinitionId>
Type             : CustomRole
Permissions      : {Microsoft.Azure.Management.CosmosDB.Models.Permission}
AssignableScopes : {/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAc
                   counts/<myCosmosAccount>}

Menggunakan Cli Azure

Buat peran bernama MyReadOnlyRole yang hanya berisi tindakan baca dalam file bernama role-definition-ro.json:

{
    "RoleName": "MyReadOnlyRole",
    "Type": "CustomRole",
    "AssignableScopes": ["/"],
    "Permissions": [{
        "DataActions": [
            "Microsoft.DocumentDB/databaseAccounts/readMetadata",
            "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read",
            "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery",
            "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed"
        ]
    }]
}
resourceGroupName='<myResourceGroup>'
accountName='<myCosmosAccount>'
az cosmosdb sql role definition create --account-name $accountName --resource-group $resourceGroupName --body @role-definition-ro.json

Buat peran bernama MyReadWriteRole yang berisi semua tindakan dalam file bernama role-definition-rw.json:

{
    "RoleName": "MyReadWriteRole",
    "Type": "CustomRole",
    "AssignableScopes": ["/"],
    "Permissions": [{
        "DataActions": [
            "Microsoft.DocumentDB/databaseAccounts/readMetadata",
            "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*",
            "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*"
        ]
    }]
}
az cosmosdb sql role definition create --account-name $accountName --resource-group $resourceGroupName --body @role-definition-rw.json

Cantumkan definisi peran yang telah Anda buat untuk mengambil data ID:

az cosmosdb sql role definition list --account-name $accountName --resource-group $resourceGroupName
[
  {
    "assignableScopes": [
      "/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAccounts/<myCosmosAccount>"
    ],
    "id": "/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAccounts/<myCosmosAccount>/sqlRoleDefinitions/<roleDefinitionId>",
    "name": "<roleDefinitionId>",
    "permissions": [
      {
        "dataActions": [
          "Microsoft.DocumentDB/databaseAccounts/readMetadata",
          "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*",
          "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*"
        ],
        "notDataActions": []
      }
    ],
    "resourceGroup": "<myResourceGroup>",
    "roleName": "MyReadWriteRole",
    "sqlRoleDefinitionGetResultsType": "CustomRole",
    "type": "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions"
  },
  {
    "assignableScopes": [
      "/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAccounts/<myCosmosAccount>"
    ],
    "id": "/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAccounts/<myCosmosAccount>/sqlRoleDefinitions/<roleDefinitionId>",
    "name": "<roleDefinitionId>",
    "permissions": [
      {
        "dataActions": [
          "Microsoft.DocumentDB/databaseAccounts/readMetadata",
          "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read",
          "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery",
          "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed"
        ],
        "notDataActions": []
      }
    ],
    "resourceGroup": "<myResourceGroup>",
    "roleName": "MyReadOnlyRole",
    "sqlRoleDefinitionGetResultsType": "CustomRole",
    "type": "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions"
  }
]

Menggunakan templat Azure Resource Manager

Untuk referensi dan contoh penggunaan template Azure Resource Manager untuk membuat definisi peran, lihat Microsoft.DocumentDB databaseAccounts/sqlRoleDefinitions.

Membuat penetapan peran

Anda dapat mengaitkan definisi peran bawaan atau kustom dengan identitas Microsoft Entra Anda. Saat membuat tugas peran, Anda perlu menyediakan:

  • Nama akun Azure Cosmos DB Anda.

  • Grup sumber daya yang berisi akun Anda.

  • ID definisi peran yang akan ditetapkan.

  • ID utama identitas yang harus ditetapkan oleh definisi peran.

  • Ruang lingkup penetapan peran; lingkup yang didukung adalah:

    • / (tingkat akun)
    • /dbs/<database-name> (tingkat database)
    • /dbs/<database-name>/colls/<container-name> (tingkat kontainer)

    Lingkup harus cocok atau menjadi sublingkup dari salah satu lingkup yang dapat ditetapkan definisi peran.

Catatan

Jika Anda ingin membuat penetapan peran untuk perwakilan layanan, pastikan untuk menggunakan ID Objek seperti yang ditemukan di bagian Aplikasi perusahaan dari bilah portal ID Microsoft Entra.

Catatan

Operasi yang dijelaskan tersedia di:

Menggunakan Azure PowerShell

Tetapkan peran ke identitas:

$resourceGroupName = "<myResourceGroup>"
$accountName = "<myCosmosAccount>"
$readOnlyRoleDefinitionId = "<roleDefinitionId>" # as fetched above
# For Service Principals make sure to use the Object ID as found in the Enterprise applications section of the Azure Active Directory portal blade.
$principalId = "<aadPrincipalId>"
New-AzCosmosDBSqlRoleAssignment -AccountName $accountName `
    -ResourceGroupName $resourceGroupName `
    -RoleDefinitionId $readOnlyRoleDefinitionId `
    -Scope "/" `
    -PrincipalId $principalId

Menggunakan Cli Azure

Tetapkan peran ke identitas:

resourceGroupName='<myResourceGroup>'
accountName='<myCosmosAccount>'
readOnlyRoleDefinitionId='<roleDefinitionId>' # as fetched above
# For Service Principals make sure to use the Object ID as found in the Enterprise applications section of the Azure Active Directory portal blade.
principalId='<aadPrincipalId>'
az cosmosdb sql role assignment create --account-name $accountName --resource-group $resourceGroupName --scope "/" --principal-id $principalId --role-definition-id $readOnlyRoleDefinitionId

Menggunakan templat Bicep/Azure Resource Manager

Untuk penetapan bawaan menggunakan templat Bicep:

resource sqlRoleAssignment 'Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments@2023-04-15' = {
  name: guid(<roleDefinitionId>, <aadPrincipalId>, <databaseAccountResourceId>)
  parent: databaseAccount
  properties:{
    principalId: <aadPrincipalId>
    roleDefinitionId: '/${subscription().id}/resourceGroups/<databaseAccountResourceGroup>/providers/Microsoft.DocumentDB/databaseAccounts/<myCosmosAccount>/sqlRoleDefinitions/<roleDefinitionId>'
    scope: <databaseAccountResourceId>
  }
}

Untuk referensi dan contoh penggunaan template Azure Resource Manager untuk membuat penetapan peran, lihat Microsoft.DocumentDB databaseAccounts/sqlRoleAssignments.

Menginisialisasi SDK dengan ID Microsoft Entra

Untuk menggunakan kontrol akses berbasis peran Azure Cosmos DB di aplikasi Anda, Anda harus memperbarui cara Menginisialisasi Azure Cosmos DB SDK. Alih-alih melewati kunci utama akun Anda, Anda harus melewati instans kelas TokenCredential. Instans ini menyediakan Azure Cosmos DB SDK dengan konteks yang diperlukan untuk mengambil token Microsoft Entra atas nama identitas yang ingin Anda gunakan.

Cara Anda membuat instans TokenCredential berada di luar lingkup artikel ini. Ada banyak cara untuk membuat instans tersebut tergantung pada jenis identitas Microsoft Entra yang ingin Anda gunakan (prinsipal pengguna, perwakilan layanan, grup, dll.). Yang paling penting, instans TokenCredential Anda harus menyelesaikan identitas (ID utama) yang telah Anda tetapkan peran Anda. Anda dapat menemukan contoh pembuatan kelas TokenCredential:

Contoh berikut menggunakan perwakilan layanan dengan ClientSecretCredential instans.

Di .NET

Kontrol akses berbasis peran Azure Cosmos DB saat ini didukung di .NET SDK V3.

TokenCredential servicePrincipal = new ClientSecretCredential(
    "<azure-ad-tenant-id>",
    "<client-application-id>",
    "<client-application-secret>");
CosmosClient client = new CosmosClient("<account-endpoint>", servicePrincipal);

Di Java

Kontrol akses berbasis peran Azure Cosmos DB saat ini didukung di Java SDK V4.

TokenCredential ServicePrincipal = new ClientSecretCredentialBuilder()
    .authorityHost("https://login.microsoftonline.com")
    .tenantId("<azure-ad-tenant-id>")
    .clientId("<client-application-id>")
    .clientSecret("<client-application-secret>")
    .build();
CosmosAsyncClient Client = new CosmosClientBuilder()
    .endpoint("<account-endpoint>")
    .credential(ServicePrincipal)
    .build();

Di JavaScript

Kontrol akses berbasis peran Azure Cosmos DB saat ini didukung di JavaScript SDK V3.

const servicePrincipal = new ClientSecretCredential(
    "<azure-ad-tenant-id>",
    "<client-application-id>",
    "<client-application-secret>");
const client = new CosmosClient({
    endpoint: "<account-endpoint>",
    aadCredentials: servicePrincipal
});

Di Python

Kontrol akses berbasis peran Azure Cosmos DB didukung dalam Python SDK versi 4.3.0b4 dan yang lebih tinggi.

aad_credentials = ClientSecretCredential(
    tenant_id="<azure-ad-tenant-id>",
    client_id="<client-application-id>",
    client_secret="<client-application-secret>")
client = CosmosClient("<account-endpoint>", aad_credentials)

Mengautentikasi permintaan pada REST API

Saat membuat header otorisasi REST API, atur parameter jenis ke ID Microsoft Entra dan tanda tangan hash (sig) ke token OAuth seperti yang ditunjukkan dalam contoh berikut:

type=aad&ver=1.0&sig=<token-from-oauth>

Menggunakan penjelajah data

Catatan

Penjelajah data yang diekspos dalam portal Azure belum mendukung kontrol akses berbasis peran Azure Cosmos DB. Untuk menggunakan identitas Microsoft Entra saat menjelajahi data, Anda harus menggunakan Azure Cosmos DB Explorer sebagai gantinya.

Saat Anda mengakses dan masuk ke Azure Cosmos DB Explorer dengan parameter kueri ?feature.enableAadDataPlane=true yang spesifik, logika berikut akan digunakan untuk mengakses data Anda:

  1. Permintaan untuk mengambil kunci primer akun dicoba atas nama identitas yang masuk. Jika permintaan ini berhasil, kunci primer akan digunakan untuk mengakses data akun.
  2. Jika identitas yang masuk tidak diizinkan untuk mengambil kunci primer akun, identitas ini akan langsung digunakan untuk mengautentikasi akses data. Dalam mode ini, identitas Anda harus ditetapkan dengan definisi peran yang tepat untuk memastikan akses data.

Permintaan data audit

Log diagnostik ditambah dengan informasi identitas dan otorisasi untuk setiap operasi data saat menggunakan kontrol akses berbasis peran Azure Cosmos DB. Augmentasi ini memungkinkan Anda melakukan audit terperinci dan mengambil identitas Microsoft Entra yang digunakan untuk setiap permintaan data yang dikirim ke akun Azure Cosmos DB Anda.

Informasi tambahan ini mengalir dalam kategori log DataPlaneRequests dan terdiri dari dua kolom tambahan:

  • aadPrincipalId_g memperlihatkan ID utama identitas Microsoft Entra yang digunakan untuk mengautentikasi permintaan.
  • aadAppliedRoleAssignmentId_g menunjukkan tugas peran yang diutamakan saat mengotorisasi permintaan.

Memberlakukan kontrol akses berbasis peran sebagai satu-satunya metode autentikasi

Dalam situasi di mana Anda ingin memaksa klien untuk terhubung ke Azure Cosmos DB melalui kontrol akses berbasis peran secara eksklusif, Anda dapat menonaktifkan kunci primer/sekunder akun. Saat melakukannya, permintaan masuk apa pun yang menggunakan kunci primer/sekunder atau token sumber daya secara aktif ditolak.

Menggunakan templat Azure Resource Manager

Saat membuat atau memperbarui akun Azure Cosmos DB Anda menggunakan templat Azure Resource Manager, atur properti disableLocalAuth ke true:

"resources": [
    {
        "type": " Microsoft.DocumentDB/databaseAccounts",
        "properties": {
            "disableLocalAuth": true,
            // ...
        },
        // ...
    },
    // ...
 ]

Batas

  • Anda dapat membuat hingga 100 definisi peran dan 2.000 penetapan peran per akun Azure Cosmos DB.
  • Anda hanya dapat menetapkan definisi peran ke identitas Microsoft Entra milik penyewa Microsoft Entra yang sama dengan akun Azure Cosmos DB Anda.
  • Resolusi grup Microsoft Entra saat ini tidak didukung untuk identitas yang termasuk dalam lebih dari 200 grup.
  • Token Microsoft Entra saat ini diteruskan sebagai header dengan setiap permintaan individu yang dikirim ke layanan Azure Cosmos DB, meningkatkan ukuran payload keseluruhan.

Tanya jawab

Bagian ini mencakup tanya jawab umum tentang kontrol akses berbasis peran dan Azure Cosmos DB.

API Azure Cosmos DB mana yang mendukung kontrol akses berbasis peran bidang data?

Pada saat ini, hanya API NoSQL yang didukung.

Apakah mungkin untuk mengelola definisi peran dan penetapan peran dari portal Microsoft Azure?

portal Azure dukungan untuk manajemen peran belum tersedia.

SDK mana di Azure Cosmos DB API untuk NoSQL yang mendukung kontrol akses berbasis peran?

SDK .NET V3, Java V4, JavaScript V3, dan Python V4.3+ saat ini didukung.

Apakah token Microsoft Entra disegarkan secara otomatis oleh Azure Cosmos DB SDK saat kedaluwarsa?

Ya.

Apakah mungkin untuk menonaktifkan penggunaan kunci primer/sekunder akun saat menggunakan kontrol akses berbasis peran?

Ya, lihat Memberlakukan kontrol akses berbasis peran sebagai satu-satunya metode autentikasi.

Langkah berikutnya