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:
- Ověřování bez klíčů pomocí identit
- Řízení přístupu na základě role (RBAC) k přiřazování identit minimálním požadovaným oprávněním.
- Klientskou knihovnu
Azure.Identity
můžete použít ke zjištění různých přihlašovacích údajů v různých prostředích bez nutnosti změn kódu. - Automaticky zpracovává úlohy správy, jako je rotace základních klíčů.
Pracovní postup pro implementaci ověřování Microsoft Entra ve vaší aplikaci obecně zahrnuje následující:
Místní vývoj:
- Přihlaste se k Azure pomocí místního vývojového nástroje, jako je Azure CLI nebo Visual Studio.
- Nakonfigurujte kód tak, aby používal klientskou knihovnu
Azure.Identity
aDefaultAzureCredential
třídu. - 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:
- Jakmile aplikaci nakonfigurujete pro ověření pomocí
Azure.Identity
klientské knihovny, nasaďte ji do Azure. - Přiřaďte spravovanou identitu k aplikaci hostované v Azure.
- Přiřaďte spravované identitě role Azure, abyste umožnili přístup ke službě AI.
- Jakmile aplikaci nakonfigurujete pro ověření pomocí
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-19fc36ad61bd
role) 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í: