Freigeben über


Autorisieren des Zugriffs auf Warteschlangen mithilfe der Microsoft Entra-ID

Azure Storage unterstützt die Verwendung der Microsoft Entra-ID zum Autorisieren von Anforderungen für Warteschlangendaten. Mit Der Microsoft Entra-ID können Sie die rollenbasierte Zugriffssteuerung (Azure RBAC) von Azure verwenden, um Berechtigungen für einen Sicherheitsprinzipal zu erteilen, bei dem es sich um einen Benutzer, eine Gruppe oder einen Anwendungsdienstprinzipal handeln kann. Der Sicherheitsprinzipal wird von der Microsoft Entra-ID authentifiziert, um ein OAuth 2.0-Token zurückzugeben. Das Token kann anschließend zum Autorisieren einer Anforderung an den Warteschlangendienst verwendet werden.

Die Autorisierung mit Azure AD bietet eine höhere Sicherheit und Benutzerfreundlichkeit als die Autorisierung mit gemeinsam verwendetem Schlüssel. Microsoft empfiehlt, nach Möglichkeit die Microsoft Entra-Autorisierung mit Ihren Warteschlangenanwendungen zu verwenden, um den Zugriff mit minimal erforderlichen Berechtigungen sicherzustellen.

Die Autorisierung mit Microsoft Entra ID ist für alle allgemeinen Speicherkonten in allen öffentlichen Regionen und nationalen Clouds verfügbar. Nur Speicherkonten, die mit dem Azure Resource Manager-Bereitstellungsmodell erstellt wurden, unterstützen die Microsoft Entra-Autorisierung.

Übersicht über die Microsoft Entra-ID für Warteschlangen

Wenn ein Sicherheitsprinzipal (ein Benutzer, eine Gruppe oder eine Anwendung) versucht, auf eine Warteschlangenressource zuzugreifen, muss die Anforderung autorisiert sein, es sei denn, es ist eine Warteschlange, die für anonymen Zugriff verfügbar ist. Mit microsoft Entra ID ist der Zugriff auf eine Ressource ein zweistufiger Prozess:

  1. Zunächst wird die Identität des Sicherheitsprinzipals authentifiziert und ein OAuth 2.0-Token zurückgegeben.

    Der Authentifizierungsschritt erfordert, dass eine Anwendung zur Laufzeit ein OAuth 2.0-Zugriffstoken anfordert. Wenn eine Anwendung in einer Azure-Entität ausgeführt wird, z. B. einer Azure-VM, einer VM-Skalierungsgruppe oder einer Azure Functions-App, kann sie eine verwaltete Identität verwenden, um auf Warteschlangendaten zuzugreifen.

  2. Anschließend wird das Token als Teil einer Anforderung an den Warteschlangendienst übergeben und vom Dienst verwendet, um den Zugriff auf die angegebene Ressource zu autorisieren.

    Der Autorisierungsschritt erfordert es, dass dem Sicherheitsprinzipal, der die Anforderung sendet, mindestens eine Azure RBAC-Rolle zugewiesen wird. Weitere Informationen finden Sie unter Zuweisen von Azure-Rollen für Zugriffsrechte.

Verwenden eines Microsoft Entra-Kontos mit Portal, PowerShell oder Azure CLI

Informationen zum Zugreifen auf Daten im Azure-Portal mit einem Microsoft Entra-Konto finden Sie unter Datenzugriff über das Azure-Portal. Informationen zum Aufrufen von Azure PowerShell- oder Azure CLI-Befehlen mit einem Microsoft Entra-Konto finden Sie unter Datenzugriff von PowerShell oder Azure CLI.

Verwenden der Microsoft Entra-ID zum Autorisieren des Zugriffs im Anwendungscode

Um den Zugriff auf Azure Storage mit Microsoft Entra-ID zu autorisieren, können Sie eine der folgenden Clientbibliotheken verwenden, um ein OAuth 2.0-Token zu erwerben:

Azure Identity-Clientbibliothek

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 werden 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 Azure Storage-Anforderungen 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 Token-Anmeldeinformationen verwenden, um ein Dienstclient-Objekt zu erstellen, das für autorisierte Vorgänge mit Azure Storage verwendet werden kann. Eine einfache Möglichkeit zum Abrufen des Zugriffstokens und der Tokenanmeldeinformationen ist die Verwendung der DefaultAzureCredential Klasse, die von der Azure Identity-Clientbibliothek bereitgestellt wird. DefaultAzureCredential versucht, die Token-Anmeldeinformationen abzurufen, indem nacheinander verschiedene Anmeldeinformationstypen ausprobiert werden. DefaultAzureCredential funktioniert sowohl in der Entwicklungsumgebung als auch in Azure.

Die folgende Tabelle verweist auf zusätzliche Informationen zum Autorisieren des Zugriffs auf Daten in verschiedenen Szenarien:

Sprache .NETTO Java JavaScript Python Geh
Übersicht über die Authentifizierung mit der Microsoft Entra-ID Authentifizieren von .NET-Anwendungen mit Azure-Diensten Azure-Authentifizierung mit Java und Azure Identity Authentifizieren von JavaScript-Apps bei Azure mithilfe des Azure SDK- Authentifizieren von Python-Apps bei Azure mithilfe des Azure SDK-
Authentifizierung mithilfe von Entwicklerdienstprinzipale Authentifizieren von .NET-Apps bei Azure-Diensten während der lokalen Entwicklung mithilfe von Dienstprinzipalen Azure-Authentifizierung mit Dienstprinzipal Authentifizierung für JS-Apps bei Azure-Diensten mit Dienstprinzipal- Authentifizieren von Python-Apps bei Azure-Diensten während der lokalen Entwicklung mithilfe von Dienstprinzipalen Azure SDK für die Go-Authentifizierung mit einem Dienstprinzipal-
Authentifizierung mit Entwickler- oder Benutzerkonten Authentifizieren von .NET-Apps bei Azure-Diensten während der lokalen Entwicklung mithilfe von Entwicklerkonten Azure-Authentifizierung mit Benutzeranmeldeinformationen Authentifizierung von JS-Apps für Azure-Dienste mit Entwicklungskonten Authentifizieren von Python-Apps bei Azure-Diensten während der lokalen Entwicklung mithilfe von Entwicklerkonten Azure-Authentifizierung mit dem Azure SDK für go
Authentifizierung aus von Azure gehosteten Apps Authentifizieren von von Azure gehosteten Apps für Azure-Ressourcen mit dem Azure SDK für .NET- Authentifizieren von von Azure gehosteten Java-Anwendungen Authentifizieren von von Azure gehosteten JavaScript-Apps für Azure-Ressourcen mit dem Azure SDK für JavaScript- Authentifizieren von von Azure gehosteten Apps für Azure-Ressourcen mit dem Azure SDK für Python Authentifizierung mit dem Azure SDK für Go mithilfe einer verwalteten Identität
Authentifizierung aus lokalen Apps Authentifizierung bei Azure-Ressourcen von .NET-Apps, die lokal gehostet werden Authentifizieren lokaler JavaScript-Apps für Azure-Ressourcen Authentifizieren bei Azure-Ressourcen von Python-Apps, die vor Ort gehostet werden
Übersicht über die Identitätsclientbibliothek Azure Identity-Clientbibliothek für .NET- Azure Identity-Clientbibliothek für Java- Azure Identity-Clientbibliothek für JavaScript Azure Identity-Clientbibliothek für Python Azure Identity-Clientbibliothek für go

Microsoft Authentication Library (MSAL)

Microsoft empfiehlt zwar, die Azure Identity-Clientbibliothek nach Möglichkeit zu verwenden, die MSAL-Bibliothek kann jedoch in bestimmten erweiterten Szenarien verwendet werden. Weitere Informationen finden Sie unter Informationen zu MSAL.

Wenn Sie MSAL verwenden, um ein OAuth-Token für den Zugriff auf Azure Storage zu erwerben, müssen Sie eine Microsoft Entra-Ressourcen-ID angeben. Die Microsoft Entra-Ressourcen-ID gibt die Zielgruppe an, für die ein ausgestelltes Token verwendet werden kann, um Zugriff auf eine Azure-Ressource bereitzustellen. Im Fall von Azure Storage kann die Ressourcen-ID spezifisch für ein einzelnes Speicherkonto sein, oder sie kann für jedes Speicherkonto gelten.

