Ověřování aplikací .NET ve službách Azure během místního vývoje pomocí vývojářských účtů

Při vytváření cloudových aplikací musí vývojáři ladit a testovat aplikace na místní pracovní stanici. Když je aplikace spuštěná 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.

A diagram showing how an app running in local developer will obtain the application service principal from a .env file and then use that identity to connect to Azure resources.

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 rozšíření VS Code Azure Tools, Azure CLI nebo Azure PowerShellu. Sada Azure SDK pro .NET dokáže zjistit, že vývojář je přihlášený z některého z těchto nástrojů, a pak z mezipaměti přihlašovacích údajů získat potřebné přihlašovací údaje 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ě bude mít více oprávnění, než vyžaduje aplikace, a proto překročí oprávnění, se kterými se aplikace bude spouštět 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 , které můžou být omezené tak, aby měly přístup potřebný jenom pro aplikaci.

1. Vytvoření skupiny Azure AD pro místní vývoj

Vzhledem k tomu, že na aplikaci pracuje téměř vždy více vývojářů, doporučuje se nejprve vytvořit skupinu Azure AD pro zapouzdření rolí (oprávnění) potřeb aplikace v místním vývoji. To 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 Azure AD pro aplikaci.
  • Pokud se nový vývojář připojí k týmu, musí se jednoduše přidat do správné skupiny Azure AD, aby získal správná oprávnění pro práci s aplikací.

Pokud máte pro vývojový tým existující skupinu Azure AD, můžete ji použít. V opačném případě proveďte následující kroky a vytvořte skupinu Azure AD.

Pokyny Snímek obrazovky
Na webu Azure Portal přejděte na stránku Azure Active Directory tak, že do vyhledávacího pole v horní části stránky zadáte Azure Active Directory a pak v části služeb vyberete Azure Active Directory . A screenshot showing how to use the top search bar in the Azure portal to search for and navigate to the Azure Active Directory page.
Na stránce Azure Active Directory vyberte v nabídce vlevo skupiny. A screenshot showing the location of the Groups menu item in the left-hand menu of the Azure Active Directory Default Directory page.
Na stránce Všechny skupiny vyberte Možnost Nová skupina. A screenshot showing the location of the New Group button in the All groups page.
Na stránce Nová skupina:
  1. Typ skupiny → Zabezpečení
  2. Název skupiny → název skupiny zabezpečení, obvykle vytvořený z názvu aplikace. Je také užitečné do názvu skupiny zahrnout řetězec, jako je local-dev , aby bylo možné určit účel skupiny.
  3. Popis skupiny → Popis účelu skupiny.
  4. Vyberte odkaz Žádné členy vybrané v části Členové a přidejte do skupiny členy.
A screenshot showing how to fill out the form to create a new Azure Active Directory group for the application. This screenshot also shows the location of the link to select to add members to this group
V dialogovém okně Přidat členy :
  1. Pomocí vyhledávacího pole vyfiltrujte seznam uživatelských jmen v seznamu.
  2. Vyberte uživatele pro místní vývoj pro tuto aplikaci. Při výběru objektů se přesunou do seznamu Vybrané položky v dolní části dialogového okna.
  3. Po dokončení vyberte tlačítko Vybrat .
A screenshot of the Add members dialog box showing how to select developer accounts to be included in the group.
Zpět na stránce Nová skupina vyberte Vytvořit a vytvořte skupinu.

Skupina se vytvoří a budete přesměrováni zpět na stránku Všechny skupiny . Zobrazení skupiny může trvat až 30 sekund a možná budete muset stránku aktualizovat kvůli ukládání do mezipaměti na webu Azure Portal.
A screenshot of the New Group page showing how to complete the process by selecting the Create button.

2. Přiřazení rolí ke skupině Azure AD

Dále musíte určit, jaké role (oprávnění) vaše aplikace potřebuje k jakým prostředkům, a přiřadit tyto role k aplikaci. V tomto příkladu se role přiřadí skupině Azure Active Directory vytvořené v kroku 1. Role 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 v oboru skupiny prostředků, protože většina aplikací seskupí všechny prostředky Azure do jedné skupiny prostředků.

Pokyny Snímek obrazovky
Vyhledejte skupinu prostředků pro vaši aplikaci vyhledáním názvu skupiny prostředků pomocí vyhledávacího pole v horní části webu Azure Portal.

Přejděte do skupiny prostředků tak, že v dialogovém okně vyberete název skupiny prostředků pod nadpisem Skupiny prostředků.
A screenshot showing how to use the top search box in the Azure portal to locate and navigate to the resource group you want to assign roles (permissions) to.
Na stránce skupiny prostředků v nabídce vlevo vyberte Řízení přístupu (IAM ). A screenshot of the resource group page showing the location of the Access control (IAM) menu item.
Na stránce Řízení přístupu (IAM):
  1. Vyberte kartu Přiřazení rolí.
  2. V horní nabídce vyberte + Přidat a potom přidejte přiřazení role z výsledné rozevírací nabídky.
