Partilhar via


Configurar o controlo de acesso baseado em funções com o Microsoft Entra ID para a conta do Azure Cosmos DB

APLICA-SE A: NoSQL

Nota

Este artigo é sobre controle de acesso baseado em função para operações de plano de dados no Azure Cosmos DB. Se você estiver usando operações de plano de gerenciamento, consulte 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 de controle de acesso interno baseado em função que permite:

  • Autentique suas solicitações de dados com uma identidade do Microsoft Entra.
  • Autorize suas solicitações de dados com um modelo de permissão refinado e baseado em funções.

Conceitos

O controle de acesso baseado em função do plano de dados do Azure Cosmos DB é baseado em conceitos que são comumente encontrados em outros sistemas de controle de acesso baseados 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. Alguns exemplos de ações incluem ler um item, escrever um item ou executar 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, existem três âmbitos:
    • Uma conta do Azure Cosmos DB,
    • Um banco de dados do Azure Cosmos DB,
    • Um contêiner do Azure Cosmos DB.

Diagrama de conceitos comuns de controle de acesso baseado em função, incluindo definições de função, atribuições de função e entidades de segurança.

Modelo de permissão

Importante

Esse modelo de permissão abrange apenas operações de banco de dados que envolvem leitura e gravação de dados. Não abrange qualquer tipo de operações de gestão de recursos de gestão, incluindo:

  • Criar/substituir/excluir banco de dados
  • Criar/substituir/excluir contêiner
  • Taxa de transferência de contêiner de leitura/substituição
  • Criar/substituir/excluir/ler procedimentos armazenados
  • Criar/substituir/excluir/ler gatilhos
  • Criar/substituir/excluir/ler funções definidas pelo usuário

Não é possível usar nenhum SDK do plano de dados do Azure Cosmos DB para autenticar operações de gerenciamento com uma identidade do Microsoft Entra. Em vez disso, você deve usar o controle de acesso baseado em função do Azure por meio de uma das seguintes opções:

Banco de Dados de Leitura e Contêiner de Leitura são considerados solicitações de metadados. O acesso a estas operações pode ser concedido conforme indicado na secção seguinte.

Esta tabela lista todas as ações expostas pelo modelo de permissão.

Nome Operação(ões) correspondente(s) da base de dados
Microsoft.DocumentDB/databaseAccounts/readMetadata Leia os metadados da conta. Consulte Solicitações de metadados para obter detalhes.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/create Crie um novo item.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read Leia um item individual pelo seu ID e chave de partição (point-read).
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/replace Substitua um item existente.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/upsert "Upsert" um item. Esta operação cria um item se ainda não existir, ou para substituir o item se ele existir.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/delete Excluir um item.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery Execute uma consulta SQL.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed Leia a partir do feed de alterações do recipiente. Execute consultas SQL usando os SDKs.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeStoredProcedure Execute um procedimento armazenado.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/manageConflicts Gerencie conflitos para contas de região de várias gravações (ou seja, liste e exclua itens do feed de conflitos).

Nota

Ao executar consultas através dos SDKs, ambas as Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery permissões são Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed necessárias.

Os curingas são suportados nos níveis de contêineres e itens :

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

Pedidos de metadados

Os SDKs do Azure Cosmos DB emitem solicitações de metadados somente leitura durante a inicialização e para 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 em que a conta está disponível.
  • A chave de partição de seus contêineres ou sua política de indexação.
  • A lista de partições físicas que fazem um contêiner e seus endereços.

Eles não buscam nenhum dos dados que você armazenou em sua conta.

Para garantir a melhor transparência do nosso modelo de permissão, essas solicitações de metadados são explicitamente cobertas pela Microsoft.DocumentDB/databaseAccounts/readMetadata ação. Essa ação deve ser permitida em todas as situações em que sua conta do Azure Cosmos DB é acessada por meio de um dos SDKs do Azure Cosmos DB. Ele pode ser atribuído (por meio de uma atribuição de função) em qualquer nível na hierarquia do Azure Cosmos DB (ou seja, conta, banco de dados ou contêiner).

