Configurare il controllo degli accessi in base al ruolo con Microsoft Entra ID per l'account Azure Cosmos DB

SI APPLICA A: NoSQL

Nota

Questo articolo descrive il controllo degli accessi in base al ruolo per le operazioni del piano dati in Azure Cosmos DB. Se si usano operazioni del piano di gestione, vedere l'articolo sul controllo degli accessi in base al ruolo applicato alle operazioni del piano di gestione.

Azure Cosmos DB espone un sistema di controllo degli accessi in base al ruolo predefinito che consente di:

  • Autenticare le richieste di dati con un'identità di Microsoft Entra.
  • Autorizzare le richieste di dati con un modello di autorizzazione basato su ruoli con granularità fine.

Concetti

Il controllo degli accessi in base al ruolo del piano dati di Azure Cosmos DB si basa sui concetti comunemente disponibili in altri sistemi di controllo degli accessi in base al ruolo, ad esempio il controllo degli accessi in base al ruolo di Azure:

  • Il modello di autorizzazione è costituito da un set di azioni, ognuna delle quali è mappata a una o più operazioni di database. Alcuni esempi di azioni includono la lettura di un elemento, la scrittura di un elemento o l'esecuzione di una query.
  • Gli utenti di Azure Cosmos DB creano definizioni del ruolo contenenti un elenco di azioni consentite.
  • Le definizioni dei ruoli vengono assegnate a identità specifiche di Microsoft Entra tramite assegnazioni di ruolo. Un'assegnazione di ruolo definisce anche l'ambito a cui si applica la definizione di ruolo. Sono attualmente disponibili tre ambiti:
    • Un account Azure Cosmos DB.
    • Un database Azure Cosmos DB.
    • Un contenitore Azure Cosmos DB.

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

Modello di autorizzazione

Importante

Questo modello di autorizzazione copre solo le operazioni di database che comportano la lettura e la scrittura di dati. Non copre alcun tipo di operazioni di gestione sulle risorse di gestione, tra cui:

  • Creazione/sostituzione/eliminazione del database
  • Creazione/sostituzione/eliminazione del contenitore
  • Velocità effettiva di lettura/sostituzione del contenitore
  • Creazione/sostituzione/eliminazione/lettura delle stored procedure
  • Creazione/sostituzione/eliminazione/lettura dei trigger
  • Creazione/sostituzione/eliminazione/lettura delle funzioni definite dall'utente

Non è possibile usare l'SDK del piano dati di Azure Cosmos DB per autenticare le operazioni di gestione con un'identità Microsoft Entra. È invece necessario usare il controllo degli accessi in base al ruolo di Azure tramite una delle opzioni seguenti:

La lettura del database e la lettura del contenitore sono considerate richieste di metadati. L'accesso a queste operazioni può essere concesso come indicato nella sezione seguente.

Questa tabella elenca tutte le azioni esposte dal modello di autorizzazione.

Nome Operazioni di database corrispondenti
Microsoft.DocumentDB/databaseAccounts/readMetadata Leggere i metadati dell'account. Per informazioni dettagliate, vedere Richieste di metadati.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/create Creare un nuovo elemento.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read Leggere un singolo elemento in base all'ID e alla chiave di partizione (lettura di punti).
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/replace Sostituire un elemento esistente.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/upsert Eseguire l'upsert di un elemento. Questa operazione crea un elemento se ne non esiste già uno o in sostituzione dell'elemento se invece è presente.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/delete Eliminare un elemento.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery Eseguire una query SQL.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed Lettura dal feed di modifiche del contenitore. Eseguire query SQL usando gli SDK.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeStoredProcedure Eseguire una stored procedure.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/manageConflicts Gestire i conflitti per gli account dell'area di scrittura multipla, ovvero elencare ed eliminare elementi dal feed dei conflitti.

Nota

Quando si eseguono query tramite gli SDK, sono necessarie entrambe le autorizzazioni Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery e Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed.

I caratteri jolly sono supportati a livello sia di contenitori che di elementi:

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

Richieste di metadati

Gli SDK di Azure Cosmos DB generano richieste di metadati di sola lettura durante l'inizializzazione e per gestire richieste di dati specifiche. Queste richieste recuperano vari dettagli di configurazione, ad esempio:

  • La configurazione globale dell'account, che include le aree di Azure in cui è disponibile l'account.
  • La chiave di partizione dei contenitori o dei relativi criteri di indicizzazione.
  • L'elenco di partizioni fisiche che costituiscono un contenitore e i relativi indirizzi.

Non recuperano i dati archiviati nell'account.

Per garantire la migliore trasparenza del modello di autorizzazione, queste richieste di metadati sono coperte in modo esplicito dall'azione Microsoft.DocumentDB/databaseAccounts/readMetadata. Questa azione deve essere consentita in ogni situazione in cui si accede all'account Azure Cosmos DB tramite uno degli SDK di Azure Cosmos DB. Può essere assegnata (tramite un'assegnazione di ruolo) a qualsiasi livello della gerarchia di Azure Cosmos DB, ovvero account, database o contenitore.

Le richieste di metadati effettive consentite dall'azione Microsoft.DocumentDB/databaseAccounts/readMetadata dipendono dall'ambito a cui è assegnata l'azione:

Scope Richieste consentite dall'azione
Conto • Creazione dell'elenco dei database nell'account
• Per ogni database nell'account, le azioni consentite nell'ambito del database
Database • Lettura di metadati del database
• Creazione dell'elenco dei contenitori nel database
• Per ogni contenitore nel database, le azioni consentite nell'ambito del contenitore
Contenitore • Lettura dei metadati del contenitore
• Creazione dell'elenco delle partizioni fisiche nel contenitore
• Risoluzione dell'indirizzo di ogni partizione fisica

Importante

La velocità effettiva non è inclusa nei metadati per questa azione.

Definizioni di ruolo predefinite

Azure Cosmos DB espone due definizioni del ruolo predefinito:

Importante

Il termine definizioni del ruolo qui si riferisce alle definizioni del ruolo specifiche di Azure Cosmos DB. Sono diverse dalle definizioni del ruolo del controllo degli accessi in base al ruolo di Azure.

ID Nome Azioni incluse
00000000-0000-0000-0000-000000000001 Lettore dati predefinito di 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 Collaboratore dati predefinito di Cosmos DB Microsoft.DocumentDB/databaseAccounts/readMetadata
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*

Creare definizioni del ruolo personalizzate

Quando si crea una definizione di ruolo personalizzata, è necessario specificare:

  • Nome dell'account Azure Cosmos DB.
  • Gruppo di risorse che contiene l'account.
  • Tipo della definizione di ruolo: CustomRole.
  • Nome della definizione di ruolo.
  • Elenco di azioni che si desidera consentire al ruolo.
  • Uno o più ambiti a cui è possibile assegnare la definizione di ruolo. Gli ambiti supportati sono:
    • / (a livello di account)
    • /dbs/<database-name> (a livello di database)
    • /dbs/<database-name>/colls/<container-name> (a livello di contenitore).

Nota

Le operazioni descritte sono disponibili in:

Uso di Azure PowerShell

Creare un ruolo denominato MyReadOnlyRole che contiene solo azioni di lettura:

$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 "/"

Creare un ruolo denominato MyReadWriteRole che contiene tutte le azioni:

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 "/"

Elencare le definizioni del ruolo create per recuperare gli 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>}

Con l'interfaccia della riga di comando di Azure

Creare un ruolo denominato MyReadOnlyRole che contiene solo azioni di lettura in un file denominato 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

Creare un ruolo denominato MyReadWriteRole che contiene tutte le azioni in un file denominato 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

Elencare le definizioni del ruolo create per recuperare gli 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"
  }
]

Uso di modelli di Azure Resource Manager

