แชร์ผ่าน


รับรองความถูกต้องกับ Cosmos DB ใน Microsoft Fabric จากบริการโฮสต์ Azure

Cosmos DB ใน Microsoft Fabric อาศัยการรับรองความถูกต้องของ Microsoft Entra ID และบทบาทระนาบข้อมูลในตัวเพื่อจัดการการรับรองความถูกต้องและการอนุญาต ในคู่มือนี้ คุณใช้ Microsoft Entra ID และบัญชีที่ลงชื่อเข้าใช้ของคุณเพื่อเชื่อมต่อกับสิ่งประดิษฐ์ Cosmos DB ใน Microsoft Fabric

Important

ขั้นตอนจะคล้ายกับกระบวนการที่ใช้ในการรับรองความถูกต้องหากคุณกําลังใช้บริการ หลักกลุ่ม หรือข้อมูลประจําตัว Microsoft Entra ID ชนิดอื่น เพื่อให้โครงร่างสําคัญของบริการสามารถเชื่อมต่อกับ Microsoft Fabric และฐานข้อมูล Cosmos DB ของคุณ ให้เปิดใช้งาน "บริการหลักสามารถใช้การตั้งค่า Fabric API ในผู้เช่า Fabric ได้ สําหรับข้อมูลเพิ่มเติม ดูการตั้งค่าผู้เช่า Microsoft Fabric การตั้งค่านี้จะเปิดใช้งานตามค่าเริ่มต้นสําหรับลูกค้าใหม่

Prerequisites

  • ข้อมูลประจําตัวที่มีสิทธิ์ อ่าน สําหรับฐานข้อมูลใน Fabric

  • Azure CLI

  • Python 3.12 หรือใหม่กว่า
  • Node.js 22 หรือใหม่กว่า
  • .NET SDK 9.0 หรือใหม่กว่า

เรียกใช้จุดสิ้นสุด Cosmos DB

