Op rollen gebaseerd toegangsbeheer configureren met Microsoft Entra ID voor uw Azure Cosmos DB-account

VAN TOEPASSING OP: NoSQL

Notitie

Dit artikel gaat over op rollen gebaseerd toegangsbeheer voor gegevensvlakbewerkingen in Azure Cosmos DB. Als u beheervlakbewerkingen gebruikt, raadpleegt u op rollen gebaseerd toegangsbeheer dat is toegepast op het artikel bewerkingen van het beheervlak.

Azure Cosmos DB maakt een ingebouwd op rollen gebaseerd toegangsbeheersysteem beschikbaar waarmee u het volgende kunt doen:

  • Verifieer uw gegevensaanvragen met een Microsoft Entra-identiteit.
  • Autoriseren van uw gegevensaanvragen met een gedetailleerd machtigingsmodel op basis van rollen.

Concepten

Het op rollen gebaseerd toegangsbeheer van Azure Cosmos DB is gebaseerd op concepten die vaak worden gevonden in andere op rollen gebaseerde toegangsbeheersystemen, zoals op rollen gebaseerd toegangsbeheer van Azure:

  • Het machtigingsmodel bestaat uit een set acties. Elk van deze acties wordt toegewezen aan een of meer databasebewerkingen. Enkele voorbeelden van acties zijn het lezen van een item, het schrijven van een item of het uitvoeren van een query.
  • Azure Cosmos DB-gebruikers maken roldefinities met een lijst met toegestane acties.
  • Roldefinities worden toegewezen aan specifieke Microsoft Entra-identiteiten via roltoewijzingen. Een roltoewijzing definieert ook het bereik waarop de roldefinitie van toepassing is; momenteel zijn er drie bereiken:
    • Een Azure Cosmos DB-account,
    • Een Azure Cosmos DB-database,
    • Een Azure Cosmos DB-container.

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

Machtigingsmodel

Belangrijk

Dit machtigingsmodel omvat alleen databasebewerkingen die betrekking hebben op het lezen en schrijven van gegevens. Het omvat geen enkele vorm van beheerbewerkingen op beheerresources, waaronder:

  • Database maken/vervangen/verwijderen
  • Container maken/vervangen/verwijderen
  • Containerdoorvoer lezen/vervangen
  • Opgeslagen procedures maken/vervangen/verwijderen/lezen
  • Triggers maken/vervangen/verwijderen/lezen
  • Door de gebruiker gedefinieerde functies maken/vervangen/verwijderen/lezen

U kunt geen Azure Cosmos DB-gegevensvlak-SDK gebruiken om beheerbewerkingen te verifiëren met een Microsoft Entra-identiteit. In plaats daarvan moet u op rollen gebaseerd toegangsbeheer van Azure gebruiken via een van de volgende opties:

Leesdatabase en leescontainer worden beschouwd als metagegevensaanvragen. Toegang tot deze bewerkingen kan worden verleend zoals vermeld in de volgende sectie.

Deze tabel bevat alle acties die worden weergegeven door het machtigingsmodel.

Naam Bijbehorende databasebewerking(en)
Microsoft.DocumentDB/databaseAccounts/readMetadata Accountmetagegevens lezen. Zie metagegevensaanvragen voor meer informatie.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/create Maak een nieuw item.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read Een afzonderlijk item lezen op basis van de id en partitiesleutel (punt-lezen).
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/replace Een bestaand item vervangen.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/upsert 'Upsert' een item. Met deze bewerking wordt een item gemaakt als het nog niet bestaat of als het item wel bestaat.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/delete Een item verwijderen.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery Voer een SQL-query uit.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed Lezen uit de wijzigingenfeed van de container. VOER SQL-query's uit met behulp van de SDK's.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeStoredProcedure Voer een opgeslagen procedure uit.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/manageConflicts Beheer conflicten voor accounts met meerdere schrijfregio's (dat wil gezegd items uit de conflictfeed weergeven en verwijderen).

Notitie

Bij het uitvoeren van query's via de SDK's zijn beide Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery en Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed machtigingen vereist.

Jokertekens worden ondersteund op zowel containers als items :

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

