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 pro webovou aplikaci (ne přihlášeného uživatele) spuštěnou ve službě Aplikace Azure Pomocí spravovaných identit.

Diagram that shows how to access storage.

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

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

Screenshot that shows the System assigned identity option.

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.

  1. 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ě.

  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 poli Skupina prostředků vyberte skupinu prostředků, která obsahuje vaši webovou aplikaci, z rozevírací nabídky.

  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 pro svůj účet úložiště nějaké umístění 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, 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.

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

  2. Na kartě Role vyberte v rozevíracím seznamu roli Přispěvatel dat objektů blob služby Storage 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

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 (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>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

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