Wenn Sie eine Ressourcen-ID angeben, die spezifisch für ein einzelnes Speicherkonto und einen einzelnen Dienst ist, wird die Ressourcen-ID verwendet, um ein Token für die Autorisierung von Anforderungen nur für das angegebene Konto und den angegebenen Dienst abzurufen. In der folgenden Tabelle ist der Wert aufgeführt, der für die Ressourcen-ID verwendet werden soll, basierend auf der Cloud, mit der Sie arbeiten. Ersetzen Sie <account-name> durch den Namen Ihres Speicherkontos.

Wolke Ressourcen-ID
Azure Global https://<account-name>.queue.core.windows.net
Azure für Behörden https://<account-name>.queue.core.usgovcloudapi.net
Azure China 21Vianet https://<account-name>.queue.core.chinacloudapi.cn

Sie können auch eine Ressourcen-ID bereitstellen, die für jedes Speicherkonto gilt, wie in der folgenden Tabelle dargestellt. Diese Ressourcen-ID ist für alle öffentlichen und souveränen Clouds identisch und wird verwendet, um ein Token für die Autorisierung von Anforderungen an ein beliebiges Speicherkonto zu erwerben.

Wolke Ressourcen-ID
Azure Global
Azure für Behörden
Azure China 21Vianet
https://storage.azure.com/

Zuweisen von Azure-Rollen für Zugriffsrechte

Microsoft Entra autorisiert Zugriffsrechte für gesicherte Ressourcen über Azure RBAC. Azure Storage definiert eine Reihe integrierter RBAC-Rollen, die allgemeine Gruppen von Berechtigungen umfassen, die für den Zugriff auf Warteschlangendaten verwendet werden. Sie können auch benutzerdefinierte Rollen für den Zugriff auf Warteschlangendaten definieren. Weitere Informationen zum Zuweisen von Azure-Rollen für den Warteschlangenzugriff finden Sie unter Zuweisen einer Azure-Rolle für den Zugriff auf Warteschlangendaten.

Ein Microsoft Entra-Sicherheitsprinzipal kann ein Benutzer, eine Gruppe, ein Anwendungsdienstprinzipal oder eine verwaltete Identität für Azure-Ressourcensein. Die RBAC-Rollen, die einem Sicherheitsprinzipal zugewiesen sind, bestimmen die Berechtigungen, über die der Prinzipal verfügt. Weitere Informationen zum Zuweisen von Azure-Rollen für den Warteschlangenzugriff finden Sie unter Zuweisen einer Azure-Rolle für den Zugriff auf Warteschlangendaten

In einigen Fällen müssen Sie möglicherweise fein abgestimmten Zugriff auf Warteschlangenressourcen aktivieren oder Berechtigungen vereinfachen, wenn Sie über eine große Anzahl von Rollenzuweisungen für eine Speicherressource verfügen. Sie können die Azure-attributbasierte Zugriffssteuerung (Azure ABAC) verwenden, um Bedingungen für Rollenzuweisungen zu konfigurieren. Sie können Bedingungen mit einer benutzerdefinierten Rolle verwenden oder integrierte Rollen auswählen. Weitere Informationen zum Konfigurieren von Bedingungen für Azure-Speicherressourcen mit ABAC finden Sie unter Autorisieren des Zugriffs auf Warteschlangen mit Azure-Rollenzuweisungsbedingungen. Ausführliche Informationen zu unterstützten Bedingungen für Warteschlangendatenvorgänge finden Sie unter Aktionen und Attribute für Azure-Rollenzuweisungsbedingungen für Azure-Warteschlangen.

Hinweis

Wenn Sie ein Azure Storage-Konto erstellen, werden Ihnen nicht automatisch Berechtigungen für den Zugriff auf Daten über die Microsoft Entra-ID zugewiesen. Sie müssen sich explizit eine Azure-Rolle für den Zugriff auf Warteschlangenspeicher zuweisen. Sie können sie auf Ebene Ihres Abonnements, einer Ressourcengruppe, eines Speicherkontos oder einer Warteschlange zuweisen.