Metagegevensaanvragen

De Azure Cosmos DB SDK's geven alleen-lezen metagegevensaanvragen uit tijdens de initialisatie en om specifieke gegevensaanvragen te verwerken. Met deze aanvragen worden verschillende configuratiegegevens opgehaald, zoals:

  • De globale configuratie van uw account, waaronder de Azure-regio's waarin het account beschikbaar is.
  • De partitiesleutel van uw containers of hun indexeringsbeleid.
  • De lijst met fysieke partities die een container en hun adressen maken.

Ze halen geen gegevens op die u in uw account hebt opgeslagen.

Om de beste transparantie van ons machtigingsmodel te garanderen, worden deze metagegevensaanvragen expliciet gedekt door de Microsoft.DocumentDB/databaseAccounts/readMetadata actie. Deze actie moet worden toegestaan in elke situatie waarin uw Azure Cosmos DB-account wordt geopend via een van de Azure Cosmos DB SDK's. Het kan worden toegewezen (via een roltoewijzing) op elk niveau in de Azure Cosmos DB-hiërarchie (dat wil gezegd, account, database of container).

De werkelijke metagegevensaanvragen die door de Microsoft.DocumentDB/databaseAccounts/readMetadata actie zijn toegestaan, zijn afhankelijk van het bereik waaraan de actie is toegewezen:

Bereik Aanvragen die zijn toegestaan door de actie
Rekening • De databases onder het account weergeven
• Voor elke database onder het account zijn de toegestane acties binnen het databasebereik
Database • Databasemetagegevens lezen
• De containers onder de database weergeven
• Voor elke container onder de database zijn de toegestane acties in het containerbereik
Container • Metagegevens van containers lezen
• Fysieke partities onder de container weergeven
• Het adres van elke fysieke partitie oplossen

Belangrijk

Doorvoer is niet opgenomen in de metagegevens voor deze actie.

Ingebouwde roldefinities

Azure Cosmos DB biedt twee ingebouwde roldefinities:

Belangrijk

De termenroldefinities hier verwijzen naar specifieke Azure Cosmos DB-roldefinities. Deze verschillen van azure-roldefinities voor op rollen gebaseerd toegangsbeheer.

Id Naam Opgenomen acties
00000000-0000-0000-0000-000000000001 Ingebouwde gegevenslezer van 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 Inzender voor ingebouwde Cosmos DB-gegevens Microsoft.DocumentDB/databaseAccounts/readMetadata
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*

Aangepaste roldefinities maken

Wanneer u een aangepaste roldefinitie maakt, moet u het volgende opgeven:

  • De naam van uw Azure Cosmos DB-account.
  • De resourcegroep met uw account.
  • Het type roldefinitie: CustomRole.
  • De naam van de roldefinitie.
  • Een lijst met acties die u wilt toestaan voor de rol.
  • Een of meer bereiken waarop de roldefinitie kan worden toegewezen; ondersteunde bereiken zijn:
    • / (accountniveau),
    • /dbs/<database-name> (databaseniveau),
    • /dbs/<database-name>/colls/<container-name> (containerniveau).

Notitie

De beschreven bewerkingen zijn beschikbaar in:

Azure PowerShell gebruiken

Maak een rol met de naam MyReadOnlyRole die alleen leesacties bevat:

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

Maak een rol met de naam MyReadWriteRole die alle acties bevat:

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

Vermeld de roldefinities die u hebt gemaakt om hun id's op te halen:

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>}

Met behulp van de Azure CLI

Maak een rol met de naam MyReadOnlyRole die alleen leesacties bevat in een bestand met de naam 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

Maak een rol met de naam MyReadWriteRole die alle acties in een bestand met de naam role-definition-rw.json bevat:

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

Vermeld de roldefinities die u hebt gemaakt om hun id's op te halen:

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

Azure Resource Manager-sjablonen gebruiken

Zie voor een naslaginformatie en voorbeelden van het gebruik van Azure Resource Manager-sjablonen voor het maken van roldefinities Microsoft.DocumentDB databaseAccounts/sqlRoleDefinitions.

Maak roltoewijzingen

