Delen via


Zelfstudie: een door het Windows-VM-systeem toegewezen beheerde identiteit gebruiken voor toegang tot Azure Storage

Beheerde identiteiten voor Azure-resources is een functie van Microsoft Entra ID. Voor alle Azure-services die beheerde identiteiten voor Azure-resources ondersteunen, geldt een eigen tijdlijn. Controleer de beschikbaarheidsstatus van beheerde identiteiten voor uw resource en eventuele bekende problemen voordat u begint.

Deze zelfstudie laat zien hoe u toegang krijgt tot Azure Storage met een door het systeem toegewezen beheerde identiteit voor een virtuele Windows-machine (VM). U leert het volgende:

  • Een blobcontainer in een opslagaccount maken
  • Door het systeem toegewezen beheerde entiteit van de virtuele Windows-machine toegang verlenen tot een opslagaccount
  • Een toegangstoken ophalen en daarmee Azure Storage aanroepen

Notitie

Microsoft Entra-verificatie voor Azure Storage is beschikbaar als openbare preview.

Vereisten

Inschakelen

Het inschakelen van een door het systeem toegewezen beheerde identiteit gebeurt met één klik. U kunt deze inschakelen tijdens het maken van een VM of in de eigenschappen van een bestaande VM.

Schermopname van het tabblad Systeem toegewezen voor een virtuele machine, waarop u de status Systeem toegewezen kunt inschakelen.

Een door het systeem toegewezen beheerde identiteit inschakelen op een nieuwe VM:

  1. Meld u aan bij Azure Portal

  2. Een virtuele machine maken met door het systeem toegewezen identiteit ingeschakeld

Toegang verlenen

Een opslagaccount maken

In deze sectie maakt u een opslagaccount.

  1. Selecteer de knop + Een resource maken in de linkerbovenhoek van Azure Portal.

  2. Selecteer Opslag en vervolgens Opslagaccount - blob, bestand, tabel, wachtrij.

  3. Geef onder Naam een naam voor het opslagaccount op.

  4. Implementatiemodel en Soort account moeten respectievelijk worden ingesteld op Resource Manager en Storage (algemeen gebruik v1).

  5. Zorg ervoor dat de waarden van Abonnement en Resourcegroep overeenkomen met de waarden die u hebt opgegeven bij het maken van de virtuele machine in de vorige stap.

  6. Selecteer Maken.

    Schermopname die laat zien hoe u een nieuw opslagaccount maakt.

Een blobcontainer maken en een bestand naar het opslagaccount uploaden

Voor bestanden is blobopslag nodig, dus moeten we een blobcontainer maken waarin het bestand kan worden opgeslagen. Vervolgens uploadt u een bestand naar de blobcontainer in het nieuwe opslagaccount.

  1. Navigeer terug naar het zojuist gemaakte opslagaccount.

  2. Selecteer Containers onder Blob service.

  3. Selecteer + Container boven aan de pagina.

  4. Voer onder Nieuwe container een naam in voor de container en laat Openbaar toegangsniveau ingesteld staan op de standaardwaarde.

    Schermopname die laat zien hoe u een opslagcontainer maakt.

  5. Maak met behulp van een editor naar keuze een bestand met de naam hello_world.txt op uw lokale computer. Open het bestand en voeg de tekst ‘Hello world! :)’ toe (zonder de aanhalingstekens) en sla het bestand vervolgens op.

  6. Upload het bestand naar de zojuist gemaakte container door op de naam van de container te klikken, en vervolgens op Uploaden

  7. In het deelvenster Blob uploaden onder Bestanden selecteert u het mappictogram en bladert u naar het bestand hello_world.txt op uw lokale computer. Selecteer het bestand en klik vervolgens op Uploaden. Schermopname van het scherm voor het uploaden van tekstbestanden.

Toegang verlenen

