Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn eine Anwendung auf eine Azure-Ressource zugreifen muss, z. B. Speicher, Key Vault oder Cognitive Services, muss die Anwendung bei Azure authentifiziert werden. Dies gilt für alle Anwendungen, unabhängig davon, ob sie in Azure bereitgestellt, lokal oder in der Entwicklung auf einer lokalen Entwicklerarbeitsstation bereitgestellt werden. In diesem Artikel werden die empfohlenen Ansätze zum Authentifizieren einer App bei Azure bei Verwendung des Azure SDK für JavaScript beschrieben.
Empfohlener Ansatz für die App-Authentifizierung
Der empfohlene Ansatz besteht darin, dass Ihre Apps bei der Authentifizierung für Azure-Ressourcen tokenbasierte Authentifizierung anstelle von Verbindungszeichenfolgen oder Schlüsseln verwenden. Die Azure Identity-Bibliothek bietet tokenbasierte Authentifizierung und ermöglicht Apps die nahtlose Authentifizierung bei Azure-Ressourcen, unabhängig davon, ob sich die App in der lokalen Entwicklung befindet, in Azure bereitgestellt oder auf einem lokalen Server bereitgestellt wird.
Die spezifische Art der tokenbasierten Authentifizierung, die eine App für die Authentifizierung bei Azure-Ressourcen verwenden soll, hängt davon ab, wo die App ausgeführt wird und wie im folgenden Diagramm dargestellt wird.
Umwelt | Authentifizierung |
---|---|
Lokal | Wenn ein Entwickler eine App während der lokalen Entwicklung ausführt – Die App kann sich bei Azure mithilfe eines Anwendungsdienstprinzipals für die lokale Entwicklung oder mithilfe der Azure-Anmeldeinformationen des Entwicklers authentifizieren. Jede dieser Optionen wird im Abschnitt Authentifizierung während der lokalen Entwicklung ausführlicher erläutert. |
Azure | Wenn eine App in Azure gehostet wird – Die App sollte sich mit einer verwalteten Identität bei Azure-Ressourcen authentifizieren. Diese Option wird weiter unten im Abschnitt Authentifizierung in Serverumgebungen ausführlicher erläutert. |
Lokal | Wenn eine App lokal gehostet und bereitgestellt wird – Die App sollte sich mit einem Anwendungsdienstprinzipal bei Azure-Ressourcen authentifizieren. Diese Option wird weiter unten im Abschnitt Authentifizierung in Serverumgebungen ausführlicher erläutert. |
Vorteile der tokenbasierten Authentifizierung
Beim Erstellen von Apps für Azure wird dringend empfohlen, die tokenbasierte Authentifizierung anstelle von geheimen Schlüsseln wie Verbindungszeichenfolgen oder Schlüsseln zu verwenden. DefaultAzureCredential bietet tokenbasierte Authentifizierung.
Tokenbasierte Authentifizierung | Geheime Schlüssel (Verbindungszeichenfolgen und Schlüssel) |
---|---|
Prinzip der geringsten Berechtigung, richten Sie die spezifischen Berechtigungen ein, die von der App für die Azure-Ressource benötigt werden. | Eine Verbindungszeichenfolge oder ein Schlüssel gewährt der Azure-Ressource vollständige Rechte. |
Es ist kein Anwendungsgeheimnis zum Speichern vorhanden. | Muss Geheimnisse in einer App-Einstellung oder Umgebungsvariable speichern und rotieren. |
Die Azure Identity-Bibliothek verwaltet Token für Sie hinter den Kulissen. Dies erleichtert die Verwendung der tokenbasierten Authentifizierung als Verbindungszeichenfolge. | Geheimnisse werden nicht verwaltet. |
Die Verwendung von 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 in der Azure Identity-Bibliothek verfügbar sind, immer bevorzugt werden, wenn Sie sich bei Azure-Ressourcen authentifizieren.
Verwenden Sie die folgende Bibliothek:
DefaultAzureCredential
Die von der Azure Identity-Bibliothek bereitgestellte DefaultAzureCredential-Klasse ermöglicht Apps, je nach Umgebung, in der sie ausgeführt werden, unterschiedliche Authentifizierungsmethoden zu verwenden. Mit diesem Verhalten können Apps von der lokalen Entwicklung zu Testumgebungen in die Produktion ohne Codeänderungen heraufgestuft werden. Sie konfigurieren die entsprechende Authentifizierungsmethode für jede Umgebung, und DefaultAzureCredential
erkennt und verwendet diese Authentifizierungsmethode automatisch. Die Verwendung von DefaultAzureCredential
sollte gegenüber der manuellen Codierung bedingter Logik oder Featurekennzeichnungen bevorzugt werden, um unterschiedliche Authentifizierungsmethoden in verschiedenen Umgebungen zu verwenden.
Details zur Verwendung von DefaultAzureCredential
werden behandelt unter Verwendung von DefaultAzureCredential
in einer Anwendung.
Authentifizierung in Serverumgebungen
Beim Hosten in einer Serverumgebung sollte jeder Anwendung eine eindeutige Anwendungsidentität pro Umgebung zugewiesen werden. In Azure wird eine App-Identität durch einen Dienstprinzipal dargestellt, einen speziellen Typ von Sicherheitsprinzipal, der zum Identifizieren und Authentifizieren von Apps bei Azure bestimmt ist. Der Dienstprinzipaltyp, der für Ihre App verwendet werden soll, hängt davon ab, wo Ihre App ausgeführt wird.
Authentifizierung während der lokalen Entwicklung
Wenn eine Anwendung während der lokalen Entwicklung auf der Arbeitsstation eines Entwicklers ausgeführt wird, muss sich die lokale Umgebung bei allen von der App verwendeten Azure-Diensten authentifizieren.
Verwenden von DefaultAzureCredential in einer Anwendung
DefaultAzureCredential ist eine strikte und geordnete Abfolge von Mechanismen zur Authentifizierung für Microsoft Entra ID. Jeder Authentifizierungsmechanismus ist eine von der Klasse TokenCredential abgeleitete Klasse und wird als Anmeldeinformation bezeichnet. Zur Laufzeit versucht DefaultAzureCredential
, sich mit den ersten Anmeldeinformationen zu authentifizieren. Wenn mit dieser Anmeldeinformation kein Zugriffstoken abgerufen werden kann, wird die nächste Anmeldeinformation in der Folge ausprobiert, bis ein Zugriffstoken erfolgreich abgerufen wird. Auf diese Weise kann Ihre App unterschiedliche Anmeldeinformationen in verschiedenen Umgebungen verwenden, ohne umgebungsspezifischen Code zu schreiben.
Um "DefaultAzureCredential" zu verwenden, fügen Sie der Anwendung das @azure-/Identitätspaket hinzu.
npm install @azure/identity
Im folgenden Codebeispiel wird gezeigt, wie ein DefaultAzureCredential
Objekt instanziiert und mit einer Azure SDK-Dienst-Clientklasse verwendet wird – in diesem Fall ein BlobServiceClient
, um auf Azure Blob Storage zuzugreifen.
import { BlobServiceClient } from '@azure/storage-blob';
import { DefaultAzureCredential } from '@azure/identity';
import 'dotenv/config';
const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME;
if (!accountName) throw Error('Azure Storage accountName not found');
const blobServiceClient = new BlobServiceClient(
`https://${accountName}.blob.core.windows.net`,
new DefaultAzureCredential()
);
DefaultAzureCredential
erkennt automatisch den für die App konfigurierten Authentifizierungsmechanismus und ruft die erforderlichen Token ab, um die App bei Azure zu authentifizieren. Wenn eine Anwendung mehrere SDK-Clients verwendet, kann dasselbe Anmeldeinformationsobjekt mit jedem SDK-Clientobjekt verwendet werden.