Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dowiedz się, jak uzyskać dostęp do usług platformy Azure, takich jak Azure Storage, z aplikacji internetowej uruchomionej w usłudze Azure App Service przy użyciu tożsamości zarządzanych, bez konieczności zalogowania użytkownika. W tym samouczku pokazano, jak na przykład nawiązać połączenie z Azure Storage.
Dostęp do dowolnej usługi obsługującej tożsamość zarządzaną (B na poniższej ilustracji) można bezpiecznie uzyskać, korzystając z tego samouczka:
- Azure Storage
- Azure SQL Database
- Azure Key Vault
Chcesz dodać bezpieczny dostęp do usług platformy Azure, w tym usług Azure Storage, Azure SQL Database i Azure Key Vault z poziomu aplikacji internetowej. Możesz użyć klucza współużytkowanego, ale musisz martwić się o operacyjne bezpieczeństwo, kto może tworzyć, wdrażać i zarządzać tajnym sekretem. Możliwe jest również, że klucz może zostać umieszczony w GitHub, który hakerzy potrafią skanować. Bezpieczniejszym sposobem udzielenia aplikacji internetowej dostępu do danych jest użycie tożsamości zarządzanych.
Zarządzana tożsamość z Microsoft Entra ID umożliwia usłudze App Service dostęp do zasobów za pomocą kontroli dostępu opartej na rolach (RBAC) bez potrzeby użycia poświadczeń aplikacji. Po przypisaniu tożsamości zarządzanej do aplikacji internetowej platforma Azure zajmuje się tworzeniem i dystrybucją certyfikatu. Użytkownicy nie muszą się martwić o zarządzanie danymi tajnymi ani poświadczeniami aplikacji.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Utwórz tożsamość zarządzaną przypisaną przez system w aplikacji internetowej.
- Utwórz konto magazynu i kontener Azure Blob Storage.
- Uzyskiwanie dostępu do magazynu z aplikacji internetowej przy użyciu tożsamości zarządzanych.
Jeśli nie masz konta Azure, przed rozpoczęciem utwórz konto free.
Wymagania wstępne
Aplikacja internetowa działająca w usłudze Azure App Service:
Włączanie tożsamości zarządzanej w aplikacji
Jeśli tworzysz i publikujesz aplikację internetową za pomocą Visual Studio, tożsamość zarządzana została dla Ciebie włączona w aplikacji.
W usłudze app Service w menu po lewej stronie wybierz pozycję Tożsamość, a następnie wybierz pozycję Przypisany system. Sprawdź, czy stan ma wartość Włączone.
Jeśli nie, wybierz pozycję Włączone, a następnie pozycję Zapisz. Aby włączyć tożsamość zarządzaną przypisaną przez system, w oknie dialogowym potwierdzenia wybierz pozycję Tak. Po włączeniu tożsamości zarządzanej stan jest ustawiony na Włączone , a identyfikator obiektu jest dostępny.
Ten krok tworzy nowy identyfikator obiektu inny niż identyfikator aplikacji utworzony w okienku Uwierzytelnianie/autoryzacja . Skopiuj identyfikator obiektu tożsamości zarządzanej przypisanej przez system. Potrzebujesz go później.
Tworzenie konta magazynu i kontenera Blob Storage
Teraz możesz utworzyć konto magazynu i kontener Blob Storage.
Każde konto magazynu musi należeć do grupy zasobów Azure. Grupa zasobów to logiczny kontener dla usług platformy Azure. Podczas tworzenia konta magazynu można utworzyć nową grupę zasobów lub użyć istniejącej grupy zasobów. W tym artykule pokazano, jak utworzyć nową grupę zasobów.
Konto magazynu ogólnego przeznaczenia w wersji 2 zapewnia dostęp do wszystkich usług Azure Storage: obiektów blob, plików, kolejek, tabel i dysków. Kroki opisane tutaj umożliwiają utworzenie konta magazynu ogólnego przeznaczenia w wersji 2, ale kroki tworzenia dowolnego typu konta magazynu są podobne.
Obiekty blob w Azure Storage są zorganizowane w kontenery. Przed przekazaniem obiektu blob w dalszej części tego samouczka należy najpierw utworzyć kontener.
Aby utworzyć konto magazynu ogólnego przeznaczenia w wersji 2 w portalu Azure, wykonaj następujące kroki.
W menu portalu Azure wprowadź Konto magazynu. Po rozpoczęciu pisania zawartość listy jest filtrowana w oparciu o wpisywane dane. Wybierz pozycję Konta magazynu.
W wyświetlonym oknie Konta magazynu wybierz pozycję Utwórz.
Wybierz subskrypcję, w ramach której chcesz utworzyć konto magazynu.
W obszarze Grupa zasobów wybierz grupę zasobów zawierającą aplikację internetową.
Wprowadź nazwę dla swojego konta przechowywania. Wybrana nazwa musi być unikatowa w Azure. Nazwa musi mieć długość od 3 do 24 znaków i może zawierać tylko cyfry i małe litery.
Wybierz lokalizację (region) dla konta magazynu lub użyj wartości domyślnej.
W obszarze Preferowany typ magazynu wybierz pozycję Azure Blob Storage lub Azure Data Lake Storage Gen 2.
Pozostaw poniższe pola ustawione na wartości domyślne:
Pole Wartość Wydajność Standard Redundancja Przechowywanie z geograficzną redundancją Wybierz pozycję Przejrzyj i utwórz, aby przejrzeć ustawienia konta magazynowego i utworzyć to konto.
Wybierz pozycję Utwórz.
Aby utworzyć kontener Blob Storage w Azure Storage, wykonaj następujące kroki.
Przejdź do swojego nowego konta magazynowego w portalu Azure.
W menu po lewej stronie konta magazynu w obszarze Magazyn danych wybierz pozycję Kontenery.
Wybierz pozycję Dodaj kontener.
Wpisz nazwę nowego kontenera. Nazwa kontenera musi być zapisana małymi literami, zaczynać się literą lub cyfrą i może zawierać tylko litery, cyfry i znak kreski (-).
Ustaw poziom dostępu publicznego do kontenera. Domyślny poziom to Prywatny (bez dostępu anonimowego).
Wybierz przycisk OK, aby utworzyć kontener.
Udzielanie dostępu do konta magazynu
Abyś mógł tworzyć, odczytywać lub usuwać bloby, musisz udzielić aplikacji internetowej dostępu do konta magazynu. W poprzedniej sekcji skonfigurowano aplikację internetową działającą w usłudze App Service z tożsamością zarządzaną. Za pomocą Azure RBAC można udzielić tożsamości zarządzanej dostępu do innego zasobu, podobnie jak każdy podmiot zabezpieczeń.
Rola współautora danych obiektu BLOB w usłudze Storage nadaje aplikacji webowej, reprezentowanej przez tożsamość zarządzaną przypisaną przez system, uprawnienia do odczytu, zapisu i usuwania danych w kontenerze obiektów BLOB.
Uwaga
Azure RBAC nie obsługuje niektórych operacji na prywatnych kontenerach blobów, takich jak wyświetlanie blobów lub kopiowanie blobów między kontami. Kontener blobów z poziomem dostępu prywatnego wymaga tokenu SAS dla operacji, których nie autoryzuje Azure RBAC. Aby uzyskać więcej informacji, zobacz Kiedy używać sygnatury dostępu współdzielonego.
- W portalu Azure przejdź do Twojego konta magazynowego, aby udzielić aplikacji internetowej dostępu.
- W menu po lewej stronie wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami), a następnie wybierz pozycję Przypisania ról. Zostanie wyświetlona lista osób mających dostęp do konta magazynu.
- Chcesz dodać przypisanie roli do usługi App Service wymagającej dostępu do konta magazynowego. Wybierz Dodaj>Dodaj przypisanie roli, aby otworzyć stronę Dodawanie przypisania roli.
- Przypisz rolę Współautor danych obiektu blob usługi Storage do usługi App Service w zakresie konta magazynu. Aby uzyskać więcej informacji, zobacz Przypisywanie ról Azure przy użyciu portalu Azure.
Twoja aplikacja internetowa ma teraz dostęp do konta magazynowego.
Dostęp do Blob Storage
Klasa DefaultAzureCredential służy do uzyskiwania poświadczeń tokenu dla kodu w celu autoryzowania żądań do Azure Storage. Utwórz instancję klasy DefaultAzureCredential, która korzysta z tożsamości zarządzanej do pobierania tokenów i ich dołączania do klienta usługi. Poniższy przykład kodu pobiera uwierzytelnione poświadczenia tokenu i używa ich do utworzenia obiektu klienta usługi, który przesyła nowy obiekt blob.
Aby zobaczyć ten kod w ramach przykładowej aplikacji, zobacz przykład GitHub.
Instalowanie pakietów bibliotek klienta
Zainstaluj pakiet Blob Storage NuGet aby pracować z Blob Storage i biblioteką klienta Azure Identity dla pakietu NuGet .NET do uwierzytelniania przy użyciu poświadczeń Microsoft Entra. Zainstaluj biblioteki klienckie przy użyciu interfejsu wiersza polecenia platformy .NET Core lub konsoli Package Manager w Visual Studio.
.NET Core — wiersz polecenia
Otwórz wiersz polecenia i przejdź do katalogu zawierającego plik projektu.
Uruchom komendy instalacyjne.
dotnet add package Azure.Storage.Blobs dotnet add package Azure.Identity
Konsola Menedżera Pakietów
Otwórz projekt lub rozwiązanie w Visual Studio i otwórz konsolę przy użyciu polecenia Tools>NuGet Package Manager>Package Manager Console.
Uruchom komendy instalacyjne.
Install-Package Azure.Storage.Blobs Install-Package Azure.Identity
przykład .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 doesn't 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;
}
}
Czyszczenie zasobów
Jeśli ukończysz ten samouczek i nie potrzebujesz już aplikacji internetowej ani skojarzonych zasobów, wyczyść utworzone zasoby.
Usuwanie grupy zasobów
W witrynie Azure Portal wybierz pozycję Grupy zasobów z menu witryny Azure Portal i wybierz grupę zasobów zawierającą usługę App Service i plan usługi App Service.
Wybierz pozycję Usuń grupę zasobów, aby usunąć grupę zasobów i wszystkie zasoby.
Wprowadź nazwę grupy zasobów, aby potwierdzić.
Uruchomienie tego procesu może potrwać kilka minut.
Następne kroki
W tym samouczku zawarto informacje na temat wykonywania następujących czynności:
- Utwórz tożsamość zarządzaną przypisaną przez system.
- Utwórz konto magazynu i kontener Blob Storage.
- Uzyskiwanie dostępu do magazynu z aplikacji internetowej przy użyciu tożsamości zarządzanych.