Ressourcenbereich

Bevor Sie einem Sicherheitsprinzipal eine Azure RBAC-Rolle zuweisen, bestimmen Sie den Umfang des Zugriffs, über den der Sicherheitsprinzipal verfügen soll. Bewährte Methoden diktieren, dass es immer am besten ist, nur den schmalsten möglichen Bereich zu gewähren. Azure RBAC-Rollen, die auf einer breiteren Ebene definiert sind, werden von den darunter liegenden Ressourcen geerbt.

Sie können den Zugriff auf Azure-Warteschlangenressourcen auf den folgenden Ebenen einschränken, beginnend mit dem schmalsten Bereich:

  • Eine einzelne Warteschlange. In diesem Bereich gilt eine Rollenzuweisung für Nachrichten in der Warteschlange und für Warteschlangeneigenschaften und Metadaten.
  • Das Speicherkonto. Bei diesem Bereich gilt eine Rollenzuweisung für alle Warteschlangen und deren Nachrichten.
  • Die Ressourcengruppe. In diesem Bereich gilt eine Rollenzuweisung für alle Warteschlangen in allen Speicherkonten in der Ressourcengruppe.
  • Das Abonnement. In diesem Umfang gilt eine Rollenzuweisung für alle Warteschlangen in allen Speicherkonten in allen Ressourcengruppen im Abonnement.
  • Eine Verwaltungsgruppe. Im Rahmen dieses Geltungsbereichs gilt eine Rollenzuweisung für alle Warteschlangen in allen Speicherkonten in allen Ressourcengruppen in allen Abonnements der Verwaltungsgruppe.

Weitere Informationen zum Bereich für Azure RBAC-Rollenzuweisungen finden Sie unter Grundlegendes zum Bereich für Azure RBAC.

In Azure integrierte Rollen für Warteschlangen

Azure RBAC bietet mehrere integrierte Rollen zum Autorisieren des Zugriffs auf Warteschlangendaten mithilfe der Microsoft Entra-ID und OAuth. Einige Beispiele für Rollen, die Berechtigungen für Datenressourcen in Azure Storage bereitstellen, sind:

Informationen zum Zuweisen einer integrierten Azure-Rolle zu einem Sicherheitsprinzipal finden Sie unter Zuweisen einer Azure-Rolle für den Zugriff auf Warteschlangendaten. Informationen zum Auflisten von Azure RBAC-Rollen und deren Berechtigungen finden Sie unter Auflisten von Azure-Rollendefinitionen.

Weitere Informationen dazu, wie integrierte Rollen für Azure Storage definiert werden, finden Sie unter Grundlegendes zu Rollendefinitionen. Informationen zum Erstellen benutzerdefinierter Azure-Rollen finden Sie unter benutzerdefinierte Azure-Rollen.

Nur explizit für den Datenzugriff definierte Rollen ermöglichen einem Sicherheitsprinzipal den Zugriff auf Warteschlangendaten. Integrierte Rollen wie Besitzer, Mitwirkender und Speicherkonto-Mitwirkender ermöglichen es einem Sicherheitsprinzipal, ein Speicherkonto zu verwalten, bieten jedoch keinen Zugriff auf die Warteschlangendaten innerhalb dieses Kontos über Microsoft Entra ID. Wenn eine Rolle jedoch Microsoft.Storage/storageAccounts/listKeys/actionenthält, kann ein Benutzer, dem diese Rolle zugewiesen ist, mithilfe der Zugriffsschlüssel des Kontos über die Autorisierung mit Shared Keys auf Daten im Speicherkonto zugreifen. Weitere Informationen finden Sie unter Auswählen der Autorisierung des Zugriffs auf Warteschlangendaten im Azure-Portal.

Ausführliche Informationen zu den vordefinierten Azure-Rollen für Azure Storage, sowohl für die Datendienste als auch für den Verwaltungsdienst, finden Sie im Abschnitt Storage in den integrierten Azure-Rollen für Azure RBAC. Weitere Informationen zu den verschiedenen Rollentypen, die Berechtigungen in Azure bereitstellen, finden Sie unter Azure-Rollen, Microsoft Entra-Rollen und klassische Abonnementadministratorrollen.

