Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Cosmos DB no Microsoft Fabric baseia-se exclusivamente na autenticação do Microsoft Entra ID e nas funções integradas do plano de dados para controlar a autenticação e a autorização. Neste guia, utiliza o Microsoft Entra ID e a sua conta com sessão iniciada para se conectar a um artefato do Cosmos DB no Microsoft Fabric.
Importante
As etapas são semelhantes ao processo usado para autenticar se estiveres a usar um principal de serviço, grupo ou outro tipo de identidade do Microsoft Entra ID. Para conceder a uma entidade de serviço a capacidade de se conectar ao Microsoft Fabric e ao seu banco de dados do Cosmos DB, habilite a configuração "Entidades de serviço podem usar APIs do Fabric no tenant do Fabric. Para mais informações, consulte Configurações de inquilino do Microsoft Fabric. Esta definição está ativada por defeito para novos clientes.
Pré-requisitos
Uma capacidade de malha existente
- Caso não tenhas capacidade Fabric, comece uma experimentação do Fabric.
Um banco de dados existente do Cosmos DB na estrutura
- Se você ainda não tiver um, crie um novo banco de dados do Cosmos DB no Fabric.
Uma identidade com a permissão Read para o banco de dados na Malha
- Para obter mais informações sobre permissões do Fabric, consulte controles de acesso.
Azure CLI (Interface de Linha de Comando da Azure)
- Se ainda não a tiver, instale a CLI do Azure.
- Python 3.12 ou posterior
- Node.js 22 ou posterior
- .NET SDK 9.0 ou posterior
Recuperar endpoint do Cosmos DB
Primeiro, obtenha o ponto de extremidade para o banco de dados do Cosmos DB no Fabric. Este ponto final é requerido para se conectar usando o SDK do Azure.
Abra o portal do Fabric (https://app.fabric.microsoft.com).
Navegue até o banco de dados existente do Cosmos DB.
Selecione a opção Configurações na barra de menus do banco de dados.
Na caixa de diálogo de 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. Você usa esse valor em 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ários idiomas de desenvolvedor.
No seu ambiente de desenvolvimento local, abra um terminal.
Autentique-se na CLI do Azure usando
az login.az loginSiga as etapas interativas para executar a autenticação multifator (MFA) e selecione sua assinatura.
Verifique se a sua conta iniciou sessão com êxito verificando a sua identidade.
az ad signed-in-user showObserve a saída do comando anterior. O
idcampo contém o ID principal (objeto) da identidade conectada no momento.{ "@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 é referida como sua identidade humana. É um tipo de identidade que pode se conectar a bancos de dados entre muitos tipos diferentes, incluindo, mas não limitado a:
- Identidades gerenciadas (atribuídas pelo sistema ou pelo usuário)
- Identidades de tarefas de trabalho
- Identidades de aplicativos
- Identidades de dispositivos
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 Fundamentos de 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 na Malha usando o endpoint e a sua identidade. O SDK do Azure é fornecido com uma biblioteca de identidade unificada que lida automaticamente com a autenticação em seu nome. Esta etapa usa o DefaultAzureCredential() tipo, que localiza automaticamente o tipo de identidade correto com base no seu ambiente.
Observação
Os objetos credenciais Azure não são suportados em notebooks Microsoft Fabric. Não podes usar DefaultAzureCredential para autenticar no Cosmos DB no Fabric. Deve criar um objeto de credencial personalizado nos seus cadernos para autenticar. Para mais informações, consulte Autenticar para o Cosmos DB no Microsoft Fabric a partir dos 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 azure-identity pacotes e azure-cosmos do PyPI. Note o uso de 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 usa 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 Azure.Identity pacotes e Microsoft.Azure.Cosmos do NuGet.