Ověřování aplikací hostovaných v Azure v prostředcích Azure pomocí sady Azure SDK pro .NET

Pokud je aplikace hostovaná v Azure pomocí služby, jako je Aplikace Azure Service, Azure Virtual Machines nebo Azure Container Instances, doporučuje se použít spravovanou identitu při ověřování aplikace v prostředcích Azure.

Spravovaná identita poskytuje identitu pro vaši aplikaci, aby se dokázala připojit k jiným prostředkům Azure bez nutnosti používat tajný klíč nebo jiný tajný klíč aplikace. Azure interně zná identitu vaší aplikace a prostředky, ke které se může připojit. Azure tyto informace používá k automatickému získání tokenů Microsoft Entra pro aplikaci, aby se mohla připojit k dalším prostředkům Azure, aniž byste museli spravovat tajné kódy aplikací.

Typy spravovaných identit

Existují dva typy spravovaných identit:

  • Spravované identity přiřazené systémem – Tento typ spravované identity je poskytován a svázán přímo s prostředkem Azure. Když povolíte spravovanou identitu u prostředku Azure, získáte spravovanou identitu přiřazenou systémem pro tento prostředek. Spravovaná identita přiřazená systémem je svázaná s životním cyklem prostředku Azure, ke kterému je přidružená. Když se prostředek odstraní, Azure automaticky odstraní identitu za vás. Vzhledem k tomu, že stačí povolit spravovanou identitu pro prostředek Azure hostující váš kód, je to nejjednodušší typ spravované identity, kterou chcete použít.
  • Spravované identity přiřazené uživatelem – Můžete také vytvořit spravovanou identitu jako samostatný prostředek Azure. Nejčastěji se používá, když má vaše řešení více úloh, které běží na několika prostředcích Azure, které potřebují sdílet stejnou identitu a stejná oprávnění. Pokud by například vaše řešení mělo komponenty, které běžely na několika instancích služby App Service a virtuálních počítačů, které všechny potřebovaly přístup ke stejné sadě prostředků Azure, vytvoření a použití spravované identity přiřazené uživatelem napříč těmito prostředky by mělo smysl.

Tento článek popisuje postup povolení a použití spravované identity přiřazené systémem pro aplikaci. Pokud potřebujete použít spravovanou identitu přiřazenou uživatelem, přečtěte si článek Správa spravovaných identit přiřazených uživatelem a zjistěte, jak vytvořit spravovanou identitu přiřazenou uživatelem.

1. Povolení spravované identity v prostředku Azure hostujícím aplikaci

Prvním krokem je povolení spravované identity na prostředku Azure hostujícím vaši aplikaci. Pokud například hostujete aplikaci .NET pomocí služby Aplikace Azure Service, musíte pro webovou aplikaci App Service, která hostuje vaši aplikaci, povolit spravovanou identitu. Pokud jste k hostování aplikace používali virtuální počítač, povolili byste virtuálnímu počítači používat spravovanou identitu.

Spravovanou identitu můžete povolit pro prostředek Azure pomocí webu Azure Portal nebo Azure CLI.

Pokyny Snímek obrazovky
Na webu Azure Portal přejděte k prostředku, který je hostitelem kódu vaší aplikace.

Můžete například zadat název prostředku do vyhledávacího pole v horní části stránky a přejít na něj tak, že ho vyberete v dialogovém okně.
A screenshot showing how to use the top search bar in the Azure portal to locate and navigate to a resource in Azure.
Na stránce vašeho prostředku vyberte položku nabídky Identita z levé nabídky.

Všechny prostředky Azure, které podporují spravovanou identitu, budou mít položku nabídky Identita , i když se rozložení nabídky může mírně lišit.
A screenshot showing the location of the Identity menu item in the left-hand menu for an Azure resource.
Na stránce Identita:
  1. Změňte posuvník Stav na Zapnuto.
  2. Klikněte na Uložit.
Potvrzovací dialogové okno ověří, že chcete pro vaši službu povolit spravovanou identitu. Odpověď Ano a spravovaná identita se povolí pro prostředek Azure.
A screenshot showing how to enable managed identity for an Azure resource on the resource's Identity page.

2. Přiřazení rolí ke spravované identitě

Dále musíte určit, jaké role (oprávnění) vaše aplikace potřebuje, a přiřadit spravovanou identitu těmto rolím v Azure. Spravovanou identitu je možné přiřadit role 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 bar in the Azure portal to locate and navigate to a resource group in Azure. This is the resource group that you'll assign roles (permissions) to.
Na stránce skupiny prostředků v nabídce vlevo vyberte Řízení přístupu (IAM ). A screenshot showing the location of the Access control (IAM) menu item in the left-hand menu of an Azure resource group.
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 spravovanou identitu.
  2. Vyberte a vyberte členy v části Členové.
Na pravé straně webu Azure Portal se otevře dialogové okno.
A screenshot showing how to select managed identity as the type of user you want to assign the role (permission) on the add role assignments page.
V dialogovém okně Vybrat spravované identity :
  1. Rozevírací seznam Spravované identity a textové pole Vybrat lze použít k filtrování seznamu spravovaných identit ve vašem předplatném. V tomto příkladu se zobrazí jenom spravované identity přidružené ke službě App Service.
  2. Vyberte spravovanou identitu pro prostředek Azure hostující vaši aplikaci.
Pokračujte výběrem možnosti Vybrat v dolní části dialogového okna.
A screenshot showing how to use the select managed identities dialog to filter and select the managed identity to assign the role to.
Spravovaná identita 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 of the final add role assignment screen where a user needs to select the Review + Assign button to finalize the role assignment.

3. 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.