Von Bedeutung

Azure-Rollenzuweisungen können bis zu 30 Minuten dauern, bis sie verteilt werden.

Zugriffsberechtigungen für Datenvorgänge

Ausführliche Informationen zu den Berechtigungen, die zum Aufrufen bestimmter Warteschlangendienstvorgänge erforderlich sind, finden Sie unter Berechtigungen für Aufrufen von Datenvorgängen.

Zugreifen auf Daten mit einem Microsoft Entra-Konto

Der Zugriff auf Warteschlangendaten über das Azure-Portal, PowerShell oder Azure CLI kann entweder mithilfe des Microsoft Entra-Kontos des Benutzers oder mithilfe der Kontozugriffsschlüssel (Shared Key Authorization) autorisiert werden.

Vorsicht

Die Autorisierung mit freigegebenem Schlüssel wird nicht empfohlen, da sie möglicherweise weniger sicher ist. Deaktivieren Sie für optimale Sicherheit die Autorisierung über den freigegebenen Schlüssel für Ihr Speicherkonto, wie in Verhindern der Autorisierung für gemeinsame Schlüssel für ein Azure Storage-Kontobeschrieben.

Die Verwendung von Zugriffstasten und Verbindungszeichenfolgen sollte auf den anfänglichen Nachweis von Konzept-Apps oder Entwicklungsprototypen beschränkt sein, die nicht auf Produktionsdaten oder vertrauliche Daten zugreifen. Andernfalls sollten die tokenbasierten Authentifizierungsklassen, die im Azure SDK verfügbar sind, beim Authentifizieren bei Azure-Ressourcen immer bevorzugt werden.

Microsoft empfiehlt Clients, entweder die Microsoft Entra-ID oder eine SAS (Shared Access Signature) zu verwenden, um den Zugriff auf Daten in Azure Storage zu autorisieren. Weitere Informationen finden Sie unter Autorisieren von Vorgängen für den Datenzugriff.

Datenzugriff über das Azure-Portal

Das Azure-Portal kann entweder Ihr Microsoft Entra-Konto oder die Kontozugriffsschlüssel verwenden, um auf Warteschlangendaten 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 Warteschlangendaten zuzugreifen, überprüft das Azure-Portal zunächst, ob Ihnen eine Azure-Rolle mit Microsoft.Storage/storageAccounts/listkeys/action zugewiesen wurde. Wenn Ihnen eine Rolle mit dieser Aktion zugewiesen wurde, verwendet das Azure-Portal den Kontoschlüssel für den Zugriff auf Warteschlangendaten per Authentifizierung mit gemeinsam verwendetem 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 Warteschlangendaten über das Azure-Portal zuzugreifen, benötigen Sie Berechtigungen für den Zugriff auf Warteschlangendaten, und Sie benötigen auch Berechtigungen zum Navigieren durch die Speicherkontoressourcen im Azure-Portal. Die von Azure Storage bereitgestellten integrierten Rollen gewähren Zugriff auf Warteschlangenressourcen, gewähren aber keine Berechtigungen für Speicherkontoressourcen. Aus diesem Grund erfordert der Zugriff auf das Portal auch die Zuweisung einer Azure Resource Manager-Rolle, z. B. die rolle Reader, die auf die Ebene des Speicherkontos oder höher festgelegt ist. Der Reader Rolle gewährt die eingeschränktsten Berechtigungen, aber eine andere Azure Resource Manager-Rolle, die Zugriff auf Speicherkontoverwaltungsressourcen gewährt, ist ebenfalls akzeptabel. Weitere Informationen zum Zuweisen von Berechtigungen für den Datenzugriff im Azure-Portal mit einem Microsoft Entra-Konto finden Sie unter Zuweisen einer Azure-Rolle für den Zugriff auf Warteschlangendaten.

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

Datenzugriff von PowerShell oder Azure CLI

Azure CLI und PowerShell unterstützen die Anmeldung mit Microsoft Entra-Anmeldeinformationen. Nachdem Sie sich angemeldet haben, wird Ihre Sitzung unter diesen Zugangsdaten ausgeführt. Weitere Informationen finden Sie in den folgenden Artikeln:

Nächste Schritte