Kurz: Přístup ke službám Azure z webové aplikace .NET
Zjistěte, jak přistupovat ke službám Azure, jako je Azure Storage, z webové aplikace (ne přihlášeného uživatele) spuštěné ve službě Aplikace Azure Pomocí spravovaných identit. Tento kurz ukazuje připojení ke službě Azure Storage jako příklad.
K jakékoli službě , která podporuje spravovanou identitu (B na následujícím obrázku), je možné bezpečně přistupovat pomocí tohoto kurzu:
- Azure Storage
- Azure SQL Database
- Azure Key Vault
Chcete přidat zabezpečený přístup ke službám Azure (Azure Storage, Azure SQL Database, Azure Key Vault nebo jiným službám) z vaší webové aplikace. Můžete použít sdílený klíč, ale pak se musíte starat o provozní zabezpečení toho, kdo může vytvořit, nasadit a spravovat tajný klíč. Je také možné, že klíč je možné zkontrolovat na GitHubu, který hackeři vědí, jak hledat. Bezpečnější způsob, jak webové aplikaci poskytnout přístup k datům, je použití spravovaných identit.
Spravovaná identita z Microsoft Entra ID umožňuje službě App Service přístup k prostředkům prostřednictvím řízení přístupu na základě role (RBAC) bez vyžadování přihlašovacích údajů aplikace. Po přiřazení spravované identity k webové aplikaci se Azure postará o vytvoření a distribuci certifikátu. Lidé se nemusíte starat o správu tajných kódů nebo přihlašovacích údajů aplikace.
V tomto kurzu se naučíte:
- Vytvořte spravovanou identitu přiřazenou systémem ve webové aplikaci.
- Vytvořte účet úložiště a kontejner služby Azure Blob Storage.
- Přístup k úložišti z webové aplikace pomocí spravovaných identit
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
Předpoklady
- Webová aplikace spuštěná ve službě Aplikace Azure:
Povolení spravované identity v aplikaci
Pokud webovou aplikaci vytvoříte a publikujete prostřednictvím sady Visual Studio, spravovaná identita byla ve vaší aplikaci povolená za vás. Ve službě App Service vyberte v levém podokně Možnost Identita a pak vyberte Přiřazený systém. Ověřte, že je stav nastavený na Zapnuto. Pokud ne, vyberte Zapnuto a pak Uložit. Výběrem možnosti Ano v potvrzovacím dialogovém okně povolte spravovanou identitu přiřazenou systémem. Pokud je spravovaná identita povolená, stav je nastavený na Zapnuto a ID objektu je k dispozici.
Tento krok vytvoří nové ID objektu, které se liší od ID aplikace vytvořené v podokně Ověřování/autorizace . Zkopírujte ID objektu spravované identity přiřazené systémem. Budete ho totiž potřebovat později.
Vytvoření účtu úložiště a kontejneru Blob Storage
Teď jste připraveni vytvořit účet úložiště a kontejner Blob Storage.
Každý účet úložiště musí patřit do nějaké skupiny prostředků Azure. Skupina prostředků je logický kontejner pro seskupení služeb Azure. Při vytváření účtu úložiště máte možnost buď vytvořit novou skupinu prostředků, nebo použít existující skupinu prostředků. Tento článek ukazuje, jak vytvořit novou skupinu prostředků.
Účet úložiště Univerzální v2 poskytuje přístup ke všem službám Azure Storage: objektům blob, souborům, frontám, tabulkám a diskům. Zde uvedené kroky vytvoří účet úložiště pro obecné účely verze 2, ale postup vytvoření libovolného typu účtu úložiště je podobný.
Objekty blob ve službě Azure Storage jsou uspořádané do kontejnerů. Než budete moct nahrát objekt blob později v tomto kurzu, musíte nejprve vytvořit kontejner.
Pokud chcete vytvořit účet úložiště pro obecné účely v2 na webu Azure Portal, postupujte takto.
V nabídce webu Azure Portal vyberte Všechny služby. V seznamu prostředků zadejte účty úložiště. Seznam se průběžně filtruje podle zadávaného textu. Vyberte Účty úložiště.
V okně Účty úložiště, které se zobrazí, vyberte Vytvořit.
Vyberte předplatné, ve kterém chcete vytvořit účet úložiště.
V poli Skupina prostředků vyberte skupinu prostředků, která obsahuje vaši webovou aplikaci, z rozevírací nabídky.
Dále zadejte název účtu úložiště. Zvolený název musí být jedinečný v rámci Azure. Název musí mít délku 3 až 24 znaků a může obsahovat jenom číslice a malá písmena.
Vyberte umístění (oblast) pro váš účet úložiště nebo použijte výchozí hodnotu.
Tato pole nechte nastavená na výchozí hodnoty:
Pole Hodnota Model nasazení Správce zdrojů Výkon Standard Druh účtu StorageV2 (obecné účely v2) Replikace Geograficky redundantní úložiště s přístupem pro čtení (RA-GRS) Úroveň přístupu Značný zájem Vyberte Zkontrolovat a vytvořit, zkontrolujte nastavení účtu úložiště a vytvořte účet.
Vyberte Vytvořit.
Pokud chcete vytvořit kontejner Blob Storage ve službě Azure Storage, postupujte takto.
Na webu Azure Portal přejděte ke svému novému účtu úložiště.
V nabídce vlevo pro účet úložiště se posuňte do části Úložiště dat a pak vyberte Kontejnery.
Vyberte tlačítko + Kontejner.
Zadejte název nového kontejneru. Název kontejneru musí obsahovat malá písmena, musí začínat písmenem nebo číslicí a smí obsahovat jenom písmena, číslice a spojovníky (-).
Nastavte úroveň veřejného přístupu ke kontejneru. Výchozí úroveň je Privátní (bez anonymního přístupu).
Tlačítkem OK vytvořte kontejner.
Udělení přístupu k účtu úložiště
Abyste mohli vytvářet, číst nebo odstraňovat objekty blob, musíte webové aplikaci udělit přístup k účtu úložiště. V předchozím kroku jste nakonfigurovali webovou aplikaci spuštěnou ve službě App Service se spravovanou identitou. Pomocí Azure RBAC můžete spravované identitě udělit přístup k jinému prostředku, stejně jako jakýkoli objekt zabezpečení. Role Přispěvatel dat objektů blob služby Storage poskytuje webové aplikaci (reprezentovanou spravovanou identitou přiřazenou systémem) přístup ke čtení, zápisu a odstraňování přístupu ke kontejneru objektů blob a datům.
Poznámka:
Azure RBAC nepodporuje některé operace s kontejnery privátních objektů blob, jako je zobrazení objektů blob nebo kopírování objektů blob mezi účty. Kontejner objektů blob s úrovní privátního přístupu vyžaduje token SAS pro jakoukoli operaci, která není autorizována azure RBAC. Další informace naleznete v tématu Kdy použít sdílený přístupový podpis.
Na webu Azure Portal přejděte do svého účtu úložiště a udělte přístup k webové aplikaci. V levém podokně vyberte Řízení přístupu (IAM) a pak vyberte Přiřazení rolí. Zobrazí se seznam uživatelů, kteří mají přístup k účtu úložiště. Teď chcete do robota přidat přiřazení role, služba App Service, která potřebuje přístup k účtu úložiště. Výběrem možnosti Přidat>přiřazení role otevřete stránku Přidat přiřazení role.
Přiřaďte roli Přispěvatel dat v objektech blob služby Storage službě App Service v oboru předplatného. Podrobný postup najdete v tématu Přiřazování rolí Azure s využitím webu Azure Portal.
Vaše webová aplikace teď má přístup k vašemu účtu úložiště.
Přístup ke službě Blob Storage
DefaultAzureCredential třída slouží k získání přihlašovacích údajů tokenu pro váš kód k autorizaci požadavků do Služby Azure Storage. Vytvořte instanci DefaultAzureCredential třídy, která používá spravovanou identitu k načtení tokenů a jejich připojení k klientovi služby. Následující příklad kódu získá přihlašovací údaje ověřeného tokenu a použije ho k vytvoření objektu klienta služby, který nahraje nový objekt blob.
Pokud chcete tento kód zobrazit jako součást ukázkové aplikace, podívejte se na ukázku na GitHubu.
Instalace balíčků klientské knihovny
Nainstalujte balíček NuGet služby Blob Storage pro práci se službou Blob Storage a klientskou knihovnou Azure Identity pro balíček NuGet pro .NET pro ověření pomocí přihlašovacích údajů Microsoft Entra. Nainstalujte klientské knihovny pomocí rozhraní příkazového řádku .NET Core nebo konzoly Správce balíčků v sadě Visual Studio.
Příkazový řádek .NET Core
Otevřete příkazový řádek a přepněte do adresáře, který obsahuje váš soubor projektu.
Spusťte příkazy instalace.
dotnet add package Azure.Storage.Blobs dotnet add package Azure.Identity
Konzola Správce balíčků
Otevřete projekt nebo řešení v sadě Visual Studio a otevřete konzolu pomocí příkazu Nástroje>NuGet Správce balíčků> Správce balíčků Konzola.
Spusťte příkazy instalace.
Install-Package Azure.Storage.Blobs Install-Package Azure.Identity
Příklad .NET
using System;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text;
using System.IO;
using Azure.Identity;
// Some code omitted for brevity.
static public async Task UploadBlob(string accountName, string containerName, string blobName, string blobContents)
{
// Construct the blob container endpoint from the arguments.
string containerEndpoint = string.Format("https://{0}.blob.core.windows.net/{1}",
accountName,
containerName);
// Get a credential and create a client object for the blob container.
BlobContainerClient containerClient = new BlobContainerClient(new Uri(containerEndpoint),
new DefaultAzureCredential());
try
{
// Create the container if it does not exist.
await containerClient.CreateIfNotExistsAsync();
// Upload text to a new block blob.
byte[] byteArray = Encoding.ASCII.GetBytes(blobContents);
using (MemoryStream stream = new MemoryStream(byteArray))
{
await containerClient.UploadBlobAsync(blobName, stream);
}
}
catch (Exception e)
{
throw e;
}
}
Vyčištění prostředků
Pokud jste dokončili tento kurz a už nepotřebujete webovou aplikaci nebo přidružené prostředky, vyčistěte prostředky, které jste vytvořili.
Odstranění skupiny prostředků
Na webu Azure Portal vyberte v nabídce portálu skupiny prostředků a vyberte skupinu prostředků, která obsahuje vaši službu App Service a plán služby App Service.
Výběrem možnosti Odstranit skupinu prostředků odstraňte skupinu prostředků a všechny prostředky.
Spuštění tohoto příkazu může trvat několik minut.
Další kroky
V tomto kurzu jste se naučili, jak:
- Vytvořte spravovanou identitu přiřazenou systémem.
- Vytvořte účet úložiště a kontejner Blob Storage.
- Přístup k úložišti z webové aplikace pomocí spravovaných identit