Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Cosmos DB en Microsoft Fabric se basa exclusivamente en la autenticación de Microsoft Entra ID y en los roles integrados del plano de datos para gestionar la autenticación y la autorización. En esta guía, usará el identificador de Microsoft Entra y la cuenta de sesión para conectarse a un artefacto de Cosmos DB en Microsoft Fabric.
Importante
Los pasos son similares al proceso que se usa para autenticarse si usa un principal de servicio, grupo u otro tipo de identidad de Microsoft Entra. Para conceder a una entidad de servicio la capacidad de conectarse a Microsoft Fabric y a su base de datos de Cosmos DB, habilite la configuración "Las entidades de servicio pueden usar las API de Fabric" en el inquilino de Fabric. Para obtener más información, consulte Configuración de inquilinos de Microsoft Fabric. Esta configuración está habilitada de forma predeterminada para los nuevos clientes.
Prerrequisitos
Una capacidad de Fabric existente
- Si no tiene capacidad de Fabric, inicie una versión de prueba de Fabric.
Una base de datos de Cosmos DB existente en Fabric
- Si aún no tiene una, cree una base de datos de Cosmos DB en Fabric.
Una identidad con el permiso De lectura para la base de datos en el sistema Fabric
- Para obtener más información sobre los permisos de Fabric, consulte Controles de acceso.
CLI de Azure
- Si aún no lo tiene, instale la CLI de Azure.
- Python 3.12 o posterior
- Node.js 22 o posterior
- SDK de .NET 9.0 o posterior
Recuperación del punto de conexión de Cosmos DB
Primero, obtenga el punto de conexión de la base de datos de Cosmos DB dentro de Fabric. Este punto de conexión es necesario para conectarse mediante el SDK de Azure.
Abra el portal de Fabric (https://app.fabric.microsoft.com).
Vaya a la base de datos de Cosmos DB existente.
Seleccione la opción Configuración en la barra de menús de la base de datos.
En el cuadro de diálogo configuración, vaya a la sección Conexión . A continuación, copie el valor del campo Punto de conexión para la base de datos NoSQL de Cosmos DB . Usted utiliza este valor en pasos posteriores.
Autenticación en la CLI de Azure
Ahora, autentíquese en la CLI de Azure. El SDK de Azure puede usar varios mecanismos de autenticación diferentes para comprobar la identidad, pero la CLI de Azure es la opción más universal y sin fricción en varios lenguajes de desarrollador.
En el entorno de desarrollo local, abra una terminal.
Autentíquese en la CLI de Azure mediante
az login.az loginSiga los pasos interactivos para realizar la autenticación multifactor (MFA) y seleccione la suscripción.
Compruebe que la cuenta ha iniciado sesión correctamente consultando su identidad.
az ad signed-in-user showObserve la salida del comando anterior. El
idcampo contiene el ID principal (de objeto) de la identidad cuya sesión está actualmente iniciada.{ "@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>" }Nota:
En los términos del identificador de Entra de Microsoft, esta identidad se conoce como su identidad humana. Es un tipo de identidad que puede conectarse a bases de datos entre muchos tipos diferentes, entre los que se incluyen, entre otros:
- Identidades administradas (asignadas por el sistema o por el usuario)
- Identidades de carga de trabajo
- Identidades de aplicación
- Identidades de dispositivo
Aunque estos pasos se centran en el uso de la identidad humana para conectarse a la base de datos en Fabric, los pasos son similares si se conecta mediante un tipo de identidad diferente. Para obtener más información sobre las identidades, consulte Aspectos básicos de la identidad.
Conexión mediante el SDK de Azure
Por último, use el SDK de Azure para conectarse a la base de datos de Cosmos DB en Fabric mediante el punto de conexión y la identidad. El SDK de Azure se incluye con una biblioteca de identidades unificada que controla automáticamente la autenticación en su nombre. En este paso se usa el DefaultAzureCredential() tipo , que busca automáticamente el tipo de identidad correcto en función de su entorno.
Nota:
Los objetos de credenciales de Azure no se admiten en los cuadernos de Microsoft Fabric. No se puede usar DefaultAzureCredential para autenticarse en Cosmos DB en Fabric. Debe crear un objeto de credencial personalizado en los cuadernos para autenticarse. Para obtener más información, consulte Autenticarse en Cosmos DB en Microsoft Fabric desde Cuadernos de Microsoft Fabric.
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)
Nota:
En este ejemplo se utilizan los paquetes azure-identity y azure-cosmos de PyPI. Tenga en cuenta el uso de azure.cosmos.aio para la compatibilidad asincrónica.
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);
}
Nota:
En este ejemplo se usan los paquetes @azure/identity y @azure/cosmos de 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);
}
}
Nota:
En este ejemplo se usan los paquetes Azure.Identity y Microsoft.Azure.Cosmos de NuGet.