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 z přihlášeného uživatele) spuštěného na Azure App Service pomocí spravovaných identit. Tento kurz ukazuje například připojení ke službě Azure Storage.

Pomocí tohoto kurzu můžete bezpečně přistupovat ke každé službě, která podporuje spravovanou identitu (B na následujícím obrázku):

  • Azure Storage
  • Azure SQL Database
  • Azure Key Vault

Diagram znázorňující přístup k úložišti

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. Mohli byste použít sdílený klíč, ale pak se musíte starat o provozní zabezpečení toho, kdo může tajný klíč vytvářet, nasazovat a spravovat. Je také možné, že by se klíč mohl ověřit na GitHubu, což hackeři vědí, jak ho vyhledat. Bezpečnějším způsobem, jak webové aplikaci poskytnout přístup k datům, je použití spravovaných identit.

Spravovaná identita z Azure Active Directory (Azure AD) umožňuje App Service přístup k prostředkům prostřednictvím řízení přístupu na základě role (RBAC), aniž by se vyžadovaly přihlašovací údaje aplikace. Po přiřazení spravované identity k webové aplikaci se o vytvoření a distribuci certifikátu postará Azure. Lidé se nemusíte starat o správu tajných kódů nebo přihlašovacích údajů aplikací.

V tomto kurzu se naučíte:

  • Vytvoření spravované identity přiřazené systémem ve webové aplikaci
  • Vytvořte účet úložiště a kontejner 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 , než začnete.

Požadavky

Povolení spravované identity v aplikaci

Pokud vytvoříte a publikujete webovou aplikaci prostřednictvím sady Visual Studio, spravovaná identita se ve vaší aplikaci povolí. Ve službě App Service vyberte v levém podokně Identita a pak vyberte Přiřazeno systémem. Ověřte, že stav je nastavený na Zapnuto. Pokud ne, vyberte Zapnuto a pak Uložit. V potvrzovacím dialogovém okně vyberte Ano , aby se povolila spravovaná identita přiřazená systémem. Když je spravovaná identita povolená, stav se nastaví na Zapnuto a ID objektu je k dispozici.

Snímek obrazovky znázorňující možnost Identita 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 potřebovat později.

Vytvoření účtu úložiště a kontejneru Blob Storage

Teď můžete 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 popisuje, 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 v2, 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 později v tomto kurzu nahrát objekt blob, musíte nejprve vytvořit kontejner.

Pokud chcete v Azure Portal vytvořit účet úložiště pro obecné účely v2, postupujte takto.

  1. V nabídce webu Azure Portal vyberte Všechny služby. Do 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 zobrazeném okně Účty úložiště vyberte Vytvořit.

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

  4. V poli Skupina prostředků vyberte v rozevírací nabídce 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 také délku 3 až 24 znaků a může obsahovat pouze číslice a malá písmena.

  6. Vyberte umístění (oblast) pro váš účet úložiště nebo použijte výchozí hodnotu.

  7. Tato pole nechte nastavená na výchozí hodnoty:

    Pole Hodnota
    Model nasazení Resource Manager
    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 Horká
  8. Vyberte Zkontrolovat a vytvořit, zkontrolujte nastavení účtu úložiště a vytvořte účet.

  9. Vyberte Vytvořit.

Pokud chcete vytvořit kontejner Blob Storage ve službě Azure Storage, postupujte podle těchto kroků.

  1. V Azure Portal přejděte na nový účet úložiště.

  2. V levé nabídce účtu ú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. Kliknutím na OK kontejner vytvoříte.

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 na App Service se spravovanou identitou. Pomocí Azure RBAC můžete spravované identitě udělit přístup k jinému prostředku stejně jako k jakémukoli objektu zabezpečení. Role Přispěvatel dat v objektech blob služby Storage umožňuje webové aplikaci (reprezentované spravovanou identitou přiřazenou systémem) číst, zapisovat a odstraňovat přístup ke kontejneru objektů blob a datům.

V 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 přidat přiřazení role k robotu, službě App Service, která potřebuje přístup k účtu úložiště. Vyberte Přidat Přidat>přiřazení role a otevřete stránku Přidat přiřazení role .

Přiřaďte App Service v oboru předplatného roli Přispěvatel dat v objektech blob služby Storage. 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 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 třídy DefaultAzureCredential , která používá spravovanou identitu k načtení tokenů a jejich připojení ke klientovi služby. Následující příklad kódu získá přihlašovací údaje ověřeného tokenu a použije je 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 Blob Storage NuGet pro práci se službou Blob Storage a klientskou knihovnu Azure Identity pro balíček NuGet .NET pro ověřování pomocí Azure AD přihlašovacích údajů. 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

  1. Otevřete příkazový řádek a přepněte do adresáře, který obsahuje soubor projektu.

  2. Spusťte instalační příkazy.

    dotnet add package Azure.Storage.Blobs
    
    dotnet add package Azure.Identity
    

Konzola Správce balíčků

  1. Otevřete projekt nebo řešení v sadě Visual Studio a otevřete konzolu pomocí příkazu Nástroje> Správce >balíčků NuGet.

  2. Spusťte instalační příkazy.

    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 tento kurz dokončili a už nepotřebujete webovou aplikaci ani přidružené prostředky, vyčistěte prostředky, které jste vytvořili.

Odstranění skupiny prostředků

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

Snímek obrazovky znázorňující odstranění skupiny prostředků

Spuštění tohoto příkazu může trvat několik minut.

Odstranění registrace aplikace

V nabídce portálu vyberte Azure Active Directory>Registrace aplikací. Pak vyberte aplikaci, kterou jste vytvořili. Snímek obrazovky znázorňující výběr registrace aplikace

V přehledu registrace aplikace vyberte Odstranit. Snímek obrazovky znázorňující odstranění registrace aplikace

Další kroky

V tomto kurzu jste se naučili:

  • 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