Per informazioni di riferimento ed esempi sull'uso dei modelli di Azure Resource Manager per creare definizioni del ruolo, vedere Microsoft.DocumentDB databaseAccounts/sqlRoleDefinitions.

Creare assegnazioni di ruolo

È possibile associare definizioni del ruolo predefinite o personalizzate alle identità di Microsoft Entra. Quando si crea un'assegnazione di ruolo, è necessario specificare:

  • Nome dell'account Azure Cosmos DB.

  • Gruppo di risorse che contiene l'account.

  • ID della definizione di ruolo da assegnare.

  • ID entità di sicurezza dell'identità a cui deve essere assegnata la definizione di ruolo.

  • Ambito dell'assegnazione di ruolo. Gli ambiti supportati sono:

    • / (a livello di account)
    • /dbs/<database-name> (a livello di database)
    • /dbs/<database-name>/colls/<container-name> (a livello di contenitore)

    L'ambito deve corrispondere o essere uno degli ambiti secondari di uno degli ambiti assegnabili della definizione di ruolo.

Nota

Se si vuole creare un'assegnazione di ruolo per un'entità servizio, assicurarsi di usare il relativo ID oggetto, come illustrato nella sezione Applicazioni aziendali del riquadro del portale Microsoft Entra ID.

Nota

Le operazioni descritte sono disponibili in:

Uso di Azure PowerShell

Assegnare un ruolo a un'identità:

$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

Con l'interfaccia della riga di comando di Azure

Assegnare un ruolo a un'identità:

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

Uso dei modelli di Bicep/Azure Resource Manager

Per un'assegnazione predefinita usando un modello 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>
  }
}

Per informazioni di riferimento ed esempi sull'uso dei modelli di Azure Resource Manager per creare assegnazioni di ruoli, vedere Microsoft.DocumentDB databaseAccounts/sqlRoleAssignments.

Inizializzare l'SDK con Microsoft Entra ID

Per usare il controllo degli accessi in base al ruolo di Azure Cosmos DB nell'applicazione, è necessario aggiornare la modalità di inizializzazione di Azure Cosmos DB SDK. Anziché passare la chiave primaria dell'account, è necessario passare un'istanza di una classe TokenCredential. Questa istanza fornisce all'SDK di Azure Cosmos DB il contesto necessario per recuperare un token Microsoft Entra per conto dell'identità da usare.

Il modo in cui si crea un'istanza TokenCredential non rientra nell'ambito di questo articolo. Esistono molti modi per creare un'istanza di questo tipo a seconda del tipo di identità di Microsoft Entra che si vuole usare (entità utente, entità servizio, gruppo e così via). L'istanza TokenCredential deve soprattutto risolvere l'identità (ID entità) a cui sono stati assegnati i ruoli. È possibile trovare esempi di creazione di una classe TokenCredential:

Negli esempi seguenti viene usata un'entità servizio con un'istanza ClientSecretCredential.

In .NET

Il controllo degli accessi in base al ruolo di Azure Cosmos DB è attualmente supportato in .NET SDK V3.

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

In Java

Il controllo degli accessi in base al ruolo di Azure Cosmos DB è attualmente supportato in 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();

In JavaScript

Il controllo degli accessi in base al ruolo di Azure Cosmos DB è attualmente supportato in 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
});

In Python

Il controllo degli accessi in base al ruolo di Azure Cosmos DB è supportato in Python SDK 4.3.0b4 e versioni successive.

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)

Autenticare le richieste nell'API REST

Quando si costruisce l'intestazione di autorizzazione dell'API REST, impostare il parametro type su Microsoft Entra ID e la firma hash (sig) sul token OAuth, come illustrato nell'esempio seguente:

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

Usare esplora dati

Nota

Esplora dati esposto nel portale di Azure non supporta ancora il controllo degli accessi in base al ruolo di Azure Cosmos DB. Per usare l'identità di Microsoft Entra durante l'esplorazione dei dati, è necessario usare invece Azure Cosmos DB Explorer.

