Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Cosmos DB no Microsoft Fabric depende exclusivamente da autenticação do Microsoft Entra ID e das funções internas do plano de dados para gerenciar a autenticação e a autorização. Neste guia, você usará o Microsoft Entra ID e sua conta autenticada para se conectar a um recurso do Cosmos DB no Microsoft Fabric.
Importante
As etapas são semelhantes ao processo usado para autenticar se você estiver usando uma entidade de serviço, um grupo ou outro tipo de identidade do Microsoft Entra ID. Para conceder a um principal de serviço a capacidade de se conectar ao Microsoft Fabric e ao banco de dados Cosmos DB, habilite a configuração "Princípios de serviço podem usar APIs do Fabric" no locatário do Fabric. Para obter mais informações, consulte configurações de tenant do Microsoft Fabric. Essa configuração é habilitada por padrão para novos clientes.
Pré-requisitos
Uma capacidade existente do Fabric
- Se você não tiver capacidade do Fabric, inicie um teste do Fabric.
Um banco de dados do Cosmos DB existente no Fabric
- Se você ainda não tiver um, crie um novo banco de dados do Cosmos DB no Fabric.
Uma identidade com a permissão de leitura para o banco de dados no Fabric
- Para obter mais informações sobre permissões do Fabric, consulte controles de acesso.
CLI do Azure
- Se você ainda não o tiver, instale a CLI do Azure.
- Python 3.12 ou posterior
- Node.js 22 ou mais recente
- SDK do .NET 9.0 ou posterior
Recuperar ponto de extremidade do Cosmos DB
Primeiro, obtenha o endpoint do banco de dados do Cosmos DB no Fabric. Este endpoint é necessário para se conectar ao SDK do Azure.
Abra o portal do Fabric (https://app.fabric.microsoft.com).
Navegue até o banco de dados do Cosmos DB existente.
Selecione a opção Configurações na barra de menus do banco de dados.
Na caixa de diálogo configurações, navegue até a seção Conexão . Em seguida, copie o valor do campo Endpoint para o banco de dados NoSQL do Cosmos DB. Use esse valor nas etapas posteriores.
Autenticar na CLI do Azure
Agora, autentique-se na CLI do Azure. O SDK do Azure pode usar vários mecanismos de autenticação diferentes para verificar sua identidade, mas a CLI do Azure é a opção mais universal e sem atrito em várias linguagens de desenvolvedor.
Em seu ambiente de desenvolvimento local, abra um terminal.
Autenticar na CLI do Azure usando
az login.az loginSiga as etapas interativas para executar a MFA (autenticação multifator) e selecione sua assinatura.
Verifique se sua conta está conectada com êxito consultando sua identidade.
az ad signed-in-user showObserve a saída do comando anterior. O campo
idcontém a ID do principal (objeto) da identidade atualmente autenticada.{ "@odata.context": "<https://graph.microsoft.com/v1.0/$metadata#users/$entity>", "businessPhones": [], "displayName": "Kai Carter", "givenName": "Kai", "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", "jobTitle": "Senior Sales Representative", "mail": "<kai@adventure-works.com>", "mobilePhone": null, "officeLocation": "Redmond", "preferredLanguage": null, "surname": "Carter", "userPrincipalName": "<kai@adventure-works.com>" }Observação
Em termos de ID do Microsoft Entra, essa identidade é conhecida como sua identidade humana. É um tipo de identidade que pode se conectar a bancos de dados entre muitos tipos diferentes, incluindo, mas não se limitando a:
- Identidades gerenciadas (sistema ou atribuído pelo usuário)
- Identidades de carga de trabalho
- Identidades de aplicativo
- Identidades do dispositivo
Embora essas etapas se concentrem em usar sua identidade humana para se conectar ao banco de dados no Fabric, as etapas serão semelhantes se você estiver se conectando usando um tipo de identidade diferente. Para obter mais informações sobre identidades, consulte os conceitos básicos da identidade.
Conectar-se usando o SDK do Azure
Por fim, use o SDK do Azure para se conectar ao banco de dados do Cosmos DB no Fabric usando o endpoint e sua identidade. O SDK do Azure é fornecido com uma biblioteca de identidade unificada que manipula automaticamente a autenticação em seu nome. Esta etapa usa o DefaultAzureCredential() tipo, que localiza automaticamente o tipo de identidade correto com base em seu ambiente.
Observação
Não há suporte para objetos de credencial do Azure nos notebooks do Microsoft Fabric. Você não pode usar DefaultAzureCredential para autenticar no Cosmos DB no Fabric. Você deve criar um objeto de credencial personalizado em seus notebooks para autenticar. Para obter mais informações, consulte Authenticate to Cosmos DB in Microsoft Fabric from Fabric Notebooks.
from azure.cosmos.aio import CosmosClient
from azure.identity import DefaultAzureCredential
endpoint = "<cosmos-db-fabric-endpoint>"
credential = DefaultAzureCredential()
async with CosmosClient(endpoint, credential=credential) as client:
container = client.get_database_client("<database-name>").get_container_client("<container-name>")
nosql = "SELECT TOP 10 VALUE item.id FROM items AS item"
results = container.query_items(
query=nosql
)
items = []
async for item in results:
items.append(item)
for item in items:
print(item)
Observação
Este exemplo usa os pacotes azure-identity e azure-cosmos do PyPI. Observe o uso do azure.cosmos.aio para suporte assíncrono.
import { Container, CosmosClient, CosmosClientOptions } from '@azure/cosmos'
import { TokenCredential, DefaultAzureCredential } from '@azure/identity'
const endpoint: string = '<cosmos-db-fabric-endpoint>';
const credential: TokenCredential = new DefaultAzureCredential();
const options: CosmosClientOptions = {
endpoint: endpoint,
aadCredentials: credential
};
const client: CosmosClient = new CosmosClient(options);
const container: Container = client.database('<database-name>').container('<container-name>');
const nosql = 'SELECT TOP 10 VALUE item.id FROM items AS item';
const querySpec = {
query: nosql
};
const response = await container.items.query(querySpec).fetchAll();
for (const item of response.resources) {
console.log(item);
}
Observação
Este exemplo utiliza os pacotes @azure/identity e @azure/cosmos do npm.
using Azure.Identity;
using Microsoft.Azure.Cosmos;
string endpoint = "<cosmos-db-fabric-endpoint>";
DefaultAzureCredential credential = new();
using CosmosClient client = new(endpoint, credential);
Container container = client
.GetDatabase("<database-name>")
.GetContainer("<container-name>");
string sql = "SELECT TOP 10 VALUE item.id FROM items AS item";
QueryDefinition query = new(sql);
FeedIterator<string> iterator = container.GetItemQueryIterator<string>(query);
while (iterator.HasMoreResults)
{
FeedResponse<string> response = await iterator.ReadNextAsync();
foreach (var item in response)
{
Console.WriteLine(item);
}
}
Observação
Este exemplo usa os pacotes Azure.Identity e Microsoft.Azure.Cosmos do NuGet.