U kunt ingebouwde of aangepaste roldefinities koppelen aan uw Microsoft Entra-identiteiten. Wanneer u een roltoewijzing maakt, moet u het volgende opgeven:

  • De naam van uw Azure Cosmos DB-account.

  • De resourcegroep met uw account.

  • De id van de roldefinitie die moet worden toegewezen.

  • De principal-id van de identiteit waaraan de roldefinitie moet worden toegewezen.

  • Het bereik van de roltoewijzing; ondersteunde bereiken zijn:

    • / (accountniveau)
    • /dbs/<database-name> (databaseniveau)
    • /dbs/<database-name>/colls/<container-name> (containerniveau)

    Het bereik moet overeenkomen of een subscope zijn van een van de toewijsbare bereiken van de roldefinitie.

Notitie

Als u een roltoewijzing wilt maken voor een service-principal, moet u de bijbehorende object-id gebruiken, zoals te vinden is in de sectie Bedrijfstoepassingen van de portalblade Microsoft Entra-id.

Notitie

De beschreven bewerkingen zijn beschikbaar in:

Azure PowerShell gebruiken

Een rol toewijzen aan een identiteit:

$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

Met behulp van de Azure CLI

Een rol toewijzen aan een identiteit:

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

Bicep-/Azure Resource Manager-sjablonen gebruiken

Voor een ingebouwde toewijzing met behulp van een Bicep-sjabloon:

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>
  }
}

Zie voor een naslaginformatie en voorbeelden van het gebruik van Azure Resource Manager-sjablonen voor het maken van roltoewijzingen Microsoft.DocumentDB databaseAccounts/sqlRoleAssignments.

De SDK initialiseren met Microsoft Entra-id

Als u het op rollen gebaseerde toegangsbeheer van Azure Cosmos DB in uw toepassing wilt gebruiken, moet u de manier bijwerken waarop u de Azure Cosmos DB SDK initialiseert. In plaats van de primaire sleutel van uw account door te geven, moet u een exemplaar van een TokenCredential klasse doorgeven. Dit exemplaar biedt de Azure Cosmos DB SDK de context die is vereist voor het ophalen van een Microsoft Entra-token namens de identiteit die u wilt gebruiken.

De manier waarop u een TokenCredential exemplaar maakt, valt buiten het bereik van dit artikel. Er zijn veel manieren om een dergelijk exemplaar te maken, afhankelijk van het type Microsoft Entra-identiteit dat u wilt gebruiken (gebruikers-principal, service-principal, groep, enzovoort). Het belangrijkste is dat uw TokenCredential exemplaar moet worden omgezet in de identiteit (principal-id) waaraan u uw rollen hebt toegewezen. Voorbeelden van het maken van een TokenCredential klasse vindt u:

In de volgende voorbeelden wordt een service-principal met een ClientSecretCredential exemplaar gebruikt.

In .NET

Het op rollen gebaseerd toegangsbeheer van Azure Cosmos DB wordt momenteel ondersteund in de .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

Het op rollen gebaseerde toegangsbeheer van Azure Cosmos DB wordt momenteel ondersteund in de 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

Het op rollen gebaseerd toegangsbeheer van Azure Cosmos DB wordt momenteel ondersteund in de 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

Het op rollen gebaseerd toegangsbeheer van Azure Cosmos DB wordt ondersteund in de Python SDK-versies 4.3.0b4 en hoger.

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)

Aanvragen verifiëren in de REST API

Bij het maken van de REST API-autorisatieheader stelt u de typeparameterin op Microsoft Entra-id en de hashhandtekening (sig) op het OAuth-token , zoals wordt weergegeven in het volgende voorbeeld:

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

Data Explorer gebruiken

Notitie

Data Explorer die wordt weergegeven in Azure Portal biedt nog geen ondersteuning voor op rollen gebaseerd toegangsbeheer van Azure Cosmos DB. Als u uw Microsoft Entra-identiteit wilt gebruiken bij het verkennen van uw gegevens, moet u in plaats daarvan de Azure Cosmos DB Explorer gebruiken.

