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.
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:
- Azure Resource Manager-sjablonen (ARM-sjablonen)
- Azure PowerShell-scripts
- Azure CLI-scripts
- Azure-beheerbibliotheken die beschikbaar zijn in:
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: Az.CosmosDB versie 1.2.0 of hoger
- Azure CLI: versie 2.24.0 of hoger
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: Az.CosmosDB versie 1.2.0 of hoger
- Azure CLI: versie 2.24.0 of hoger
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:
- 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.
- 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
- Krijg een overzicht van beveiligde toegang tot gegevens in Azure Cosmos DB.
- Meer informatie over op rollen gebaseerd toegangsbeheer voor Azure Cosmos DB-beheer.