As solicitações de metadados reais permitidas pela Microsoft.DocumentDB/databaseAccounts/readMetadata ação dependem do escopo ao qual a ação é atribuída:

Âmbito Pedidos permitidos pela ação
Account • Listar as bases de dados sob a conta
• Para cada banco de dados sob a conta, as ações permitidas no escopo do banco de dados
Base de Dados • Leitura de metadados da base de dados
• Listar os contêineres no banco de dados
• Para cada contêiner sob o banco de dados, as ações permitidas no escopo do contêiner
Contentor • Leitura de metadados do recipiente
• Listar divisórias físicas sob o 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 desta ação.

Definições de função incorporadas

O Azure Cosmos DB expõe duas definições de função internas:

Importante

As definições de função de termo aqui referem-se às 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 baseadas em função do Azure.

ID Nome Ações incluídas
00000000-0000-0000-0000-000000000001 Leitor de dados integrado 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 integrado do Cosmos DB Microsoft.DocumentDB/databaseAccounts/readMetadata
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*

Criar definições de função personalizadas

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 sua conta.
  • O tipo de definição de função: CustomRole.
  • O nome da definição de função.
  • Uma lista de ações que você deseja que a função permita.
  • Um ou vários âmbitos aos quais a definição de função pode ser atribuída; Os escopos suportados são:
    • / (ao nível da conta),
    • /dbs/<database-name> (ao nível da base de dados),
    • /dbs/<database-name>/colls/<container-name> (ao nível do contentor).

Nota

As operações descritas estão disponíveis em:

Utilizar o Azure PowerShell

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

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

Utilizar modelos do Azure Resource Manager

Para obter uma referência e exemplos de como usar modelos do Azure Resource Manager para criar definições de função, consulte 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 sua conta.

  • A ID da definição de função a ser atribuída.

  • A ID principal da identidade à qual a definição de função deve ser atribuída.

  • O âmbito da atribuição de funções; Os escopos suportados são:

    • / (nível da conta)
    • /dbs/<database-name> (ao nível da base de dados)
    • /dbs/<database-name>/colls/<container-name> (ao nível do contentor)

    O escopo deve corresponder ou ser um subescopo de um dos escopos atribuíveis da definição de função.

Nota

Se você quiser criar uma atribuição de função para uma entidade de serviço, certifique-se de usar sua ID de objeto conforme encontrado na seção Aplicativos corporativos da folha do portal Microsoft Entra ID .

Nota

As operações descritas estão disponíveis em:

Utilizar o Azure PowerShell

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

Com 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

Usando modelos do Bicep/Azure Resource Manager

Para uma atribuição interna usando um modelo 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 obter uma referência e exemplos de como usar modelos do Azure Resource Manager para criar atribuições de função, consulte Microsoft.DocumentDB databaseAccounts/sqlRoleAssignments.

Inicializar o SDK com o ID do Microsoft Entra

Para usar o controle de acesso baseado em função do Azure Cosmos DB em seu aplicativo, você precisa atualizar a maneira como inicializa o SDK do Azure Cosmos DB. Em vez de passar a chave primária da sua conta, você precisa passar uma instância de uma TokenCredential classe. Esta 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 você cria uma TokenCredential instância está além do escopo deste artigo. Há muitas 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.). Mais importante ainda, sua TokenCredential instância deve ser resolvida para a identidade (ID principal) à qual você atribuiu suas funções. Você pode encontrar exemplos de criação de uma TokenCredential classe:

Os exemplos a seguir usam uma entidade de serviço com uma ClientSecretCredential instância.

Em .NET

O controle de acesso baseado em função do Azure Cosmos DB é atualmente suportado no .NET SDK V3.

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

Em Java

O controle de acesso baseado em função do Azure Cosmos DB é atualmente suportado no 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();

Em JavaScript

O controle de acesso baseado em função do Azure Cosmos DB é atualmente suportado no 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
});

