Tutorial: Verwenden einer systemseitig zugewiesenen verwalteten Identität eines virtuellen Windows-Computers für den Zugriff auf Azure Storage
Verwaltete Identitäten für Azure-Ressourcen ist eine Funktion von Microsoft Entra ID. Für alle Azure-Dienste, die verwaltete Identitäten unterstützen, gilt ein eigener Zeitplan. Sehen Sie sich den Verfügbarkeitsstatus der verwalteten Identitäten für Ihre Ressource und die bekannten Probleme an, bevor Sie beginnen.
In diesem Tutorial erfahren Sie, wie Sie eine systemseitig zugewiesene verwaltete Identität für einen virtuellen Windows-Computer verwenden, um auf Azure Storage zuzugreifen. Folgendes wird vermittelt:
- Erstellen eines Blobcontainers im Speicherkonto
- Gewähren des Zugriffs auf ein Speicherkonto für die systemseitig zugewiesene verwaltete Identität Ihres virtuellen Windows-Computers
- Erhalten eines Zugriffs und seine Verwendung zum Aufrufen von Azure Storage
Hinweis
Die Microsoft Entra-Authentifizierung für Azure Storage liegt in der Public Preview-Version vor.
Voraussetzungen
- Wenn Sie mit der Funktion für verwaltete Identitäten für Azure-Ressourcen nicht vertraut sind, finden Sie hier eine Übersicht.
- Wenn Sie kein Azure-Konto haben, sollten Sie sich für ein kostenloses Konto registrieren, bevor Sie fortfahren.
- Ihr Konto muss über die Berechtigung „Besitzer“ für den geeigneten Bereich (Ihr Abonnement oder die Ressourcengruppe) verfügen, um die erforderliche Ressourcenerstellung und eine Rollenverwaltung durchführen zu können. Wenn Sie Unterstützung bei der Rollenzuweisung benötigen, finden Sie weitere Informationen unter Zuweisen von Azure-Rollen zum Verwalten des Zugriffs auf Ihre Azure-Abonnementressourcen.
Aktivieren
Eine systemseitig zugewiesene verwaltete Identität wird mit einem Mausklick aktiviert. Sie können sie entweder während der Erstellung eines virtuellen Computers oder in den Eigenschaften eines vorhandenen virtuellen Computers aktivieren.
So aktivieren Sie eine systemseitig zugewiesene verwaltete Identität auf einem neuen virtuellen Computer:
Melden Sie sich beim Azure-Portal
Erstellen eines virtuellen Computers mit aktivierter systemseitig zugewiesener Identität
Gewähren von Zugriff
Speicherkonto erstellen
In diesem Abschnitt erstellen Sie ein Speicherkonto.
Wählen Sie in der linken oberen Ecke des Azure-Portals die Schaltfläche + Ressource erstellen aus.
Wählen Sie die Option Speicher und anschließend Speicherkonto – Blob, Datei, Tabelle, Warteschlange aus.
Geben Sie unter Name einen Namen für das Speicherkonto ein.
Bereitstellungsmodell und Kontoart sollten jeweils auf Resource Manager und Storage (universell, Version 1) festgelegt werden.
Stellen Sie sicher, dass Abonnement und Ressourcengruppe dem entsprechen, was Sie bei der Erstellung Ihrer VM im vorherigen Schritt angegeben haben.
Klicken Sie auf Erstellen.
Erstellen eines Blobcontainers und Hochladen einer Datei in das Speicherkonto
Da Dateien Blob Storage erfordern, müssen wir einen Blobcontainer erstellen, in dem die Datei gespeichert wird. Anschließend laden Sie eine Datei in den Blobcontainer im neuen Speicherkonto hoch.
Navigieren Sie zurück zum neu erstellten Speicherkonto.
Wählen Sie unter Blob-Dienst die Option Container aus.
Wählen Sie oben auf der Seite + Container aus.
Geben Sie unter Neuer Container einen Namen für den Container ein, und behalten Sie unter Öffentliche Zugriffsebene den Standardwert bei.
Erstellen Sie mit einem Editor Ihrer Wahl eine Datei mit dem Titel hall_ welt.txt auf dem lokalen Computer. Öffnen Sie die Datei, fügen Sie den Text „Hallo Welt! :)“ (ohne Anführungszeichen) hinzu, und speichern Sie ihn.
Laden Sie die Datei in den neu erstellten Container hoch, indem Sie auf den Containernamen und dann auf Hochladen klicken.
Wählen Sie im Bereich Blob hochladen unter Dateien das Ordnersymbol aus, und navigieren Sie zur Datei hallo_welt.txt auf dem lokalen Computer. Wählen Sie dann die Datei und anschließend Hochladen aus.
Gewähren von Zugriff
In diesem Abschnitt erfahren Sie, wie Sie Ihrem virtuellen Computer Zugriff auf einen Azure-Speichercontainer gewähren. Sie können die systemseitig zugewiesene verwaltete Identität des virtuellen Computers verwenden, um die Daten in Azure Storage Blob abzurufen.
Navigieren Sie zurück zum neu erstellten Speicherkonto.
Wählen Sie die Option Zugriffssteuerung (IAM) aus.
Wählen Sie Hinzufügen>Rollenzuweisung hinzufügen aus, um den Bereich „Rollenzuweisung hinzufügen“ zu öffnen.
Weisen Sie die folgende Rolle zu. Ausführliche Informationen finden Sie unter Zuweisen von Azure-Rollen über das Azure-Portal.
Einstellung Wert Role Leser von Speicherblobdaten Zugriff zuweisen zu Verwaltete Identität Systemseitig zugewiesen Virtual Machine Select <Ihr virtueller Computer>
Zugreifen auf Daten
Azure Storage unterstützt die Microsoft Entra-Authentifizierung nativ, sodass Zugriffstoken, die mit einer verwalteten Identität abgerufen wurden, direkt angenommen werden können. Dieser Ansatz verwendet die Azure Storage-Integration mit Microsoft Entra ID und unterscheidet sich vom Bereitstellen von Anmeldeinformationen in der Verbindungszeichenfolge.
Hier sehen Sie ein .NET-Codebeispiel für das Öffnen einer Verbindung mit Azure Storage. Im Beispiel wird ein Zugriffstoken verwendet und dann der Inhalt der Datei gelesen, die Sie zuvor erstellt haben. Dieser Code muss auf dem virtuellen Computer ausgeführt werden, um auf Endpunkt für die verwaltete Identität des virtuellen Computers zugreifen zu können. Für die Verwendung des Verfahrens mit Zugriffstoken ist .NET Framework 4.6 oder höher erforderlich. Ersetzen Sie entsprechend den Wert <URI to blob file>
. Diesen erhalten Sie, wenn Sie zur Datei navigieren, die Sie zuvor erstellt und in Blob Storage hochgeladen haben, und darin die URL unter Eigenschaften auf der Seite Übersicht kopieren.
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;
}
}
}
}
Die Antwort enthält den Inhalt der Datei:
Hello world! :)
Disable
Wenn Sie die systemseitig zugewiesene Identität auf Ihrem virtuellen Computer deaktivieren möchten, legen Sie ihren Status auf Aus fest.
Nächste Schritte
In diesem Tutorial haben Sie gelernt, wie Sie eine systemseitig zugewiesene Identität eines virtuellen Windows-Computers für den Zugriff auf Azure Storage aktivieren. Weitere Informationen zu Azure Storage finden Sie hier: