Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cosmos DB dans Microsoft Fabric s’appuie exclusivement sur l’authentification microsoft Entra ID et les rôles de plan de données intégrés pour gérer l’authentification et l’autorisation. Dans ce guide, vous utilisez l’ID Microsoft Entra et votre compte connecté pour vous connecter à un artefact Cosmos DB dans Microsoft Fabric.
Important
Les étapes sont similaires au processus utilisé pour s’authentifier si vous utilisez un principal de service, un groupe ou un autre type d’identité d’ID Microsoft Entra. Pour accorder à un principal de service la possibilité de se connecter à Microsoft Fabric et à votre base de données Cosmos DB, activez le paramètre « Les principaux de service peuvent utiliser le paramètre API Fabric dans le locataire Fabric. Pour plus d’informations, consultez les paramètres du client Microsoft Fabric. Ce paramètre est activé par défaut pour les nouveaux clients.
Conditions préalables
Capacité de la structure Fabric existante
- Si vous n’avez pas de capacité Fabric, démarrez un essai Fabric.
Base de données Cosmos DB existante dans Fabric
- Si vous n’en avez pas déjà, créez une base de données Cosmos DB dans Fabric.
Identité avec la permission Lecture de la base de données de Fabric
- Pour plus d’informations sur les autorisations Fabric, consultez les contrôles d’accès.
Azure CLI (Interface de ligne de commande Azure)
- Si vous ne l’avez pas déjà, installez Azure CLI.
- Python 3.12 ou version ultérieure
- Node.js 22 ou version ultérieure
- Kit sdk .NET 9.0 ou version ultérieure
Récupérer le point de terminaison Cosmos DB
Tout d’abord, obtenez le point de terminaison de la base de données Cosmos DB dans Fabric. Ce point de terminaison est requis pour se connecter à l’aide du Kit de développement logiciel (SDK) Azure.
Ouvrez le portail Fabric (https://app.fabric.microsoft.com).
Accédez à votre base de données Cosmos DB existante.
Sélectionnez l’option Paramètres dans la barre de menus de la base de données.
Dans la boîte de dialogue paramètres, accédez à la section Connexion . Ensuite, copiez la valeur du champ point de terminaison pour la base de données NoSQL Cosmos DB. Vous utilisez cette valeur à l’étape ultérieure[s].
S’authentifier auprès d’Azure CLI
À présent, authentifiez-vous auprès d’Azure CLI. Le Kit de développement logiciel (SDK) Azure peut utiliser différents mécanismes d’authentification pour vérifier votre identité, mais Azure CLI est l’option la plus universelle et sans friction entre différents langages de développement.
Dans votre environnement de développement local, ouvrez un terminal.
S’authentifier auprès d’Azure CLI à l’aide de
az login.az loginSuivez les étapes interactives pour effectuer l’authentification multifacteur (MFA) et sélectionnez votre abonnement.
Vérifiez que votre compte est connecté correctement en interrogeant votre identité.
az ad signed-in-user showObservez la sortie de la commande précédente. Le
idchamp contient l’ID principal (objet) de l’identité actuellement connectée.{ "@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>" }Remarque
Dans les termes de Microsoft Entra ID, cette identité est appelée identité humaine. Il s’agit d’un type d’identité qui peut se connecter à des bases de données parmi de nombreux types différents, y compris, mais pas limité à :
- Identités managées (système ou affectées par l’utilisateur)
- Identités de charge de travail
- Identités d’application
- Identités d’appareil
Bien que ces étapes se concentrent sur l’utilisation de votre identité humaine pour se connecter à la base de données dans Fabric, les étapes sont similaires si vous vous connectez à l’aide d’un autre type d’identité. Pour plus d’informations sur les identités, consultez les principes fondamentaux de l’identité.
Se connecter à l’aide de l'Azure SDK
Enfin, utilisez le Kit de développement logiciel (SDK) Azure pour vous connecter à la base de données Cosmos DB dans Fabric à l’aide du point de terminaison et de votre identité. Le Kit de développement logiciel (SDK) Azure est fourni avec une bibliothèque d’identité unifiée qui gère automatiquement l’authentification en votre nom. Cette étape utilise le DefaultAzureCredential() type, qui recherche automatiquement le type d’identité approprié en fonction de votre environnement.
Remarque
Les objets d'identification Azure ne sont pas supportés dans les notebooks Microsoft Fabric. Vous ne pouvez pas utiliser DefaultAzureCredential pour vous authentifier auprès de Cosmos DB dans Fabric. Vous devez créer un objet d'authentification personnalisé dans vos notebooks pour vous authentifier. Pour plus d’informations, consultez s’authentifier auprès de Cosmos DB dans Microsoft 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)
Remarque
Cet exemple utilise les paquets azure-identity et azure-cosmos de PyPI. Notez l’utilisation de azure.cosmos.aio pour la prise en charge asynchrone.
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);
}
Remarque
Cet exemple utilise les packages @azure/identity et @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);
}
}
Remarque
Cet exemple utilise les packages Azure.Identity et Microsoft.Azure.Cosmos de NuGet.