Sdílet prostřednictvím


Ověřování a autorizace služeb Azure AI pomocí .NET

Požadavky aplikací na služby Azure AI musí být ověřeny. V tomto článku prozkoumáte dostupné možnosti ověřování pro Azure OpenAI a další služby AI pomocí .NET. Tyto koncepty platí pro sémantickou sadu SDK jádra a sady SDK z konkrétních služeb, jako je Azure OpenAI. Většina služeb AI nabízí dva primární způsoby ověřování aplikací a uživatelů:

  • Ověřování na základě klíčů poskytuje přístup ke službě Azure pomocí hodnot tajných klíčů. Tyto tajné hodnoty se někdy označují jako klíče rozhraní API nebo přístupové klíče v závislosti na službě.
  • Microsoft Entra ID poskytuje komplexní řešení správy identit a přístupu, které zajišťuje, aby správné identity měly správnou úroveň přístupu k různým prostředkům Azure.

Následující části poskytují koncepční přehled těchto dvou přístupů, nikoli podrobných kroků implementace. Podrobnější informace o připojování ke službám Azure najdete v následujících zdrojích informací:

Poznámka:

Příklady v tomto článku se zaměřují především na připojení k Azure OpenAI, ale stejné koncepty a kroky implementace se přímo vztahují i na mnoho dalších služeb Azure AI.

Ověřování pomocí klíčů

Přístupové klíče umožňují aplikacím a nástrojům ověřovat se ve službě Azure AI, jako je Azure OpenAI, pomocí tajného klíče poskytovaného službou. Načtěte tajný klíč pomocí nástrojů, jako je Azure Portal nebo Azure CLI, a použijte ho ke konfiguraci kódu aplikace pro připojení ke službě AI:

builder.Services.AddAzureOpenAIChatCompletion(
    "deployment-model",
    "service-endpoint",
    "service-key"); // Secret key
var kernel = builder.Build();

Použití klíčů je jednoduchá možnost, ale tento přístup by se měl používat s opatrností. Klíče nejsou doporučenou možností ověřování, protože:

  • Neposouvejte zásadu nejnižších oprávnění – poskytují zvýšená oprávnění bez ohledu na to, kdo je používá nebo pro který úkol.
  • Můžete se omylem vrátit se změnami do správy zdrojového kódu nebo je uložit v nebezpečných umístěních.
  • Dají se snadno sdílet se stranami nebo je posílat stranám, které by neměly mít přístup.
  • Často vyžadují ruční správu a otáčení.

Místo toho zvažte použití ID Microsoft Entra pro ověřování, což je doporučené řešení pro většinu scénářů.

Ověřování pomocí ID Microsoft Entra

Microsoft Entra ID je cloudová služba pro správu identit a přístupu, která poskytuje rozsáhlou sadu funkcí pro různé scénáře obchodních a aplikací. Microsoft Entra ID je doporučené řešení pro připojení k Azure OpenAI a dalším službám AI a poskytuje následující výhody:

Pracovní postup pro implementaci ověřování Microsoft Entra ve vaší aplikaci obecně zahrnuje následující:

  • Místní vývoj:

    1. Přihlaste se k Azure pomocí místního vývojového nástroje, jako je Azure CLI nebo Visual Studio.
    2. Nakonfigurujte kód tak, aby používal klientskou knihovnu Azure.Identity a DefaultAzureCredential třídu.
    3. Přiřaďte role Azure k účtu, kterým jste se přihlásili, a povolte tak přístup ke službě AI.
  • Aplikace hostovaná v Azure:

    1. Jakmile aplikaci nakonfigurujete pro ověření pomocí Azure.Identity klientské knihovny, nasaďte ji do Azure.
    2. Přiřaďte spravovanou identitu k aplikaci hostované v Azure.
    3. Přiřaďte spravované identitě role Azure, abyste umožnili přístup ke službě AI.

Klíčové koncepty tohoto pracovního postupu jsou prozkoumány v následujících částech.

Místní ověřování v Azure

