Freigeben über


Zugreifen auf Azure-Dateifreigaben mithilfe von Microsoft Entra ID mit Azure Files OAuth über REST

Azure Files OAuth über REST ermöglicht Lese- und Schreibzugriff auf Azure-Dateifreigaben auf Administratorebene für Benutzer und Anwendungen über das OAuth-Authentifizierungsprotokoll. Dabei wird Microsoft Entra ID für den REST-API-basierten Zugriff verwendet. Benutzer, Gruppen, Erstanbieterdienste wie das Azure-Portal und Dienste und Anwendungen von Drittanbietern, die REST-Schnittstellen verwenden, können jetzt die OAuth-Authentifizierung und Autorisierung mit einem Microsoft Entra-Konto verwenden, um auf Daten in Azure-Dateifreigaben zuzugreifen. PowerShell-Cmdlets und Azure CLI-Befehle, die REST-APIs aufrufen, können auch OAuth verwenden, um auf Azure-Dateifreigaben zuzugreifen. Sie müssen die REST-API mithilfe eines expliziten Headers aufrufen, um ihre Absicht anzugeben, die zusätzlichen Berechtigungen zu verwenden. Dies gilt auch für azure PowerShell- und Azure CLI-Zugriff.

Von Bedeutung

In diesem Artikel wird erläutert, wie Sie den Zugriff auf Azure-Dateifreigaben auf Administratorebene für bestimmte Kundenanwendungsfälle aktivieren. Wenn Sie nach einem allgemeineren Artikel zur identitätsbasierten Authentifizierung für Endbenutzer suchen, lesen Sie die Übersicht über die identitätsbasierte Azure Files-Authentifizierung für den SMB-Zugriff.

Gilt für:

Verwaltungsmodell Abrechnungsmodell Medienebene Redundanz KMU NFS (falls abgekürzt von Network File System gemeint)
Microsoft.Storage Bereitgestellt v2 HDD (Standard) Lokal (LRS) Ja Nein
Microsoft.Storage Bereitgestellt v2 HDD (Standard) Zone (ZRS) Ja Nein
Microsoft.Storage Bereitgestellt v2 HDD (Standard) Geo (GRS) Ja Nein
Microsoft.Storage Bereitgestellt v2 HDD (Standard) GeoZone (GZRS) Ja Nein
Microsoft.Storage Bereitgestellt v1 SSD (Premium) Lokal (LRS) Ja Ja
Microsoft.Storage Bereitgestellt v1 SSD (Premium) Zone (ZRS) Ja Ja
Microsoft.Storage Nutzungsbasierte Bezahlung HDD (Standard) Lokal (LRS) Ja Nein
Microsoft.Storage Nutzungsbasierte Bezahlung HDD (Standard) Zone (ZRS) Ja Nein
Microsoft.Storage Nutzungsbasierte Bezahlung HDD (Standard) Geo (GRS) Ja Nein
Microsoft.Storage Nutzungsbasierte Bezahlung HDD (Standard) GeoZone (GZRS) Ja Nein

Einschränkungen

Die Autorisierung von Dateidatenvorgängen mit Microsoft Entra ID wird nur für REST-API-Versionen 2022-11-02 und höher unterstützt.

Azure Files OAuth-over-REST-Unterstützung für Azure Files REST-Datenebenen-APIs, die FileService- und FileShare-Ressourcen verwalten, ist mit REST-API-Versionen 2024-11-04 und höher verfügbar.

Siehe Versionsverwaltung für Azure Storage.

Anwendungsfälle für Kunden

Die OAuth-Authentifizierung und -Autorisierung mit Azure Files über die REST-API-Schnittstelle kann Kunden in den folgenden Szenarien zugute kommen.

Anwendungsentwicklung und Dienstintegration

Die OAuth-Authentifizierung und -Autorisierung ermöglichen Entwicklern das Erstellen von Anwendungen, die auf Azure Storage-REST-APIs zugreifen, mithilfe von Benutzer- oder Anwendungsidentitäten von Microsoft Entra ID.

Kunden und Partner können auch Erstanbieter- und Drittanbieterdienste aktivieren, um den erforderlichen Zugriff sicher und transparent für ein Kundenspeicherkonto zu konfigurieren.

DevOps-Tools wie das Azure-Portal, PowerShell und CLI, AzCopy und Speicher-Explorer können Daten mithilfe der Identität des Benutzers verwalten, ohne dass Speicherzugriffsschlüssel verwaltet oder verteilt werden müssen.

Verwaltete Identitäten

Kunden mit Anwendungen und verwalteten Identitäten, die Zugriff auf Dateifreigabedaten für Sicherungs-, Wiederherstellungs- oder Überwachungszwecke erfordern, können von der OAuth-Authentifizierung und -Autorisierung profitieren. Das Erzwingen von Berechtigungen auf Datei- und Verzeichnisebene für jede Identität fügt Komplexität hinzu und ist möglicherweise nicht mit bestimmten Workloads kompatibel. Kunden möchten beispielsweise einen Sicherungslösungsdienst für den Zugriff auf Azure-Dateifreigaben mit schreibgeschütztem Zugriff auf alle Dateien ohne dateispezifische Berechtigungen autorisieren.

Ersatz des Speicherkontoschlüssels

Die Microsoft Entra-ID bietet eine überlegene Sicherheit und Benutzerfreundlichkeit gegenüber gemeinsamem Schlüsselzugriff. Sie können den Zugriff auf Speicherkontoschlüssel durch die Verwendung von OAuth-Authentifizierung und -Autorisierung ersetzen, um auf Azure-Dateifreigaben mit Lese- und Schreibberechtigungen für alle Dateien zuzugreifen. Dieser Ansatz bietet auch eine bessere Überwachung und Verfolgung bestimmter Benutzerzugriffe.

Privilegierter Zugriff und Zugriffsberechtigungen für Datenvorgänge

Um das OAuth-Feature für Azure Files over REST zu verwenden, gibt es zusätzliche Berechtigungen, die in die RBAC-Rolle einbezogen werden müssen, die dem Benutzer, der Gruppe oder dem Dienstprinzipal zugewiesen ist. Im Rahmen dieses Features werden zwei neue Datenaktionen eingeführt:

Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action

Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action

Benutzer, Gruppen oder Dienstprinzipale, die die REST-API mit OAuth aufrufen, müssen der Rolle, die den Datenzugriff zulässt, entweder die Aktion readFileBackupSemantics oder die Aktion writeFileBackupSemantics zugewiesen haben. Dies ist eine Anforderung, dieses Feature zu verwenden. Ausführliche Informationen zu den Berechtigungen, die zum Aufrufen bestimmter Dateidienstvorgänge erforderlich sind, finden Sie unter Berechtigungen für Aufrufen von Datenvorgängen.

Dieses Feature bietet zwei neue integrierte Rollen, die diese neuen Aktionen enthalten.

Rolle Datenaktionen
Privilegierter Leseberechtigter für Speicherdateidaten Microsoft.Storage/storageAccounts/fileServices/fileShares/files/read
Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action
Privilegierter Mitwirkender für Speicherdateidaten Microsoft.Storage/storageAccounts/fileServices/fileShares/files/read
Microsoft.Storage/storageAccounts/fileServices/fileShares/files/write
Microsoft.Storage/storageAccounts/fileServices/fileShares/files/delete
Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action
Microsoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action

Diese neuen Rollen ähneln den bestehenden integrierten Rollen Speicherdateidaten-SMB-Freigabeleser und Mitwirkender mit erhöhten Rechten für Speicherdateidaten-SMB-Freigabe, es gibt jedoch einige Unterschiede:

  • Die neuen Rollen enthalten die zusätzlichen Datenaktionen, die für den OAuth-Zugriff erforderlich sind.

  • Wenn einem Benutzer, einer Gruppe oder einem Dienstprinzipal die Rollen Storage File Data Privileged Reader oder Storage File Data Privileged Contributor zugewiesen sind und er die FilesREST-Daten-API mit OAuth aufruft, hat der Benutzer, die Gruppe oder der Dienstprinzipal:

    • Privilegierter Leser von Speicherdateidaten: Vollständiger Lesezugriff auf alle Daten in den Freigaben für alle konfigurierten Speicherkonten, unabhängig von den festgelegten NTFS-Berechtigungen auf Datei-/Verzeichnisebene.
    • Privilegierter Leser von Speicherdateidaten: Vollständiger Zugriff auf alle Daten mit Lese-, Schreib-, ACL-Modifizierungs- und Löschrechten in den Freigaben für alle konfigurierten Speicherkonten, unabhängig von den festgelegten NTFS-Berechtigungen auf Datei-/Verzeichnisebene.
  • Mit diesen speziellen Berechtigungen und Rollen umgeht das System alle Berechtigungen auf Datei-/ Verzeichnisebene und lässt den Zugriff auf Dateifreigabedaten zu.

Mit den neuen Rollen und Datenaktionen bietet dieses Feature speicherkontoweite Berechtigungen, die alle Berechtigungen für Dateien und Ordner unter allen Dateifreigaben im Speicherkonto ersetzen. Die neuen Rollen enthalten jedoch nur Berechtigungen für den Zugriff auf Datendienste. Sie enthalten keine Berechtigungen für den Zugriff auf Dateifreigabeverwaltungsdienste (Aktionen für Dateifreigaben). Um dieses Feature zu verwenden, stellen Sie sicher, dass Sie über Zugriffsberechtigungen verfügen:

  • das Speicherkonto
  • Dateifreigabeverwaltungsdienste
  • Data Services (die Daten in der Dateifreigabe)

Es gibt viele integrierte Rollen , die Zugriff auf Verwaltungsdienste bieten. Sie können auch benutzerdefinierte Rollen mit den entsprechenden Berechtigungen erstellen. Weitere Informationen zur rollenbasierten Zugriffssteuerung finden Sie unter Azure RBAC. Weitere Informationen dazu, wie integrierte Rollen definiert sind, finden Sie unter Grundlegendes zu Rollendefinitionen.

Beachten Sie, dass für den Ressourcentyp Dateifreigabe der entsprechende RBAC-Bereich im Verwaltungsbereich shares verwendet, während auf Datenebene fileshares genutzt wird. Wenn Sie versuchen, eine Dateifreigaberessourcen-ID, die „shares“ enthält, im RBAC-Bereich oder in Datenaktionszeichenfolgen zu verwenden, funktioniert dies nicht. Sie müssen fileshares im Bereich der RBAC-Zuordnungen verwenden, z. B.:

  • /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/fileServices/default/fileshares/<share-name>

Von Bedeutung