Wanneer u azure Cosmos DB Explorer opent met de specifieke ?feature.enableAadDataPlane=true queryparameter en zich aanmeldt, wordt de volgende logica gebruikt voor toegang tot uw gegevens:

  1. Er wordt een aanvraag gedaan om de primaire sleutel van het account op te halen namens de identiteit die is aangemeld. Als deze aanvraag slaagt, wordt de primaire sleutel gebruikt voor toegang tot de gegevens van het account.
  2. Als de identiteit die is aangemeld niet is toegestaan om de primaire sleutel van het account op te halen, wordt deze identiteit rechtstreeks gebruikt om toegang tot gegevens te verifiëren. In deze modus moet de identiteit worden toegewezen met de juiste roldefinities om gegevenstoegang te garanderen.

Gegevensaanvragen controleren

Diagnostische logboeken worden uitgebreid met identiteits- en autorisatiegegevens voor elke gegevensbewerking bij gebruik van op rollen gebaseerd toegangsbeheer van Azure Cosmos DB. Met deze uitbreiding kunt u gedetailleerde controle uitvoeren en de Microsoft Entra-identiteit ophalen die wordt gebruikt voor elke gegevensaanvraag die naar uw Azure Cosmos DB-account wordt verzonden.

Deze aanvullende informatie stroomt in de logcategorie DataPlaneRequests en bestaat uit twee extra kolommen:

  • aadPrincipalId_g toont de principal-id van de Microsoft Entra-identiteit die is gebruikt om de aanvraag te verifiëren.
  • aadAppliedRoleAssignmentId_g toont de roltoewijzing die is gehonoreerd bij het autoriseren van de aanvraag.

Op rollen gebaseerd toegangsbeheer afdwingen als enige verificatiemethode

In situaties waarin u wilt afdwingen dat clients verbinding maken met Azure Cosmos DB via op rollen gebaseerd toegangsbeheer, kunt u de primaire/secundaire sleutels van het account uitschakelen. Als u dit doet, wordt elke binnenkomende aanvraag die gebruikmaakt van een primaire/secundaire sleutel of een resourcetoken actief geweigerd.

Azure Resource Manager-sjablonen gebruiken

Wanneer u uw Azure Cosmos DB-account maakt of bijwerkt met behulp van Azure Resource Manager-sjablonen, stelt u de disableLocalAuth eigenschap in op true:

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

Limieten

  • U kunt maximaal 100 roldefinities en 2000 roltoewijzingen per Azure Cosmos DB-account maken.
  • U kunt roldefinities alleen toewijzen aan Microsoft Entra-identiteiten die behoren tot dezelfde Microsoft Entra-tenant als uw Azure Cosmos DB-account.
  • Microsoft Entra-groepsomzetting wordt momenteel niet ondersteund voor identiteiten die deel uitmaken van meer dan 200 groepen.
  • Het Microsoft Entra-token wordt momenteel doorgegeven als een header waarbij elke afzonderlijke aanvraag wordt verzonden naar de Azure Cosmos DB-service, waardoor de totale nettolading groter wordt.

Veelgestelde vragen

Deze sectie bevat veelgestelde vragen over op rollen gebaseerd toegangsbeheer en Azure Cosmos DB.

Welke Azure Cosmos DB-API's ondersteunen op rollen gebaseerd toegangsbeheer op basis van gegevensvlak?

Vanaf nu wordt alleen de NoSQL-API ondersteund.

Is het mogelijk om roldefinities en roltoewijzingen te beheren vanuit de Azure Portal?

Azure Portal-ondersteuning voor rolbeheer is nog niet beschikbaar.

Welke SDK's in de Azure Cosmos DB-API voor NoSQL ondersteunen op rollen gebaseerd toegangsbeheer?

De SDK's .NET V3, Java V4, JavaScript V3 en Python V4.3+ worden momenteel ondersteund.

Wordt het Microsoft Entra-token automatisch vernieuwd door de Azure Cosmos DB-SDK's wanneer het verloopt?

Ja.

Is het mogelijk om het gebruik van de primaire/secundaire accountsleutels uit te schakelen wanneer u op rollen gebaseerd toegangsbeheer gebruikt?

Ja, zie Op rollen gebaseerd toegangsbeheer afdwingen als de enige verificatiemethode.

Volgende stappen