Configure o controle de acesso baseado em função com o ID do Microsoft Entra para sua conta do Azure Cosmos DB
APLICA-SE A: NoSQL
Observação
Este artigo trata do controle de acesso baseado em função para operações do plano de dados no Azure Cosmos DB. Se você estiver usando operações do plano de gerenciamento, confira o artigo Controle de acesso baseado em função aplicado às operações do plano de gerenciamento.
O Azure Cosmos DB expõe um sistema interno de controle de acesso baseado em função que permite:
- Autentique suas solicitações de dados com uma identidade do Microsoft Entra.
- Autorizar as solicitações de dados com um modelo de permissão refinado e baseado em função.
Conceitos
O controle de acesso baseado em função do plano de dados do Azure Cosmos DB baseia-se em conceitos comumente encontrados em outros sistemas de controle de acesso baseado em função, como o controle de acesso baseado em função do Azure:
- O modelo de permissão é composto por um conjunto de ações. Cada uma dessas ações é mapeada para uma ou várias operações de banco de dados. Entre alguns exemplos de ações estão a leitura e a gravação de um item ou a execução de uma consulta.
- Os usuários do Azure Cosmos DB criam definições de função contendo uma lista de ações permitidas.
- As definições de função são atribuídas a identidades específicas do Microsoft Entra por meio de atribuições de função. Uma atribuição de função também define o escopo ao qual a definição de função se aplica. Atualmente, há três escopos:
- Uma conta do Azure Cosmos DB;
- Um banco de dados do Azure Cosmos DB;
- Um contêiner do Azure Cosmos DB.
Modelo de permissão
Importante
Esse modelo de permissão aborda apenas as operações de banco de dados que envolvem leitura e a gravação. Não abrange nenhum tipo de operação de gerenciamento em recursos de gerenciamento, incluindo:
- Criar/Substituir/Excluir banco de dados
- Criar/Substituir/Excluir contêiner
- Leitura/substituição da taxa de transferência do contêiner
- Criar/Substituir/Excluir/Ler procedimentos armazenados
- Criar/Substituir/Excluir/Ler gatilhos
- Criar/Substituir/Excluir/Ler funções definidas pelo usuário
Você não pode usar os SDKs do plano de dados do Azure Cosmos DB para autenticar operações de gerenciamento com uma identidade do Microsoft Entra. Em vez disso, você precisa usar o controle de acesso baseado em função do Azure por meio de uma das seguintes opções:
- Modelos do ARM (modelos do Azure Resource Manager)
- Scripts do Azure PowerShell
- Scripts da CLI do Azure
- Bibliotecas de gerenciamento do Azure disponíveis em:
Ler banco de dados e Ler contêiner são consideradas solicitações de metadados. É possível conceder acesso a essas operações conforme indicado na seção a seguir.
Esta tabela lista todas as ações expostas pelo modelo de permissão.
Nome | Operações de banco de dados correspondentes |
---|---|
Microsoft.DocumentDB/databaseAccounts/readMetadata |
Ler metadados da conta. Confira Solicitações de metadados para obter detalhes. |
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/create |
Criar um novo item. |
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read |
Ler um item individual pela ID e chave de partição (leitura de ponto). |
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/replace |
Substituir um item existente. |
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/upsert |
Fazer upsert de um item. Essa operação cria um item caso ele ainda não exista ou substitui o item caso ele exista. |
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/delete |
Excluir um item. |
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery |
Executar uma consulta SQL. |
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed |
Ler o feed de alterações do contêiner. Execute consultas SQL usando os SDKs. |
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeStoredProcedure |
Executar um procedimento armazenado. |
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/manageConflicts |
Gerenciar conflitos de contas de região de várias gravações (ou seja, listar e excluir itens do feed de conflitos). |
Observação
Ao executar consultas por meio dos SDKs, as permissões Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery
e Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed
são necessárias.
Há suporte para curingas nos níveis de contêineres e itens:
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*
Solicitações de metadados
Os SDKs do Azure Cosmos DB emitem solicitações de metadados somente leitura durante a inicialização com a finalidade de atender a solicitações de dados específicas. Essas solicitações buscam vários detalhes de configuração, como:
- A configuração global da sua conta, que inclui as regiões do Azure nas quais a conta está disponível.
- A chave de partição ou a política de indexação dos seus contêineres.
- A lista de partições físicas que constituem um contêiner e os respectivos endereços.
Não buscam nenhum dos dados que você armazenou na sua conta.
Para garantir a melhor transparência do nosso modelo de permissão, essas solicitações de metadados são explicitamente abordadas pela ação Microsoft.DocumentDB/databaseAccounts/readMetadata
. Essa ação deve ser permitida em todas as situações em que a sua conta do Azure Cosmos DB é acessada por meio de um dos SDKs do Azure Cosmos DB. Ela pode ser atribuída (por meio de uma atribuição de função) em qualquer nível da hierarquia do Azure Cosmos DB (ou seja, conta, banco de dados ou contêiner).
As solicitações de metadados reais permitidas pela ação Microsoft.DocumentDB/databaseAccounts/readMetadata
dependem do escopo ao qual a ação é atribuída:
Escopo | Solicitações permitidas pela ação |
---|---|
Conta | • Lista dos bancos de dados na conta • Para cada banco de dados na conta, as ações permitidas no escopo do banco de dados |
Banco de dados | • Leitura dos metadados do banco de dados • Lista dos contêineres no banco de dados • Para cada contêiner no banco de dados, as ações permitidas no escopo do contêiner |
Contêiner | • Leitura dos metadados do contêiner • Lista das partições físicas no contêiner • Resolução do endereço de cada partição física |
Importante
A taxa de transferência não está incluída nos metadados dessa ação.
Definições de função interna
O Azure Cosmos DB expõe duas definições de função interna:
Importante
O termo definições de função aqui refere-se a definições de função específicas do Azure Cosmos DB. Elas são distintas das definições de função de controle de acesso baseado em função do Azure.
ID | Nome | Ações incluídas |
---|---|---|
00000000-0000-0000-0000-000000000001 | Leitor de dados internos do 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 | Colaborador de dados internos do Cosmos DB | Microsoft.DocumentDB/databaseAccounts/readMetadata Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/* Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/* |
Criar definições de função personalizada
Ao criar uma definição de função personalizada, você precisa fornecer:
- O nome da sua conta do Azure Cosmos DB.
- O grupo de recursos que contém a conta.
- O tipo da definição de função:
CustomRole
. - O nome da definição de função.
- Uma lista de ações que você deseja permitir por meio da função.
- Um ou vários escopos aos quais a definição de função pode ser atribuída; os escopos com suporte são:
/
(nível da conta);/dbs/<database-name>
(nível do banco de dados);/dbs/<database-name>/colls/<container-name>
(nível do contêiner).
Observação
As operações descritas estão disponíveis em:
- Azure PowerShell: Az.CosmosDB versão 1.2.0 ou posterior
- CLI do Azure: versão 2.24.0 ou posterior
Usando o PowerShell do Azure
Crie uma função chamada MyReadOnlyRole que contenha apenas ações de leitura:
$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 "/"
Crie uma função chamada MyReadWriteRole que contenha todas as ações:
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 "/"
Liste as definições de função que você criou para buscar as respectivas IDs:
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>}
Usando a CLI do Azure
Crie uma função chamada MyReadOnlyRole que contenha apenas ações de leitura em um arquivo chamado 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
Crie uma função chamada MyReadWriteRole que contenha todas as ações em um arquivo chamado 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
Liste as definições de função que você criou para buscar as respectivas IDs:
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"
}
]
Usar modelos do Azure Resource Manager
Para ver uma referência e exemplos de como usar modelos do Azure Resource Manager para criar definições de função, confira Microsoft.DocumentDB
databaseAccounts/sqlRoleDefinitions
.
Criar atribuições de função
Você pode associar definições de função internas ou personalizadas às suas identidades do Microsoft Entra. Ao criar uma atribuição de função, você precisa fornecer:
O nome da sua conta do Azure Cosmos DB.
O grupo de recursos que contém a conta.
A ID da definição de função a ser atribuída.
A ID da entidade de segurança da identidade à qual a definição de função deve ser atribuída.
O escopo da atribuição de função. Os escopos compatíveis são:
/
(nível da conta)/dbs/<database-name>
(nível do banco de dados)/dbs/<database-name>/colls/<container-name>
(nível do contêiner)
O escopo deve corresponder ou ser um subescopo de um dos escopos atribuíveis da definição de função.
Observação
Caso deseje criar uma atribuição de função para uma entidade de serviço, lembre-se de usar a ID de objeto encontrada na seção Aplicativos empresariais da folha do portal do Microsoft Entra ID.
Observação
As operações descritas estão disponíveis em:
- Azure PowerShell: Az.CosmosDB versão 1.2.0 ou posterior
- CLI do Azure: versão 2.24.0 ou posterior
Usando o PowerShell do Azure
Atribua uma função a uma identidade:
$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
Usando a CLI do Azure
Atribua uma função a uma identidade:
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 --principal-type "ServicePrincipal"
Como usar modelos do Bicep/Azure Resource Manager
No caso de uma atribuição interna usando um modelo do 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>
}
}
Para ver uma referência e exemplos de como usar modelos do Azure Resource Manager para criar atribuições de função, confira Microsoft.DocumentDB
databaseAccounts/sqlRoleAssignments
.
Inicializar o SDK com o Microsoft Entra ID
Para usar o controle de acesso baseado em função do Azure Cosmos DB no seu aplicativo, é necessário atualizar a maneira como você inicializa o SDK do Azure Cosmos DB. Em vez de transmitir a chave primária da sua conta, você precisa transmitir uma instância de uma classe TokenCredential
. Essa instância fornece ao SDK do Azure Cosmos DB o contexto necessário para buscar um token do Microsoft Entra em nome da identidade que você deseja usar.
A maneira como uma instância de TokenCredential
é criada não está incluída no escopo deste artigo. Há várias maneiras de criar essa instância, dependendo do tipo de identidade do Microsoft Entra que você deseja usar (entidade de usuário, entidade de serviço, grupo etc.). O mais importante é que a instância de TokenCredential
precisa ser resolvida para a identidade (ID da entidade de segurança) à qual você atribuiu as funções. Encontre exemplos de como criar uma classe TokenCredential
:
Os exemplos a seguir usam uma entidade de serviço com uma instância de ClientSecretCredential
.
In .NET
Atualmente, há suporte para o controle de acesso baseado em função do Azure Cosmos DB no SDK V3 do .NET.
TokenCredential servicePrincipal = new ClientSecretCredential(
"<azure-ad-tenant-id>",
"<client-application-id>",
"<client-application-secret>");
CosmosClient client = new CosmosClient("<account-endpoint>", servicePrincipal);
No Java
Atualmente, há suporte para o controle de acesso baseado em função do Azure Cosmos DB no SDK V4 do Java.
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();
No JavaScript
Atualmente, há suporte para o controle de acesso baseado em função do Azure Cosmos DB no SDK V3 do JavaScript.
const servicePrincipal = new ClientSecretCredential(
"<azure-ad-tenant-id>",
"<client-application-id>",
"<client-application-secret>");
const client = new CosmosClient({
endpoint: "<account-endpoint>",
aadCredentials: servicePrincipal
});
Em Python
Há suporte para o controle de acesso baseado em função do Azure Cosmos DB no SDK do Python versões 4.3.0b4 e superior.
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)
Autenticar solicitações na API REST
Ao construir o cabeçalho de autorização da API REST, defina o parâmetro type como Microsoft Entra ID e a assinatura de hash (sig) como Token OAuth, conforme mostrado no seguinte exemplo:
type=aad&ver=1.0&sig=<token-from-oauth>
Usar o Data Explorer
O uso do controle de acesso baseado em função do Azure Cosmos DB no Data Explorer (exposto no Portal do Azure ou em https://cosmos.azure.com) é regido pela configuração Desabilitar RBAC do Entra ID. Você pode acessar essa configuração por meio do ícone de "roda" no lado superior direito da interface do Data Explorer.
A configuração tem três valores possíveis:
Automatic (padrão): nesse modo, o controle de acesso baseado em função será usado automaticamente se a conta tiver desabilitado o uso de chaves. Caso contrário, o Data Explorer usará chaves de conta para solicitações de dados.
True: nesse modo, o acesso baseado em função sempre será usado para solicitações de dados do Data Explorer. Se a conta não tiver sido habilitada para acesso baseado em função, as solicitações falharão.
False: nesse modo, as chaves de conta sempre serão usadas para solicitações de dados do Data Explorer. Se a conta tiver desabilitado o uso de chaves, as solicitações falharão.
Ao usar modos que habilitam o acesso baseado em função no Data Explorer do Portal do Azure, você deve clicar no botão de Logon do RBAC do Entrar ID (localizado na barra de comandos do Data Explorer) antes de fazer solicitações de dados. Isso não é necessário ao usar o Cosmos Explorer em cosmos.azure.com. Verifique se a identidade de entrada foi atribuída com definições de função adequadas para habilitar o acesso a dados.
Observe também que alterar o modo para um que usa chaves de conta pode disparar uma solicitação para buscar a chave primária em nome da identidade que está conectado.
Observação
Anteriormente, o acesso baseado em função só tinha suporte no Cosmos Explorer usando https://cosmos.azure.com/?feature.enableAadDataPlane=true
. Ainda há suporte para isso e substituirá o valor da configuração Habilitar RBAC do Entra ID. Usar esse parâmetro de consulta é equivalente a usar o modo "True"mencionado acima.
Solicitações de dados de auditoria
Os logs de diagnóstico são aumentados com informações de identidade e autorização para cada operação de dados quando o controle de acesso baseado em função do Azure Cosmos DB é usado. Esse aumento permite que você execute uma auditoria detalhada e recupere a identidade do Microsoft Entra usada para cada solicitação de dados enviada à sua conta do Azure Cosmos DB.
Essas informações adicionais fluem na categoria de log DataPlaneRequests e consistem em duas colunas extras:
aadPrincipalId_g
mostra a ID da entidade de segurança da identidade do Microsoft Entra que foi usada para autenticar a solicitação.aadAppliedRoleAssignmentId_g
mostra a atribuição de função que foi respeitada ao autorizar a solicitação.
Como impor o controle de acesso baseado em função como o único método de autenticação
Em situações em que você deseja forçar os clientes a se conectarem ao Azure Cosmos DB exclusivamente por meio do controle de acesso baseado em função, você tem a opção de desabilitar as chaves primária/secundária da conta. Quando você faz isso, qualquer solicitação de entrada que use uma chave primária/secundária ou um token de recurso é rejeitada ativamente.
Usar modelos do Gerenciador de Recursos do Azure
Ao criar ou atualizar a sua conta do Azure Cosmos DB usando modelos do Azure Resource Manager, defina a propriedade disableLocalAuth
como true
:
"resources": [
{
"type": " Microsoft.DocumentDB/databaseAccounts",
"properties": {
"disableLocalAuth": true,
// ...
},
// ...
},
// ...
]
Limites
- Você pode criar até cem definições de função e duas mil atribuições de função por conta do Azure Cosmos DB.
- Você só pode atribuir definições de função a identidades do Microsoft Entra que pertençam ao mesmo locatário do Microsoft Entra que sua conta do Azure Cosmos DB.
- Atualmente, não há suporte para a resolução de grupos do Microsoft Entra para identidades que pertencem a mais de 200 grupos.
- O token do Microsoft Entra é transmitido atualmente como um cabeçalho com cada solicitação individual enviada ao serviço do Azure Cosmos DB, aumentando o tamanho geral do conteúdo.
Perguntas frequentes
Esta seção inclui perguntas frequentes sobre o controle de acesso baseado em função e o Azure Cosmos DB.
Quais APIs do Azure Cosmos DB dão suporte ao controle de acesso baseado em função do plano de dados?
Até o momento, há suporte apenas para a API NoSQL.
É possível gerenciar definições de função e atribuições de função pelo portal do Azure?
O suporte do portal do Azure para o gerenciamento de funções ainda não está disponível.
Quais SDKs da API do Azure Cosmos DB for NoSQL dão suporte ao controle de acesso baseado em função?
Atualmente, há suporte para os SDKs .NET V3, Java V4, JavaScript V3 e Python V4.3+.
O token do Microsoft Entra é atualizado automaticamente pelos SDKs do Azure Cosmos DB quando ele expira?
Sim.
É possível desabilitar o uso das chaves primária/secundária da conta quando o controle de acesso baseado em função é usado?
Sim. Confira Como impor o controle de acesso baseado em função como o único método de autenticação.
Próximas etapas
- Obtenha uma visão geral de acesso seguro aos dados no Azure Cosmos DB.
- Saiba mais sobre o controle de acesso baseado em função para o gerenciamento do Azure Cosmos DB.