A screenshot showing how to navigate to the role assignments tab and the location of the button used to add role assignments to a resource group.
Na stránce Přidat přiřazení role jsou uvedeny všechny role, které je možné přiřadit skupině prostředků.
  1. Pomocí vyhledávacího pole vyfiltrujte seznam na lépe spravovatelnou velikost. Tento příklad ukazuje, jak filtrovat role objektů blob služby Storage.
  2. Vyberte roli, kterou chcete přiřadit.
Výběrem možnosti Další přejdete na další obrazovku.
A screenshot showing how to filter and select role assignments to be added to the resource group.
Další stránka Přidat přiřazení role umožňuje určit, k jakému uživateli se má role přiřadit.
  1. V části Přiřadit přístup vyberte Uživatele, skupinu nebo instanční objekt.
  2. Vyberte a vyberte členy v části Členové.
Na pravé straně webu Azure Portal se otevře dialogové okno.
A screenshot showing the radio button to select to assign a role to an Azure AD group and the link used to select the group to assign the role to.
V dialogovém okně Vybrat členy :
  1. Textové pole Vybrat lze použít k filtrování seznamu uživatelů a skupin ve vašem předplatném. V případě potřeby zadejte několik prvních znaků místní vývojové skupiny Azure AD, kterou jste pro aplikaci vytvořili.
  2. Vyberte místní vývojovou skupinu Azure AD přidruženou k vaší aplikaci.
Pokračujte výběrem možnosti Vybrat v dolní části dialogového okna.
A screenshot showing how to filter for and select the Azure AD group for the application in the Select members dialog box.
Skupina Azure AD se teď zobrazí jako vybraná na obrazovce Přidat přiřazení role.

Výběrem možnosti Zkontrolovat a přiřadit přejděte na poslední stránku a pak proces dokončete opětovnou kontrolou a přiřazením .
A screenshot showing the completed Add role assignment page and the location of the Review + assign button used to complete the process.

3. Přihlášení k Azure pomocí nástrojů .NET

Dále se musíte přihlásit k Azure pomocí některé z několika možností nástrojů .NET. Účet, ke který se přihlašujete, by měl existovat také ve skupině Azure Active Directory, kterou jste vytvořili a nakonfigurovali dříve.

V horní nabídce sady Visual Studio přejděte na Možnosti nástrojů>a otevřete dialogové okno možnosti. Do vyhledávacího panelu v levém horním rohu zadejte Azure a vyfiltrujte 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í.

A screenshot showing how to sign in to Azure using Visual Studio.

4. Implementace defaultAzureCredential ve vaší aplikaci

DefaultAzureCredential podporuje více metod ověřování a určuje metodu ověřování, která se používá za běhu. Aplikace tak může používat různé metody ověřování v různých prostředích bez implementace 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 implementovat DefaultAzureCredential, nejprve přidejte Azure.Identity balíčky do aplikace a volitelně je Microsoft.Extensions.Azure přidejte. Můžete to provést pomocí příkazového řádku nebo Správce balíčků NuGet.

Otevřete prostředí terminálu podle svého výběru v adresáři projektu aplikace a zadejte následující příkaz.

dotnet add package Azure.Identity
dotnet add package Microsoft.Extensions.Azure

Ke službám Azure se obecně přistupuje pomocí odpovídajících klientských tříd ze sady SDK. Tyto třídy a vlastní služby by se měly v Program.cs souboru zaregistrovat, aby k nim bylo možné přistupovat prostřednictvím injektáže závislostí v celé aplikaci. Program.csUvnitř , postupujte podle následujících kroků k správnému nastavení služby a DefaultAzureCredential.

  1. Zahrňte do příkazu using obory Azure.Identity názvů a Microsoft.Extensions.Azure obory názvů.
  2. Zaregistrujte službu Azure pomocí příslušných pomocných metod.
  3. Předejte instanci DefaultAzureCredential objektu metodě UseCredential .

Příklad je znázorněn v následujícím segmentu kódu.

using Microsoft.Extensions.Azure;
using Azure.Identity;

// Inside of Program.cs
builder.Services.AddAzureClients(x =>
{
    x.AddBlobServiceClient(new Uri("https://<account-name>.blob.core.windows.net"));
    x.UseCredential(new DefaultAzureCredential());
});

Alternativně můžete ve svých službách využívat DefaultAzureCredential více přímo bez pomoci dalších metod registrace Azure, jak je znázorněno níže.

using Azure.Identity;

// Inside of Program.cs
builder.Services.AddSingleton<BlobServiceClient>(x => 
    new BlobServiceClient(
        new Uri("https://<account-name>.blob.core.windows.net"),
        new DefaultAzureCredential()));

Když se výše uvedený kód spustí na místní pracovní stanici během místního vývoje, podívá se do proměnných prostředí pro instanční objekt aplikace nebo v sadě Visual Studio, VS Code, Azure CLI nebo Azure PowerShellu pro sadu přihlašovacích údajů pro vývojáře, z nichž je možné použít k ověření aplikace v prostředcích Azure během místního vývoje.

Když se do Azure nasadí stejný kód, můžete také ověřit 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.