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.
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ů.
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.cs
Uvnitř , postupujte podle následujících kroků k správnému nastavení služby a DefaultAzureCredential
.
- Zahrňte do příkazu using obory
Azure.Identity
názvů aMicrosoft.Extensions.Azure
obory názvů. - Zaregistrujte službu Azure pomocí příslušných pomocných metod.
- 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.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro