Ověřování aplikací hostovaných v Azure s prostředky 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:

  • 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.
  • Přiřazené uživatelem – Spravovanou identitu můžete vytvořit také 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ě. Snímek obrazovky znázorňující použití horního panelu hledání na webu Azure Portal k vyhledání a přechodu na prostředek 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. Snímek obrazovky znázorňující umístění položky nabídky Identita v nabídce vlevo pro prostředek Azure
Na stránce Identita:
  1. Změňte posuvník Stav na Zapnuto.
  2. Zvolte 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.
Snímek obrazovky znázorňující povolení spravované identity pro prostředek Azure na stránce Identita prostředku

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

Dále určete, které role (oprávnění) vaše aplikace potřebuje, a přiřaďte spravované identitě k 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ů vaší aplikace 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ů.
Snímek obrazovky znázorňující použití horního panelu hledání na webu Azure Portal k vyhledání a přechodu na skupinu prostředků v Azure Toto je skupina prostředků, ke které přiřadíte role (oprávnění).
Na stránce skupiny prostředků v nabídce vlevo vyberte Řízení přístupu (IAM ). Snímek obrazovky znázorňující umístění položky nabídky Řízení přístupu (IAM) v levé nabídce skupiny prostředků Azure
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.
Snímek obrazovky znázorňující, jak přejít na kartu Přiřazení rolí a umístění tlačítka použitého k přidání přiřazení rolí do skupiny prostředků
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.
Snímek obrazovky znázorňující, jak filtrovat a vybrat přiřazení rolí, která se mají přidat do skupiny prostředků
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.
Snímek obrazovky znázorňující, jak vybrat spravovanou identitu jako typ uživatele, kterému chcete přiřadit roli (oprávnění) na stránce přidat přiřazení rolí
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í výběrem služby App Service 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.
Snímek obrazovky znázorňující, jak pomocí dialogového okna Vybrat spravované identity filtrovat a vybrat spravovanou identitu pro přiřazení role
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 .
Snímek obrazovky s obrazovkou posledního přidání přiřazení role, kde uživatel musí vybrat tlačítko Zkontrolovat a přiřadit k dokončení přiřazení role

3. 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.csnásledujícím postupu zaregistrujte třídu klienta a DefaultAzureCredential:

  1. Zahrňte direktivy Azure.Identity a Microsoft.Extensions.Azure obory názvů prostřednictvím using direktiv.
  2. Zaregistrujte klienta služby Azure pomocí odpovídající Addmetody rozšíření s předponou.
  3. Předejte instanci DefaultAzureCredential metody UseCredential .

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.