Quando si accede ad Azure Cosmos DB Explorer con il parametro di query specifico ?feature.enableAadDataPlane=true e si esegue l'accesso, viene usata la logica seguente per accedere ai dati:

  1. Viene tentata una richiesta di recupero della chiave primaria dell'account per conto dell'identità che ha eseguito l'accesso. Se la richiesta ha esito positivo, la chiave primaria viene usata per accedere ai dati dell'account.
  2. Se l'identità che ha eseguito l'accesso non è autorizzata a recuperare la chiave primaria dell'account, questa identità viene usata direttamente per autenticare l'accesso ai dati. In questa modalità, l'identità deve essere assegnata con definizioni del ruolo appropriate per garantire l'accesso ai dati.

Controllare le richieste di dati

I log di diagnostica vengono estesi con informazioni sull'identità e sull'autorizzazione per ogni operazione sui dati quando si usa il controllo degli accessi in base al ruolo di Azure Cosmos DB. Questa estensione consente di eseguire il controllo dettagliato e recuperare l'identità di Microsoft Entra usata per ogni richiesta di dati inviata all'account Azure Cosmos DB.

Queste informazioni aggiuntive vengono trasmesse alla categoria DataPlaneRequests del log e sono costituite da due colonne aggiuntive:

  • aadPrincipalId_g mostra l'ID entità di sicurezza dell'identità di Microsoft Entra usata per autenticare la richiesta.
  • aadAppliedRoleAssignmentId_g mostra l'assegnazione di ruolo che è stata considerata durante l'autorizzazione della richiesta.

Applicazione del controllo degli accessi in base al ruolo come unico metodo di autenticazione

In situazioni in cui si vuole forzare la connessione dei client ad Azure Cosmos DB esclusivamente tramite il controllo degli accessi in base al ruolo, è possibile disabilitare le chiavi primarie/secondarie dell'account. In questo caso, qualsiasi richiesta in ingresso che usa una chiave primaria/secondaria o un token di risorsa viene rifiutata attivamente.

Usare i modelli di Azure Resource Manager

Quando si crea o si aggiorna l'account Azure Cosmos DB usando i modelli di Azure Resource Manager, impostare la proprietà disableLocalAuth su true:

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

Limiti

  • È possibile creare fino a 100 definizioni di ruolo e 2.000 assegnazioni di ruolo per ogni account Azure Cosmos DB.
  • È possibile assegnare solo definizioni di ruolo alle identità di Microsoft Entra appartenenti allo stesso tenant Microsoft Entra dell'account Azure Cosmos DB.
  • La risoluzione dei gruppi di Microsoft Entra non è attualmente supportata per le identità che appartengono a più di 200 gruppi.
  • Il token di Microsoft Entra viene attualmente passato come intestazione con ogni singola richiesta inviata al servizio Azure Cosmos DB, aumentando quindi le dimensioni complessive del payload.

Domande frequenti

Questa sezione include domande frequenti sul controllo degli accessi in base al ruolo e su Azure Cosmos DB.

Quali API di Azure Cosmos DB supportano il controllo degli accessi in base al ruolo del piano dati?

A partire da ora, è supportata solo l'API NoSQL.

È possibile gestire le definizioni e le assegnazioni di ruolo nel portale di Azure?

Il supporto del portale di Azure per la gestione dei ruoli non è ancora disponibile.

Quali SDK nell'API di Azure Cosmos DB per NoSQL supportano il controllo degli accessi in base al ruolo?

Sono attualmente supportati gli SDK .NET V3, Java V4, JavaScript V3 E Python V4.3+.

Il token di Microsoft Entra viene aggiornato automaticamente dagli SDK di Azure Cosmos DB quando scade?

Sì.

È possibile disabilitare l'utilizzo delle chiavi primarie/secondarie dell'account quando si usa il controllo degli accessi in base al ruolo?

Sì, vedere Applicazione del controllo degli accessi in base al ruolo come unico metodo di autenticazione.

Passaggi successivi