Sdílet prostřednictvím


Přístup ke službě Azure Storage z webové aplikace pomocí spravovaných identit

Zjistěte, jak získat přístup ke službě Azure Storage z webové aplikace (ne přihlášeného uživatele) spuštěného ve službě Azure App Service pomocí spravovaných identit. Zjednodušte zabezpečení a vyhněte se správě tajných kódů.

Snímek obrazovky s diagramem znázorňující, jak webová aplikace přistupuje ke službě Azure Storage pomocí spravovaných identit

Chcete přidat přístup k rovině dat Azure (Azure Storage, Azure SQL Database, Azure Key Vault nebo jiné služby) 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é si nemusí dělat starosti se správou 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.

Požadavky

  • Webová aplikace spuštěná ve službě Aplikace Azure, která má povolený modul ověřování/autorizace služby App Service.

Povolení spravované identity pro 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ě Identita a pak vyberte Systémově přiřazená. Ověřte, že je stav nastavený na Zapnuto. Pokud ne, vyberte Uložit a potom vyberte Ano a povolte spravovanou identitu přiřazenou systémem. Pokud je spravovaná identita povolená, stav je nastavený na Zapnuto a ID objektu je k dispozici.

Snímek obrazovky znázorňující možnost identity přiřazené systémem

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 pro obecné použití 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.

  1. V nabídce webu Azure Portal vyberte Všechny služby. V seznamu prostředků zadejte Účty úložiště. Jakmile začnete psát, seznam se průběžně filtruje podle vašeho zadání. Vyberte Účty úložiště.

  2. V okně Účty úložiště, které se zobrazí, vyberte Vytvořit.

  3. Vyberte předplatné, ve kterém chcete vytvořit účet úložiště.

  4. V rozevírací nabídce pod polem Skupina prostředků vyberte skupinu prostředků, která obsahuje vaši webovou aplikaci.

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

  6. Vyberte lokalitu pro svůj účet úložiště nebo použijte výchozí umístění.

  7. V části Výkon vyberte možnost Standard .

  8. V části Redundance vyberte v rozevíracím seznamu možnost Místně redundantní úložiště (LRS ).

  9. Výběrem možnosti Zkontrolovat zkontrolujte nastavení účtu úložiště a vytvořte účet.

  10. Vyberte Vytvořit.

Pokud chcete vytvořit kontejner Blob Storage ve službě Azure Storage, postupujte takto.

  1. Na webu Azure Portal přejděte ke svému novému účtu úložiště.

  2. V nabídce vlevo pro účet úložiště se posuňte do části Úložiště dat a pak vyberte Kontejnery.

  3. Vyberte tlačítko + Kontejner.

  4. 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 (-).

  5. Nastavte úroveň veřejného přístupu ke kontejneru. Výchozí úroveň je Privátní (bez anonymního přístupu).

  6. Výběrem možnosti Vytvořit 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, podobně jako kterémukoli jinému bezpečnostnímu principálu. 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í v kontejneru objektů blob a jeho datech.

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ě. Nyní chcete přidat přiřazení role robota pro App Service, která potřebuje přístup k účtu úložiště. Vyberte Přidat>Přidat přiřazení role pro otevření stránky Přidat přiřazení role.

  1. Na kartě Typ přiřazení vyberte Typ pracovní funkce a pak Další.

  2. Na kartě Role vyberte roli Přispěvatel dat objektů blob služby Storage v rozevíracím seznamu a pak vyberte Další.

  3. Na kartě Členové vyberte Přiřadit přístup ke>spravované identitě a pak vyberte Členové>vybrat členy. V okně Vybrat spravované identity vyhledejte a v rozevíracím seznamu Spravované identity vyberte spravovanou identitu vytvořenou pro službu App Service. Zvolte tlačítko Vybrat.

  4. Vyberte Zkontrolovat a přiřadit a pak znovu vyberte Zkontrolovat a přiřadit .

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

Třída DefaultAzureCredential se používá k získání přihlašovacího tokenu, aby váš kód mohl autorizovat žádosti ke službě 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 pro Blob Storage, abyste mohli pracovat se službou Blob Storage, a balíček NuGet klientské knihovny Azure Identity pro .NET, abyste se mohli ověřit pomocí přihlašovacích údajů Microsoft Entra. Nainstalujte klientské knihovny pomocí rozhraní příkazového řádku .NET (CLI) nebo konzoly Správce balíčků v sadě Visual Studio.

.NET CLI

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>Správce balíčků NuGet>Konzola správce balíčků.

Spusťte příkazy instalace.

Install-Package Azure.Storage.Blobs

Install-Package Azure.Identity

Příklad

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.

Další kroky