In deze sectie leert u hoe u uw VM toegang kunt verlenen tot een Azure Storage-container. U kunt de door het systeem toegewezen beheerde identiteit van de virtuele machine gebruiken om de gegevens in de Azure Storage-blob op te halen.

  1. Navigeer terug naar het zojuist gemaakte opslagaccount.

  2. Klik op Toegangsbeheer (IAM) .

  3. Selecteer Toevoegen>Roltoewijzing toevoegen om het deelvenster Roltoewijzing toevoegen te openen.

  4. Wijs de volgende rol toe. Raadpleeg Azure-rollen toewijzen met Azure Portal voor informatie over het toewijzen van rollen.

    Instelling Weergegeven als
    Role Lezer voor opslagblobgegevens
    Toegang toewijzen aan Beheerde identiteit
    Door het systeem toegewezen Virtuele machine
    Select <uw virtuele machine>

    Schermopname van de pagina voor het toevoegen van een roltoewijzing.

Toegang tot gegevens

Azure Storage biedt systeemeigen ondersteuning voor Microsoft Entra-verificatie, zodat toegangstokens die zijn verkregen via een beheerde identiteit, rechtstreeks kunnen worden geaccepteerd. Deze benadering maakt gebruik van de integratie van Azure Storage met Microsoft Entra ID en verschilt van het opgeven van referenties in de verbindingsreeks.

Hier volgt een voorbeeld van .NET-code voor het openen van een verbinding met Azure Storage. In het voorbeeld wordt een toegangstoken gebruikt en wordt de inhoud gelezen van het bestand dat u eerder hebt gemaakt. Deze code moet worden uitgevoerd op de virtuele machine om toegang te krijgen tot het eindpunt van de beheerde identiteit van de virtuele machine. .NET framework 4.6 of hoger is vereist voor het gebruik van de toegangsmethode met een toegangstoken. Vervang de waarde van <URI to blob file> dienovereenkomstig. U kunt deze waarde verkrijgen door te navigeren naar het bestand dat u hebt gemaakt en geüpload naar de blobopslag en de URL onder Eigenschappen op de pagina Overzicht te kopiëren.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
using Microsoft.WindowsAzure.Storage.Auth;
using Microsoft.WindowsAzure.Storage.Blob;

namespace StorageOAuthToken
{
    class Program
    {
        static void Main(string[] args)
        {
            //get token
            string accessToken = GetMSIToken("https://storage.azure.com/");

            //create token credential
            TokenCredential tokenCredential = new TokenCredential(accessToken);

            //create storage credentials
            StorageCredentials storageCredentials = new StorageCredentials(tokenCredential);

            Uri blobAddress = new Uri("<URI to blob file>");

            //create block blob using storage credentials
            CloudBlockBlob blob = new CloudBlockBlob(blobAddress, storageCredentials);

            //retrieve blob contents
            Console.WriteLine(blob.DownloadText());
            Console.ReadLine();
        }

        static string GetMSIToken(string resourceID)
        {
            string accessToken = string.Empty;
            // Build request to acquire MSI token
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=" + resourceID);
            request.Headers["Metadata"] = "true";
            request.Method = "GET";

            try
            {
                // Call /token endpoint
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                // Pipe response Stream to a StreamReader, and extract access token
                StreamReader streamResponse = new StreamReader(response.GetResponseStream());
                string stringResponse = streamResponse.ReadToEnd();
                JavaScriptSerializer j = new JavaScriptSerializer();
                Dictionary<string, string> list = (Dictionary<string, string>)j.Deserialize(stringResponse, typeof(Dictionary<string, string>));
                accessToken = list["access_token"];
                return accessToken;
            }
            catch (Exception e)
            {
                string errorText = String.Format("{0} \n\n{1}", e.Message, e.InnerException != null ? e.InnerException.Message : "Acquire token failed");
                return accessToken;
            }
        }
    }
}

Het antwoord bevat de inhoud van het bestand:

Hello world! :)

Uitschakelen

Als u de door het systeem toegewezen identiteit op uw VM wilt uitschakelen, stelt u de status van de door het systeem toegewezen identiteit in op Uit.

Schermopname van het tabblad Systeem toegewezen voor een virtuele machine, waarop u de status Systeem toegewezen kunt uitschakelen.

Volgende stappen

In deze zelfstudie hebt u geleerd een door het Windows-VM-systeem toegewezen identiteit in te schakelen om toegang tot Azure Storage te krijgen. Raadpleeg voor meer informatie over Azure Storage: