Ověřování aplikací .NET ve službách Azure během místního vývoje pomocí vývojářských účtů
Vývojáři potřebují ladit a testovat cloudové aplikace na místních pracovních stanicích. Když aplikace běží na pracovní stanici vývojáře během místního vývoje, musí se stále ověřovat u všech služeb Azure, které aplikace používá. Tento článek popisuje, jak pomocí přihlašovacích údajů Azure vývojáře ověřit aplikaci v Azure během místního vývoje.
Aby se aplikace při místním vývoji ověřila v Azure pomocí přihlašovacích údajů Azure vývojáře, musí být vývojář přihlášený k Azure z některého z následujících vývojářských nástrojů:
- Visual Studio
- Azure CLI
- Azure Developer CLI
- Azure PowerShell
Knihovna identit Azure dokáže zjistit, že vývojář je přihlášený z některého z těchto nástrojů. Knihovna pak může získat přístupový token Microsoft Entra prostřednictvím nástroje k ověření aplikace v Azure jako přihlášený uživatel.
Tento přístup je nejjednodušší nastavit pro vývojový tým, protože využívá stávající účty Azure vývojářů. Účet vývojáře ale pravděpodobně má více oprávnění, než vyžaduje aplikace, a proto překračuje oprávnění, která aplikace běží v produkčním prostředí. Jako alternativu můžete vytvořit instanční objekty aplikace, které se použijí při místním vývoji, což může být vymezeno tak, aby měly přístup potřebný jenom pro aplikaci.
1. Vytvoření skupiny Microsoft Entra pro místní vývoj
Vzhledem k tomu, že na aplikaci pracuje téměř vždy více vývojářů, doporučuje se, aby skupina Microsoft Entra zapouzdřila role (oprávnění), které aplikace potřebuje v místním vývoji. Tento přístup nabízí následující výhody:
- Každý vývojář má jistotu, že má přiřazené stejné role, protože role jsou přiřazené na úrovni skupiny.
- Pokud je pro aplikaci potřeba nová role, stačí ji přidat jenom do skupiny aplikace.
- Pokud se k týmu připojí nový vývojář, získá po přidání do skupiny potřebná oprávnění pro práci s aplikací.
Pokud máte pro vývojový tým existující skupinu Microsoft Entra, můžete ji použít. V opačném případě proveďte následující kroky a vytvořte skupinu Microsoft Entra.
Poznámka:
Ve výchozím nastavení je vytváření skupin Microsoft Entra omezeno na určité privilegované role v adresáři. Pokud nemůžete vytvořit skupinu, obraťte se na správce vašeho adresáře. Pokud nemůžete přidat členy do existující skupiny, obraťte se na vlastníka skupiny nebo správce adresáře. Další informace najdete v tématu Správa skupin a členství ve skupinách Microsoft Entra.
2. Přiřazení rolí ke skupině Microsoft Entra
Dále určete, jaké role (oprávnění) vaše aplikace potřebuje k jakým prostředkům, a přiřaďte tyto role k aplikaci. V tomto příkladu jsou role přiřazeny ke skupině Microsoft Entra vytvořené v kroku 1. Skupiny je možné přiřadit roli v oboru prostředku, skupiny prostředků nebo předplatného. Tento příklad ukazuje, jak přiřadit role ve skupině prostředků, protože většina aplikací seskupuje všechny prostředky Azure do jedné skupiny prostředků.
3. Přihlášení k Azure pomocí vývojářských nástrojů
Pak se přihlaste k Azure pomocí některého z několika vývojářských nástrojů. Účet, který ověříte, by měl existovat také ve skupině Microsoft Entra, kterou jste vytvořili a nakonfigurovali dříve.
Přejděte na Možnosti nástrojů>a otevřete dialogové okno možnosti.
Do pole Možnosti hledání v horní části zadejte Azure a vyfiltrujte dostupné možnosti.
V části Ověřování služby Azure zvolte Výběr účtu.
Vyberte rozevírací nabídku v části Zvolte účet a zvolte přidat účet Microsoft. Otevře se okno s výzvou k výběru účtu. Zadejte přihlašovací údaje pro požadovaný účet Azure a pak vyberte potvrzení.
Výběrem tlačítka OK zavřete dialogové okno možností.
4. Implementace defaultAzureCredential ve vaší aplikaci
DefaultAzureCredential je názorná a uspořádaná posloupnost mechanismů pro ověřování v Microsoft Entra. Každý mechanismus ověřování je třída odvozená z TokenCredential třídy a je známá jako přihlašovací údaje. Za běhu DefaultAzureCredential
se pokusí ověřit pomocí prvních přihlašovacích údajů. Pokud se tento přihlašovací údaj nepodaří získat přístupový token, pokusí se další přihlašovací údaje v této sekvenci atd., dokud se přístupový token úspěšně nezíská. Aplikace tak může používat různé přihlašovací údaje v různých prostředích bez psaní kódu specifického pro prostředí.
Pořadí a umístění, ve kterých DefaultAzureCredential
se hledají přihlašovací údaje, najdete na adrese DefaultAzureCredential.
Pokud chcete použít DefaultAzureCredential
, přidejte do své aplikace balíčky Azure.Identity a volitelně balíčky Microsoft.Extensions.Azure :
V terminálu podle vašeho výběru přejděte do adresáře projektu aplikace a spusťte následující příkazy:
dotnet add package Azure.Identity
dotnet add package Microsoft.Extensions.Azure
Ke službám Azure se přistupuje pomocí specializovaných klientských tříd z různých klientských knihoven Azure SDK. Tyto třídy a vlastní služby by se měly zaregistrovat, aby k nim bylo možné přistupovat prostřednictvím injektáže závislostí v celé aplikaci. V Program.cs
následujícím postupu zaregistrujte třídu klienta a DefaultAzureCredential
:
- Zahrňte direktivy
Azure.Identity
aMicrosoft.Extensions.Azure
obory názvů prostřednictvímusing
direktiv. - Zaregistrujte klienta služby Azure pomocí odpovídající
Add
metody rozšíření s předponou. - Předejte instanci
DefaultAzureCredential
metodyUseCredential
.
Příklad:
using Microsoft.Extensions.Azure;
using Azure.Identity;
builder.Services.AddAzureClients(clientBuilder =>
{
clientBuilder.AddBlobServiceClient(
new Uri("https://<account-name>.blob.core.windows.net"));
clientBuilder.UseCredential(new DefaultAzureCredential());
});
Alternativou UseCredential
je vytvoření instance DefaultAzureCredential
přímo:
using Azure.Identity;
builder.Services.AddSingleton<BlobServiceClient>(_ =>
new BlobServiceClient(
new Uri("https://<account-name>.blob.core.windows.net"),
new DefaultAzureCredential()));
Když předchozí kód běží na místní vývojové pracovní stanici, hledá v proměnných prostředí instanční objekt aplikace nebo v místně nainstalovaných vývojářských nástrojích, jako je Visual Studio, pro sadu přihlašovacích údajů vývojáře. K ověření aplikace v prostředcích Azure se dá použít některý z přístupů během místního vývoje.
Při nasazení do Azure může stejný kód také ověřit vaši aplikaci v jiných prostředcích Azure. DefaultAzureCredential
může načíst nastavení prostředí a konfigurace spravovaných identit pro automatické ověřování v jiných službách.