Sdílet prostřednictvím


Ověřte se ve službě Cosmos DB v Microsoft Fabric z hostitelských služeb Azure

Cosmos DB ve službě Microsoft Fabric využívá výhradně Microsoft Entra ID pro ověřování a vestavěné role v datové rovině ke správě ověřování a autorizace. V této příručce použijete Id Microsoft Entra a váš přihlášený účet pro připojení k artefaktu Cosmos DB v Microsoft Fabric.

Důležité

Postup je podobný tomu, jakým se ověřuje, zda používáte instanční objekt, skupinu nebo jiný typ identity Entra ID od Microsoftu. Pokud chcete instančnímu objektu udělit možnost připojit se k Microsoft Fabric a databázi Cosmos DB, povolte v tenantovi Fabric nastavení "Instanční objekty můžou používat rozhraní Fabric API". Další informace najdete v tématu Nastavení tenanta Microsoft Fabric. Toto nastavení je ve výchozím nastavení povolené pro nové zákazníky.

Požadavky

  • Identita s oprávněním ke čtení pro databázi ve Fabric.

  • Azure CLI (příkazový řádek nástroje Azure)

  • Python 3.12 nebo novější
  • Node.js 22 nebo novější
  • .NET SDK 9.0 nebo novější

Načtení koncového bodu Cosmos DB

Nejprve získejte koncový bod pro databázi Cosmos DB ve službě Fabric. Tento koncový bod se vyžaduje pro připojení pomocí sady Azure SDK.

  1. Otevřete portál Fabric (https://app.fabric.microsoft.com).

  2. Přejděte do existující databáze Cosmos DB.

  3. V řádku nabídek databáze vyberte možnost Nastavení .

    Snímek obrazovky s položkou menu 'Nastavení' pro databázi na portálu Fabric

  4. V dialogovém okně nastavení přejděte do části Připojení . Pak zkopírujte hodnotu pole koncového bodu pro databázi NoSQL služby Cosmos DB. Tuto hodnotu použijete v pozdějších krocích.

    Snímek obrazovky s částí Připojení v dialogovém okně Nastavení pro databázi na portálu Fabric

Ověřování v Azure CLI

Teď se ověřte v Azure CLI. Sada Azure SDK může k ověření vaší identity použít různé mechanismy ověřování, ale Azure CLI je univerzální a bezproblémovou možností v různých vývojářských jazycích.

  1. V místním vývojovém prostředí otevřete terminál.

  2. Ověření v Azure CLI pomocí az login.

    az login
    
  3. Podle interaktivních kroků proveďte vícefaktorové ověřování (MFA) a vyberte své předplatné.

  4. Ověřte, že jste k účtu úspěšně přihlášeni tím, že ověříte svou identitu.

    az ad signed-in-user show
    
  5. Prohlédněte si výstup předchozího příkazu. Pole id obsahuje identifikátor objektu aktuálně přihlášené identity.

    {
      "@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>"
    }
    

    Poznámka:

    V pojmech Microsoft Entra ID se tato identita označuje jako vaše lidská identita. Jedná se o typ identity, který se může připojit k databázím mezi mnoha různými typy, mezi které patří mimo jiné:

    • Spravované identity (systémové nebo uživatelsky přiřazené)
    • Identita pracovních zátěží
    • Identity aplikací
    • Identity zařízení

    I když se tyto kroky zaměřují na použití identity uživatele pro připojení k databázi ve Fabricu, postup je podobný, pokud se připojujete pomocí jiného typu identity. Další informace o identitách najdete v tématu Základy identit.

Připojení pomocí sady Azure SDK

Nakonec se připojte pomocí Azure SDK sady k databázi Cosmos DB ve Fabric pomocí koncového bodu a vaší identity. Sada Azure SDK se dodává s jednotnou knihovnou identit , která automaticky zpracovává ověřování vaším jménem. Tento krok používá DefaultAzureCredential() typ, který automaticky najde správný typ identity na základě vašeho prostředí.

Poznámka:

Objekty přihlašovacích údajů Azure se v poznámkových blocích Microsoft Fabric nepodporují. Nelze použít DefaultAzureCredential pro autentizaci ke službě Cosmos DB ve Fabric. Abyste mohli provést ověření, musíte ve svých poznámkových blocích vytvořit vlastní objekt přihlašovacích údajů. Další informace najdete v části Ověřování do Cosmos DB ve službě Microsoft Fabric z poznámkových bloků 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)

Poznámka:

Tato ukázka používá balíčky azure-identity a azure-cosmos z PyPI. Všimněte si použití azure.cosmos.aio pro podporu asynchronních operací.

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);
}

Poznámka:

Tato ukázka používá balíček @azure/identity a @azure/cosmos z 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);
    }
}

Poznámka:

Tato ukázka používá balíčky Azure.Identity a Microsoft.Azure.Cosmos z NuGetu.