Alle für den Pfad Microsoft.Storage/storageAccounts/fileServices/* oder einen höheren Bereich definierten Wildcard-Anwendungsfälle erben automatisch den zusätzlichen Zugriff und die berechtigungen, die über diese neue Datenaktion gewährt werden. Um unbeabsichtigten oder überprivilegierten Zugriff auf Azure Files zu verhindern, haben wir zusätzliche Überprüfungen implementiert, bei denen Benutzer und Anwendungen explizit angeben müssen, dass sie die zusätzlichen Berechtigungen verwenden möchten. Darüber hinaus wird dringend empfohlen, dass Kunden ihre Benutzer-RBAC-Rollenzuweisungen überprüfen und jede Wildcardverwendung durch explizite Berechtigungen ersetzen, um eine ordnungsgemäße Datenzugriffsverwaltung sicherzustellen.

Autorisieren des Zugriffs auf Dateidaten im Anwendungscode

Die Azure Identity-Clientbibliothek vereinfacht den Prozess des Abrufens eines OAuth 2.0-Zugriffstokens für die Autorisierung mit Microsoft Entra ID über die Azure SDK-. Die neuesten Versionen der Azure Storage-Clientbibliotheken für .NET, Java, Python, JavaScript und Go sind in die Azure Identity-Bibliotheken für jede dieser Sprachen integriert, um ein einfaches und sicheres Mittel zum Abrufen eines Zugriffstokens für die Autorisierung von Anforderungen vom Azure-Dateidienst bereitzustellen.

Ein Vorteil der Azure Identity-Clientbibliothek besteht darin, dass Sie denselben Code verwenden können, um das Zugriffstoken abzurufen, unabhängig davon, ob Ihre Anwendung in der Entwicklungsumgebung oder in Azure ausgeführt wird. Die Azure Identity-Clientbibliothek gibt ein Zugriffstoken für ein Sicherheitssubjekt zurück. Wenn Ihr Code in Azure ausgeführt wird, kann der Sicherheitsprinzipal eine verwaltete Identität für Azure-Ressourcen, ein Dienstprinzipal oder ein Benutzer oder eine Benutzergruppe sein. In der Entwicklungsumgebung stellt die Clientbibliothek ein Zugriffstoken für einen Benutzer oder einen Dienstprinzipal zu Testzwecken bereit.

Das von der Azure Identity-Clientbibliothek zurückgegebene Zugriffstoken wird in einer Tokenanmeldeinformation gekapselt. Anschließend können Sie die Tokenanmeldeinformationen verwenden, um ein Dienstclientobjekt abzurufen, das bei autorisierten Vorgängen für den Azure Files-Dienst verwendet werden kann.

Das folgende Codebeispiel zeigt, wie Sie ein Clientobjekt mithilfe der Microsoft Entra-ID autorisieren und Vorgänge auf Verzeichnis- und Dateiebene ausführen. Bei diesem Beispiel wird vorausgesetzt, dass die Dateifreigabe bereits vorhanden ist.

using Azure.Core;
using Azure.Identity;
using Azure.Storage.Files.Shares;
using Azure.Storage.Files.Shares.Models;

namespace FilesOAuthSample
{
    internal class Program
    {
        static async Task Main(string[] args)
        {
            string tenantId = "";
            string appId = "";
            string appSecret = "";
            string entraEndpoint = "";
            string accountUri = "https://<storage-account-name>.file.core.windows.net/";
            string shareName = "test-share";
            string directoryName = "test-directory";
            string fileName = "test-file";  

            TokenCredential tokenCredential = new ClientSecretCredential(
                tenantId,
                appId,
                appSecret,
                new TokenCredentialOptions()
                {
                    AuthorityHost = new Uri(entraEndpoint)
                });

            // Set client options
            ShareClientOptions clientOptions = new ShareClientOptions();
            clientOptions.AllowTrailingDot = true;
            clientOptions.AllowSourceTrailingDot = true;

            // x-ms-file-intent=backup will automatically be applied to all APIs
            // where it is required in derived clients
            clientOptions.ShareTokenIntent = ShareTokenIntent.Backup;

            ShareServiceClient shareServiceClient = new ShareServiceClient(
                new Uri(accountUri),
                tokenCredential,
                clientOptions);

            ShareClient shareClient = shareServiceClient.GetShareClient(shareName);
            ShareDirectoryClient directoryClient = shareClient.GetDirectoryClient(directoryName);
            await directoryClient.CreateAsync();

            ShareFileClient fileClient = directoryClient.GetFileClient(fileName);
            await fileClient.CreateAsync(maxSize: 1024);
            await fileClient.GetPropertiesAsync();
        }
    }
}

Autorisieren des Zugriffs mithilfe der FileREST-Datenebenen-API

Sie können auch den Zugriff auf Dateidaten über das Azure-Portal, Azure PowerShell oder Azure CLI autorisieren.

Das Azure-Portal kann entweder Ihr Microsoft Entra-Konto oder den Speicherkontozugriffsschlüssel verwenden, um auf Dateidaten in einem Azure-Speicherkonto zuzugreifen. Welches Autorisierungsschema das Azure-Portal verwendet, hängt von den Azure-Rollen ab, die Ihnen zugewiesen sind.

Wenn Sie versuchen, auf Dateidaten zuzugreifen, überprüft das Azure-Portal zunächst, ob Ihnen eine Azure-Rolle Microsoft.Storage/storageAccounts/listkeys/actionzugewiesen wurde. Wenn Sie dieser Aktion eine Rolle zugewiesen haben, verwendet das Azure-Portal den Kontoschlüssel für den Zugriff auf Dateidaten über die Autorisierung gemeinsam genutzter Schlüssel. Wenn Sie dieser Aktion keine Rolle zugewiesen haben, versucht das Azure-Portal, mithilfe Ihres Microsoft Entra-Kontos auf Daten zuzugreifen.

Um über Ihr Microsoft Entra-Konto auf Dateidaten über das Azure-Portal zuzugreifen, benötigen Sie Berechtigungen für den Zugriff auf Dateidaten, und Sie benötigen auch Berechtigungen zum Navigieren durch die Speicherkontoressourcen im Azure-Portal. Die von Azure bereitgestellten integrierten Rollen gewähren Zugriff auf Dateiressourcen, gewähren aber keine Berechtigungen für Speicherkontoressourcen. Aus diesem Grund erfordert der Zugriff auf das Portal auch die Zuweisung einer Rolle des Azure Resource Managers (ARM), wie z. B. der Rolle "Reader", mit einem Geltungsbereich auf Höhe des Speicherkontos oder höher. Die Rolle " Leser " gewährt die restriktivsten Berechtigungen, aber jede ARM-Rolle, die Zugriff auf Speicherkontoverwaltungsressourcen gewährt, ist akzeptabel.

Das Azure-Portal gibt an, welches Autorisierungsschema verwendet wird, wenn Sie zu einem Container navigieren. Weitere Informationen zum Datenzugriff im Portal finden Sie unter Auswählen, wie der Zugriff auf Dateidaten im Azure-Portal autorisiert werden soll.

Siehe auch