Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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émantické jádro SDK, tak i pro 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:
- Nepoužívejte princip nejnižších oprávnění. Poskytují zvýšená oprávnění bez ohledu na to, kdo je používá nebo pro který úkol.
- Mohou být omylem odeslány do správy zdrojového kódu nebo uloženy na nezabezpečených místech.
- 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) pro přiřazení identit minimálním nutným oprávněním.
- Klientskou knihovnu
Azure.Identitymůž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í kroky:
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.IdentityaDefaultAzureCredentialtří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.Identityklientské 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.
Například nakonfigurujte sémantické jádro pro ověření pomocí DefaultAzureCredential následujícím kódem:
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 Uživatel OpenAI služeb Cognitive Services (role ID: 5e0bd9bd-7b93-4f28-af87-19fc36ad61bd) 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 role spravované identitě stejně, jako byste to udělali u jednotlivého uživatelského účtu, například role uživatele služby Cognitive Services OpenAI. Přečtěte si další informace o práci se spravovanými identitami pomocí následujících zdrojů informací: