Share via


Az Azure Storage elérése webalkalmazásból felügyelt identitások használatával

Megtudhatja, hogyan férhet hozzá az Azure Storage-hoz a Azure-alkalmazás Szolgáltatáson futó webalkalmazáshoz (nem bejelentkezett felhasználóhoz) felügyelt identitások használatával.

Diagram that shows how to access storage.

Hozzáférést szeretne hozzáadni az Azure-adatsíkhoz (Azure Storage, Azure SQL Database, Azure Key Vault vagy egyéb szolgáltatások) a webalkalmazásból. Használhat megosztott kulcsot is, de a titkos kulcsok létrehozására, üzembe helyezésére és kezelésére jogosultak működési biztonságával kell foglalkoznia. Az is lehetséges, hogy a kulcsot be lehet jelentkezni a GitHubba, amelyet a hackerek tudnak keresni. A webalkalmazás adatokhoz való hozzáférésének biztonságosabb módja a felügyelt identitások használata.

A Microsoft Entra-azonosítóból származó felügyelt identitás lehetővé teszi, hogy az App Service szerepköralapú hozzáférés-vezérléssel (RBAC) férhessen hozzá az erőforrásokhoz alkalmazás hitelesítő adatainak megkövetelése nélkül. Miután hozzárendelt egy felügyelt identitást a webalkalmazáshoz, az Azure gondoskodik a tanúsítványok létrehozásáról és terjesztéséről. Kapcsolatok nem kell aggódnia a titkos kódok vagy az alkalmazás hitelesítő adatainak kezelése miatt.

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Rendszer által hozzárendelt felügyelt identitás létrehozása webalkalmazásban.
  • Hozzon létre egy tárfiókot és egy Azure Blob Storage-tárolót.
  • A webalkalmazások tárolóinak elérése felügyelt identitások használatával.

Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.

Előfeltételek

  • A Azure-alkalmazás Service-en futó webalkalmazás, amelyen engedélyezve van az App Service hitelesítési/engedélyezési modulja.

Felügyelt identitás engedélyezése egy alkalmazásban

Ha a webalkalmazást a Visual Studióban hozza létre és teszi közzé, a felügyelt identitás engedélyezve lett az alkalmazásban. Az app service-ben válassza az Identitás lehetőséget a bal oldali panelen, majd válassza a Hozzárendelt rendszer lehetőséget. Ellenőrizze, hogy az állapot be van-e kapcsolva. Ha nem, válassza a Mentés , majd az Igen lehetőséget a rendszer által hozzárendelt felügyelt identitás engedélyezéséhez. Ha a felügyelt identitás engedélyezve van, az állapot Be értékre van állítva, és az objektumazonosító elérhető.

Screenshot that shows the System assigned identity option.

Ez a lépés egy új objektumazonosítót hoz létre, amely eltér a Hitelesítés/Engedélyezés panelen létrehozott alkalmazásazonosítótól. Másolja ki a rendszer által hozzárendelt felügyelt identitás objektumazonosítóját. Erre később még szüksége lesz.

Tárfiók és Blob Storage-tároló létrehozása

Most már készen áll egy tárfiók és egy Blob Storage-tároló létrehozására.

Minden tárfióknak egy Azure-erőforráscsoporthoz kell tartoznia. Az erőforráscsoport egy logikai tároló az Azure-szolgáltatások csoportosításához. Tárfiók létrehozásakor lehetősége van új erőforráscsoport létrehozására vagy meglévő erőforráscsoport használatára. Ez a cikk bemutatja, hogyan hozhat létre új erőforráscsoportot.

Az általános célú v2-tárfiókok az összes Azure Storage-szolgáltatáshoz (blobokhoz, fájlokhoz, üzenetsorokhoz, táblákhoz és lemezekhez) hozzáférést biztosítanak. Az itt ismertetett lépések általános célú v2-tárfiókot hoznak létre, de a tárfiókok bármilyen típusú létrehozásának lépései hasonlóak.

Az Azure Storage-blobok tárolókba vannak rendezve. Mielőtt később feltölthet egy blobot ebben az oktatóanyagban, először létre kell hoznia egy tárolót.

Ha általános célú v2-tárfiókot szeretne létrehozni az Azure Portalon, kövesse az alábbi lépéseket.

  1. Az Azure Portal menüjében válassza a Minden szolgáltatás lehetőséget. Az erőforrások listájában adja meg a tárfiókokat. Ahogy elkezd gépelni, a lista a beírtak alapján szűri a lehetőségeket. Válassza a Tárfiókok lehetőséget.

  2. A megjelenő Tárfiókok ablakban válassza a Létrehozás lehetőséget.

  3. Válassza ki azt az előfizetést, amelyben létre kívánja hozni a tárfiókot.

  4. Az Erőforráscsoport mező alatt válassza ki a webalkalmazást tartalmazó erőforráscsoportot a legördülő menüből.

  5. Ezután adja meg a tárfiók nevét. A választott névnek az Azure-on belül egyedinek kell lennie. A névnek 3 és 24 karakter közötti hosszúságúnak kell lennie, és csak számokat és kisbetűket tartalmazhat.

  6. Válassza ki a tárfiókja helyét, vagy használja az alapértelmezett helyet.

  7. A Teljesítmény beállításnál válassza a Standard lehetőséget.

  8. Redundancia esetén válassza a helyileg redundáns tárolás (LRS) lehetőséget a legördülő listából.

  9. Válassza a Véleményezés lehetőséget a tárfiók beállításainak áttekintéséhez és a fiók létrehozásához.

  10. Válassza a Létrehozás lehetőséget.

Blob Storage-tároló létrehozásához kövesse az alábbi lépéseket az Azure Storage-ban.

  1. Nyissa meg az új tárfiókot az Azure Portalon.

  2. A tárfiók bal oldali menüjében görgessen az Adattárolás szakaszhoz, majd válassza a Tárolók lehetőséget.

  3. Válassza a + Tároló gombot.

  4. Adja meg az új tároló nevét. A tároló neve csak kisbetűket tartalmazhat, betűvel vagy számmal kell kezdődnie, és csak betűket, számokat és kötőjelet (-) tartalmazhat.

  5. Adja meg a tároló nyilvános hozzáférési szintjét. Az alapértelmezett szint: Privát (nincs névtelen hozzáférés).

  6. A tároló létrehozásához válassza a Létrehozás lehetőséget.

Hozzáférés biztosítása a tárfiókhoz

Blobok létrehozása, olvasása vagy törlése előtt hozzáférést kell adnia a webalkalmazásnak a tárfiókhoz. Az előző lépésben felügyelt identitással konfigurálta az App Service-ben futó webalkalmazást. Az Azure RBAC használatával egy másik erőforráshoz is hozzáférést adhat a felügyelt identitásnak, akárcsak bármely biztonsági tagnak. A Storage Blob Data Contributor szerepkör olvasási, írási és törlési hozzáférést biztosít a webalkalmazásnak (amelyet a rendszer által hozzárendelt felügyelt identitás képvisel) a blobtárolóhoz és az adatokhoz.

Feljegyzés

A privát blobtárolók egyes műveleteit az Azure RBAC nem támogatja, például a blobok megtekintését vagy a blobok fiókok közötti másolását. A privát hozzáférési szintű blobtárolókhoz SAS-jogkivonat szükséges minden olyan művelethez, amelyet az Azure RBAC nem engedélyez. További információ: Mikor érdemes közös hozzáférésű jogosultságkódot használni.

Az Azure Portalon lépjen a tárfiókba, hogy hozzáférést biztosítson a webalkalmazáshoz. A bal oldali panelen válassza a Hozzáférés-vezérlés (IAM), majd a Szerepkör-hozzárendelések lehetőséget. Megjelenik a tárfiókhoz hozzáféréssel rendelkezők listája. Most egy szerepkör-hozzárendelést szeretne hozzáadni egy robothoz, az app service-hez, amelyhez hozzá kell férnie a tárfiókhoz. Válassza a Szerepkör-hozzárendelés hozzáadása>lehetőséget a Szerepkör-hozzárendelés hozzáadása lap megnyitásához.

  1. A Hozzárendelés típusa lapon válassza a Feladat függvénytípus, majd a Tovább lehetőséget.

  2. A Szerepkör lapon válassza a Storage Blob Data Contributor szerepkört a legördülő listában, majd válassza a Tovább lehetőséget.

  3. A Tagok lapon válassza a Hozzáférés hozzárendelése a felügyelt> identitáshoz lehetőséget, majd válassza a Tagok kiválasztása lehetőséget>. A Felügyelt identitások kiválasztása ablakban keresse meg és válassza ki az App Service-hez létrehozott felügyelt identitást a Felügyelt identitás legördülő menüben. Kattintson a Kiválasztás gombra.

  4. Válassza a Véleményezés és hozzárendelés lehetőséget , majd válassza a Véleményezés lehetőséget, és rendeljen hozzá még egyszer.

A részletes lépésekért tekintse meg az Azure-szerepköröknek az Azure Portalon történő hozzárendelését ismertető cikket.

A webalkalmazás most már rendelkezik hozzáféréssel a tárfiókhoz.

Blob Storage elérése

A DefaultAzureCredential osztály a kód jogkivonat-hitelesítő adatainak lekérésére szolgál az Azure Storage felé irányuló kérések engedélyezéséhez. Hozza létre a DefaultAzureCredential osztály egy példányát, amely a felügyelt identitás használatával lekéri a jogkivonatokat, és csatolja őket a szolgáltatásügyfélhöz. Az alábbi példakód lekéri a hitelesített jogkivonat hitelesítő adatait, és egy szolgáltatásügyfél-objektum létrehozásához használja, amely feltölt egy új blobot.

Ha ezt a kódot egy mintaalkalmazás részeként szeretné megtekinteni, tekintse meg a GitHubon található mintát.

Ügyfélkódtár-csomagok telepítése

Telepítse a Blob Storage NuGet-csomagot a Blob Storage és az Azure Identity .NET NuGet-csomaghoz készült ügyfélkódtárának használatához a Microsoft Entra hitelesítő adataival való hitelesítéshez. Telepítse az ügyfélkódtárakat a .NET parancssori felület (CLI) vagy a Csomagkezelő-konzol használatával a Visual Studióban.

.NET CLI

Nyisson meg egy parancssort, és váltson a projektfájlt tartalmazó könyvtárra.

Futtassa a telepítési parancsokat.

dotnet add package Azure.Storage.Blobs

dotnet add package Azure.Identity

Package Manager konzol

Nyissa meg a projektet vagy a megoldást a Visual Studióban, és nyissa meg a konzolt a Tools>NuGet Csomagkezelő> Csomagkezelő Console paranccsal.

Futtassa a telepítési parancsokat.

Install-Package Azure.Storage.Blobs

Install-Package Azure.Identity

Példa

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;
    }
}

Az erőforrások eltávolítása

Ha befejezte ezt az oktatóanyagot, és már nincs szüksége a webalkalmazásra vagy a kapcsolódó erőforrásokra, törölje a létrehozott erőforrásokat.

Következő lépések