ก่อนอื่น รับจุดสิ้นสุดสําหรับฐานข้อมูล Cosmos DB ใน Fabric จุดสิ้นสุดนี้จําเป็นต้องเชื่อมต่อโดยใช้ Azure SDK

  1. เปิดพอร์ทัล Fabric (https://app.fabric.microsoft.com)

  2. นําทางไปยังฐานข้อมูล Cosmos DB ที่มีอยู่ของคุณ

  3. เลือกตัวเลือก การตั้งค่า ในแถบเมนูสําหรับฐานข้อมูล

    สกรีนช็อตของตัวเลือกแถบเมนู 'การตั้งค่า' สําหรับฐานข้อมูลในพอร์ทัล Fabric

  4. ในกล่องโต้ตอบการตั้งค่า ให้ไปที่ส่วนการเชื่อมต่อ จากนั้นคัดลอกค่าของจุดสิ้นสุดสําหรับเขตข้อมูลฐานข้อมูล Cosmos DB NoSQL คุณใช้ค่านี้ในขั้นตอนถัดไป[s]

    สกรีนช็อตของส่วน 'การเชื่อมต่อ' ของกล่องโต้ตอบ 'การตั้งค่า' สําหรับฐานข้อมูลในพอร์ทัล Fabric

การรับรองความถูกต้องกับ Azure CLI

ในตอนนี้ ให้รับรองความถูกต้องกับ Azure CLI Azure SDK สามารถใช้กลไกการรับรองความถูกต้องที่แตกต่างกันเพื่อตรวจสอบข้อมูลประจําตัวของคุณ แต่ Azure CLI เป็นตัวเลือกสากลและไม่มีแรงเสียดทานมากที่สุดในภาษานักพัฒนาต่าง ๆ

  1. ในสภาพแวดล้อมการพัฒนาภายในเครื่องของคุณ ให้เปิดเทอร์มินัล

  2. รับรองความถูกต้องกับ Azure CLI โดยใช้az login

    az login
    
  3. ทําตามขั้นตอนแบบโต้ตอบเพื่อทําการรับรองความถูกต้องแบบหลายปัจจัย (MFA) และเลือกการสมัครใช้งานของคุณ

  4. ตรวจสอบว่าบัญชีของคุณเข้าสู่ระบบเรียบร้อยแล้วโดยการคิวรีข้อมูลประจําตัวของคุณ

    az ad signed-in-user show
    
  5. สังเกตผลลัพธ์ของคําสั่งก่อนหน้า เขตข้อมูล id มี ID โครงร่างสําคัญ (ออบเจ็กต์) ของข้อมูลประจําตัวที่ลงชื่อเข้าใช้ในปัจจุบัน

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

    Note

    ในแง่ของ Microsoft Entra ID ข้อมูลประจําตัวนี้เรียกว่า ข้อมูลประจําตัวของมนุษย์ของคุณ ซึ่งเป็นประเภทของข้อมูลประจําตัวที่สามารถเชื่อมต่อกับฐานข้อมูลระหว่างหลายชนิดรวมถึง แต่ไม่จํากัดเพียง:

    • ข้อมูลประจําตัวที่มีการจัดการ (ระบบหรือผู้ใช้กําหนด)
    • ข้อมูลประจําตัวของปริมาณงาน
    • ข้อมูลประจําตัวของแอปพลิเคชัน
    • ข้อมูลประจําตัวอุปกรณ์

    ในขณะที่ขั้นตอนเหล่านี้มุ่งเน้นไปที่การใช้ข้อมูลประจําตัวของมนุษย์เพื่อเชื่อมต่อกับฐานข้อมูลใน Fabric ขั้นตอนจะคล้ายกันถ้าคุณกําลังเชื่อมต่อโดยใช้ข้อมูลประจําตัวชนิดอื่น สําหรับข้อมูลเพิ่มเติมเกี่ยวกับข้อมูลประจําตัว โปรดดู ข้อมูลพื้นฐานเกี่ยวกับข้อมูลประจําตัว

เชื่อมต่อโดยใช้ Azure SDK

สุดท้าย ใช้ Azure SDK เพื่อเชื่อมต่อกับฐานข้อมูล Cosmos DB ใน Fabric โดยใช้จุดสิ้นสุดและข้อมูลประจําตัวของคุณ Azure SDK มาพร้อมกับไลบรารี ข้อมูลประจําตัว แบบรวมที่จัดการการรับรองความถูกต้องในนามของคุณโดยอัตโนมัติ ขั้นตอนนี้ใช้ DefaultAzureCredential() ชนิด ซึ่งจะค้นหาชนิดข้อมูลประจําตัวที่ถูกต้องตามสภาพแวดล้อมของคุณโดยอัตโนมัติ

Note

ออบเจ็กต์ข้อมูลประจําตัว Azure ไม่ได้รับการสนับสนุนในสมุดบันทึก Microsoft Fabric คุณไม่สามารถใช้เพื่อ DefaultAzureCredential รับรองความถูกต้องกับ Cosmos DB ใน Fabric คุณต้องสร้างออบเจ็กต์ข้อมูลประจําตัวแบบกําหนดเองในสมุดบันทึกของคุณเพื่อรับรองความถูกต้อง สําหรับข้อมูลเพิ่มเติม โปรดดู รับรองความถูกต้องกับ Cosmos DB ใน Microsoft Fabric จาก 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)

Note

ตัวอย่างนี้ใช้ azure-identity แพคเกจ และ azure-cosmos จาก PyPI สังเกตการใช้ azure.cosmos.aio การสนับสนุนแบบอะซิงโครนัส

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

Note

ตัวอย่างนี้ใช้ @azure/identity แพคเกจ และ @azure/cosmos จาก 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);
    }
}

Note

ตัวอย่างนี้ใช้ Azure.Identity แพคเกจ และ Microsoft.Azure.Cosmos จาก NuGet