Při místním vývoji aplikací, které se připojují ke službám Azure AI, se ověřte v Azure pomocí nástroje, jako je Visual Studio nebo Azure CLI. Vaše místní přihlašovací údaje může klientská knihovna zjistit Azure.Identity a použít k ověření aplikace ve službách Azure, jak je popsáno v části Konfigurace kódu aplikace.

Pokud se například chcete ověřit v Azure místně pomocí Azure CLI, spusťte následující příkaz:

az login

Konfigurace kódu aplikace

Azure.Identity K implementaci ověřování Microsoft Entra ve vašem kódu použijte klientskou knihovnu ze sady Azure SDK. Knihovny Azure.Identity zahrnují DefaultAzureCredential třídu, která automaticky zjišťuje dostupné přihlašovací údaje Azure na základě aktuálního prostředí a dostupných nástrojů. Úplnou sadu podporovaných přihlašovacích údajů prostředí a pořadí hledání najdete v dokumentaci k sadě Azure SDK for .NET.

Nakonfigurujte například sémantické jádro pro ověření pomocí DefaultAzureCredential následujícího kódu:

Kernel kernel = Kernel
    .CreateBuilder()
    .AddAzureOpenAITextGeneration(
        "your-model",
        "your-endpoint",
        new DefaultAzureCredential())
    .Build();

DefaultAzureCredential umožňuje zvýšit úroveň aplikací z místního vývoje do produkčního prostředí bez změn kódu. Například během vývoje DefaultAzureCredential používá vaše přihlašovací údaje místního uživatele ze sady Visual Studio nebo Azure CLI k ověření ve službě AI. Když se aplikace nasadí do Azure, DefaultAzureCredential použije spravovanou identitu, která je přiřazená k vaší aplikaci.

Přiřazení rolí k vaší identitě

Řízení přístupu na základě role v Azure (Azure RBAC) je systém, který poskytuje jemně odstupňovanou správu přístupu k prostředkům Azure. Přiřaďte roli k objektu zabezpečení používanému DefaultAzureCredential pro připojení ke službě Azure AI bez ohledu na to, jestli se jedná o jednotlivého uživatele, skupinu, instanční objekt nebo spravovanou identitu. Role Azure jsou kolekce oprávnění, která identitě umožňují provádět různé úlohy, jako jsou generování dokončení nebo vytváření a odstraňování prostředků.

Přiřaďte příslušné identitě role, jako je například Uživatel OpenAI služeb Cognitive Services (ID 5e0bd9bd-7b93-4f28-af87-19fc36ad61bdrole) pomocí nástrojů, jako jsou Azure CLI, Bicep nebo Azure Portal. Například pomocí az role assignment create příkazu přiřaďte roli pomocí Azure CLI:

az role assignment create \
        --role "5e0bd9bd-7b93-4f28-af87-19fc36ad61bd" \
        --assignee-object-id "$PRINCIPAL_ID" \
        --scope /subscriptions/"$SUBSCRIPTION_ID"/resourceGroups/"$RESOURCE_GROUP" \
        --assignee-principal-type User

Další informace o Azure RBAC najdete v následujících zdrojích informací:

Přiřazení spravované identity k aplikaci

Ve většině scénářů by aplikace hostované v Azure měly používat spravovanou identitu pro připojení k jiným službám, jako je Azure OpenAI. Spravované identity poskytují plně spravovanou identitu v Microsoft Entra ID pro aplikace, které se mají použít při připojování k prostředkům, které podporují ověřování Microsoft Entra. DefaultAzureCredential zjistí identitu přidruženou k vaší aplikaci a použije ji k ověření v jiných službách Azure.

Ke své aplikaci můžete přiřadit dva typy spravovaných identit:

  • Identita přiřazená systémem je svázaná s vaší aplikací a při odstranění aplikace se odstraní. Aplikace může mít pouze jednu identitu přiřazenou systémem.
  • Identita přiřazená uživatelem je samostatný prostředek Azure, který je možné přiřadit k vaší aplikaci. Aplikace může mít více identit přiřazených uživatelem.

Přiřaďte spravované identitě role stejně jako jednotlivé uživatelské účty, jako je role uživatele OpenAI služeb Cognitive Services. Přečtěte si další informace o práci se spravovanými identitami pomocí následujících zdrojů informací: