Compartilhar via


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.

Diagrama dos conceitos comuns do 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 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:

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:

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:

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