Em Python

O controle de acesso baseado em função do Azure Cosmos DB é suportado nas versões 4.3.0b4 e superiores do SDK do Python.

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 hash (sig) para o token OAuth, conforme mostrado no exemplo a seguir:

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

Usar o explorador de dados

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 RBAC Enable Entra ID. Pode aceder a esta definição através do ícone "roda" no canto superior direito da interface do Data Explorer.

A configuração tem três valores possíveis:

  • Automático (padrão): Neste modo, o controle de acesso baseado em função será usado automaticamente se a conta tiver desativado o uso de chaves. Caso contrário, o Data Explorer usará chaves de conta para solicitações de dados.

  • True: Neste 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: Neste modo, as chaves de conta serão sempre utilizadas para pedidos de dados do Data Explorer. Se a conta tiver desativado o uso de chaves, as solicitações falharão.

Ao usar modos que habilitam o acesso baseado em função no Gerenciador de Dados do Portal do Azure, você deve clicar no botão Login para RBAC do ID do Entra (localizado na barra de comandos do Data Explorer) antes de fazer qualquer solicitação de dados. Isso não é necessário ao usar o Cosmos Explorer em cosmos.azure.com. Certifique-se de que a identidade conectada foi atribuída com definições de função adequadas para permitir o acesso aos 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 conectada.

Nota

Anteriormente, o acesso baseado em função só era suportado no Cosmos Explorer usando https://cosmos.azure.com/?feature.enableAadDataPlane=trueo . Isso ainda é suportado e substituirá o valor da configuração RBAC Enable Entra ID. Usar este parâmetro de consulta é equivalente a usar o modo 'Automático' mencionado acima.

Pedidos 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 ao usar o controle de acesso baseado em função do Azure Cosmos DB. Esse aumento permite que você execute auditorias detalhadas 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 principal da identidade do Microsoft Entra que foi usada para autenticar a solicitação.
  • aadAppliedRoleAssignmentId_g Mostra a atribuição de função que foi honrada ao autorizar a solicitação.

Impondo 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ê pode desabilitar as chaves primárias/secundárias da conta. Ao fazer isso, qualquer solicitação de entrada usando uma chave primária/secundária ou um token de recurso é rejeitada ativamente.

Utilizar modelos do Azure Resource Manager

Ao criar ou atualizar sua conta do Azure Cosmos DB usando modelos do Azure Resource Manager, defina a disableLocalAuth propriedade como true:

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

Limites

  • Você pode criar até 100 definições de função e 2.000 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 pertencentes ao mesmo locatário do Microsoft Entra que sua conta do Azure Cosmos DB.
  • Atualmente, não há suporte para a resolução de grupo do Microsoft Entra para identidades que pertencem a mais de 200 grupos.
  • Atualmente, o token Microsoft Entra é passado como um cabeçalho com cada solicitação individual enviada ao serviço Azure Cosmos DB, aumentando o tamanho geral da carga útil.

Perguntas mais frequentes

Esta seção inclui perguntas frequentes sobre controle de acesso baseado em função e o Azure Cosmos DB.

Quais APIs do Azure Cosmos DB oferecem suporte ao controle de acesso baseado em função do plano de dados?

A partir de agora, apenas a API NoSQL é suportada.

É possível gerir definições de funções e atribuições de funções no portal do Azure?

O suporte do portal do Azure para gerenciamento de funções ainda não está disponível.

Quais SDKs na API do Azure Cosmos DB para NoSQL oferecem suporte ao controle de acesso baseado em função?

Os SDKs .NET V3, Java V4, JavaScript V3 e Python V4.3+ são suportados atualmente.

O token do Microsoft Entra é automaticamente atualizado pelos SDKs do Azure Cosmos DB quando expira?

Sim.

É possível desativar o uso das chaves primárias/secundárias da conta ao usar o controle de acesso baseado em função?

Sim, consulte Impondo controle de acesso baseado em função como o único método de autenticação.

Próximos passos