Anmerkung
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.
Während der lokalen Entwicklung müssen sich Anwendungen bei Azure authentifizieren, um unterschiedliche Azure-Dienste zu verwenden. Lokal authentifizieren, indem Sie einen der folgenden Ansätze verwenden:
- Verwenden Sie ein Entwicklerkonto mit einem der Entwicklertools, die von der Azure Identity-Bibliothek unterstützt werden.
- Verwenden Sie einen Dienstprinzipal.
In diesem Artikel wird erläutert, wie Sie sich mithilfe eines Entwicklerkontos mit Tools authentifizieren, die von der Azure Identity-Bibliothek unterstützt werden. In den folgenden Abschnitten lernen Sie:
- Verwenden von Microsoft Entra-Gruppen zum effizienten Verwalten von Berechtigungen für mehrere Entwicklerkonten.
- So weisen Sie Entwicklerkonten Rollen zur Verwaltung von Berechtigungen zu.
- So melden Sie sich bei unterstützten lokalen Entwicklungstools an.
- So authentifizieren Sie sich mithilfe eines Entwicklerkontos aus Ihrem App-Code.
Unterstützte Entwicklertools für die Authentifizierung
Damit sich eine App bei Azure während der lokalen Entwicklung mithilfe der Azure-Anmeldeinformationen des Entwicklers authentifiziert, muss der Entwickler von einem der folgenden Entwicklertools bei Azure angemeldet sein:
- Azure-Befehlszeilenschnittstelle (Azure CLI)
- Azure Developer CLI (Befehlszeilenschnittstelle für Entwickler)
- Azure PowerShell
Die Azure Identity-Bibliothek kann erkennen, dass der Entwickler von einem dieser Tools aus angemeldet ist. Die Bibliothek kann dann das Microsoft Entra-Zugriffstoken über das Tool abrufen, um die App bei Azure als angemeldeten Benutzer zu authentifizieren.
Dieser Ansatz nutzt die vorhandenen Azure-Konten des Entwicklers, um den Authentifizierungsprozess zu optimieren. Das Konto eines Entwicklers verfügt jedoch wahrscheinlich über mehr Berechtigungen als für die App erforderlich, wodurch die Berechtigungen überschritten werden, mit denen die App in der Produktion ausgeführt wird. Alternativ können Sie Anwendungsdienstprinzipale erstellen, die während der lokalen Entwicklung verwendet werden können, die nur auf den Von der App benötigten Zugriff zugreifen können.
Erstellen einer Microsoft Entra-Gruppe für die lokale Entwicklung
Erstellen Sie eine Microsoft Entra-Gruppe, um die Rollen (Berechtigungen) zu kapseln, die die App in der lokalen Entwicklung benötigt, anstatt die Rollen einzelnen Dienstprinzipalobjekten zuzuweisen. Dieser Ansatz bietet die folgenden Vorteile:
- Jeder Entwickler hat die gleichen Rollen auf Gruppenebene zugewiesen.
- Wenn eine neue Rolle für die App erforderlich ist, muss sie nur der Gruppe für die App hinzugefügt werden.
- Wenn ein neuer Entwickler dem Team beitritt, wird ein neuer Anwendungsdienstprinzipal für den Entwickler erstellt und der Gruppe hinzugefügt, um sicherzustellen, dass der Entwickler über die richtigen Berechtigungen für die Arbeit an der App verfügt.
Navigieren Sie zur Microsoft Entra ID Übersichtsseite im Azure-Portal.
Wählen Sie im linken Menü "Alle Gruppen " aus.
Wählen Sie auf der Seite "Gruppen " die Option "Neue Gruppe" aus.
Füllen Sie auf der Seite "Neue Gruppe " die folgenden Formularfelder aus:
- Gruppentyp: Wählen Sie Sicherheits-aus.
- Gruppenname: Geben Sie einen Namen für die Gruppe ein, die einen Verweis auf den App- oder Umgebungsnamen enthält.
- Gruppenbeschreibung: Geben Sie eine Beschreibung ein, die den Zweck der Gruppe erläutert.
Wählen Sie den Link "Keine Mitglieder ausgewählt" unter "Mitglieder" aus, um der Gruppe Mitglieder hinzuzufügen.
Suchen Sie im daraufhin geöffneten Flyoutbereich nach dem zuvor erstellten Dienstprinzipal, und wählen Sie ihn aus den gefilterten Ergebnissen aus. Wählen Sie unten im Bereich die Schaltfläche "Auswählen " aus, um Ihre Auswahl zu bestätigen.
Wählen Sie unten auf der Seite "Neue Gruppe erstellen" aus, um die Gruppe zu erstellen und zur Seite "Alle Gruppen" zurückzukehren. Wenn die neue Gruppe nicht aufgeführt ist, warten Sie einen Moment, und aktualisieren Sie die Seite.
Weisen Sie der Gruppe Rollen zu
Ermitteln Sie als Nächstes, welche Rollen (Berechtigungen) Ihre App für welche Ressourcen benötigt, und weisen Sie diese Rollen der von Ihnen erstellten Microsoft Entra-Gruppe zu. Gruppen können einer Rolle im Ressourcen-, Ressourcengruppen- oder Abonnementbereich zugewiesen werden. In diesem Beispiel wird gezeigt, wie Rollen im Ressourcengruppenbereich zugewiesen werden, da die meisten Apps alle ihre Azure-Ressourcen in einer einzelnen Ressourcengruppe gruppieren.
Navigieren Sie im Azure-Portal zur Seite "Übersicht" der Ressourcengruppe, die Ihre App enthält.
Wählen Sie im linken Navigationsbereich die Option Zugriffssteuerung (IAM).
Wählen Sie auf der Seite access control (IAM)+ Hinzufügen und dann im Dropdownmenü " Rollenzuweisung hinzufügen " aus. Die Seite " Rollenzuweisung hinzufügen " bietet mehrere Registerkarten zum Konfigurieren und Zuweisen von Rollen.
Verwenden Sie auf der Registerkarte " Rolle " das Suchfeld, um die Rolle zu suchen, die Sie zuweisen möchten. Wählen Sie die Rolle und dann "Weiter" aus.
Auf der Registerkarte „Mitglieder“
- Wählen Sie für den Wert "Zugriff zuweisen""Benutzer", "Gruppe" oder "Dienstprinzipal" aus.
- Wählen Sie für den Wert " Mitglieder " die Option "Mitglieder auswählen " aus, um den Flyoutbereich " Mitglieder auswählen " zu öffnen.
- Suchen Sie nach der Zuvor erstellten Microsoft Entra-Gruppe, und wählen Sie sie aus den gefilterten Ergebnissen aus. Wählen Sie Auswählen aus, um die Gruppe auszuwählen und das Flyout-Panel zu schließen.
- Wählen Sie "Überprüfen" und "Zuweisen " am unteren Rand der Registerkarte " Mitglieder " aus.
Wählen Sie auf der Registerkarte " Überprüfen+ Zuweisen " die Option "Überprüfen" und "Zuweisen " am unteren Rand der Seite aus.
Anmelden bei Azure mithilfe von Entwicklertools
Melden Sie sich als Nächstes mit einem von mehreren Entwicklertools bei Azure an, mit dem Sie die Authentifizierung in Ihrer Entwicklungsumgebung durchführen können. Das Konto, das Sie authentifizieren, sollte auch in der Microsoft Entra-Gruppe vorhanden sein, die Sie zuvor erstellt und konfiguriert haben.
Entwickler können Azure CLI verwenden, um sich zu authentifizieren. Apps, die DefaultAzureCredential oder AzureCLICredential verwenden, können dann dieses Konto verwenden, um App-Anforderungen zu authentifizieren.
Führen Sie den az login Befehl aus, um sich mit der Azure CLI zu authentifizieren. Auf einem System mit einem Standardwebbrowser startet die Azure CLI den Browser, um den Benutzer zu authentifizieren.
az login
Für Systeme ohne Standardwebbrowser verwendet der befehl az login den Authentifizierungsfluss von Gerätecode. Durch Angeben des Arguments --use-device-code können Sie ferner erzwingen, dass die Azure CLI den Gerätecodeflow verwendet, anstatt einen Browser zu starten.
az login --use-device-code
Authentifizieren von Azure-Diensten aus Ihrer App
Das Azidentity-Paket bietet verschiedene Anmeldeinformationen , die an die Unterstützung verschiedener Szenarien und Microsoft Entra-Authentifizierungsflüsse angepasst sind. Die folgenden Schritte veranschaulichen die Verwendung von DefaultAzureCredential beim lokalen Arbeiten mit Dienstprinzipalen und in der Produktion.
Implementieren des Codes
Um Azure SDK-Clientobjekte für Azure zu authentifizieren, sollte Ihre Anwendung die DefaultAzureCredential Klasse verwenden. In diesem Szenario wird sequenziell überprüft, DefaultAzureCredential ob der Entwickler mit der Azure CLI oder der Azure Developer CLI bei Azure angemeldet ist. Wenn sich der Entwickler mit einem dieser Tools bei Azure anmeldet, verwendet die App die Anmeldeinformationen für die Authentifizierung.
DefaultAzureCredential ist eine geordnete Sequenz von Mechanismen für die Authentifizierung bei Microsoft Entra ID. Jeder Authentifizierungsmechanismus ist ein Typ, der die TokenCredential Schnittstelle implementiert und als Credential bezeichnet wird.
DefaultAzureCredential überprüft sequenziell, ob der Entwickler mit der Azure CLI oder der Azure Developer CLI bei Azure angemeldet ist. Wenn sich der Entwickler mit einem dieser Tools bei Azure anmeldet, verwendet die App die Anmeldeinformationen für die Authentifizierung. Weitere Informationen zum Anpassen der Anmeldeinformationskette finden Sie unter Anpassen von DefaultAzureCredential.
Fügen Sie das
azidentityPaket zu Ihrer Anwendung hinzu.go get github.com/Azure/azure-sdk-for-go/sdk/azidentityFür jeden Go-Code, der ein Azure SDK-Clientobjekt in Ihrer App erstellt, möchten Sie:
- Importieren Sie das
azidentityPaket. - Verwenden Sie
DefaultAzureCredentialoderAzureCLICredential, um eine Instanz von Anmeldeinformationen zu erstellen. Beispiel:
Um
DefaultAzureCredentialzu verwenden, setzen Sie die UmgebungsvariableAZURE_TOKEN_CREDENTIALSaufdev, die angibt, dass die App in einer Entwicklungsumgebung ausgeführt wird. Weitere Informationen finden Sie unter Anpassen von DefaultAzureCredential.// Environment variable AZURE_TOKEN_CREDENTIALS=dev or a specific developer tool credential value cred, err := azidentity.NewDefaultAzureCredential(nil)Oder nutzen Sie eine spezifische Anmeldeinformation wie
AzureCLICredential,AzureDeveloperCLICredentialoderAzurePowerShellCredential, um sich mit dem angemeldeten Benutzer bei einem bestimmten Entwicklungstool zu authentifizieren.cred, err := azidentity.NewAzureCLICredential(nil) // or cred, err := azidentity.NewAzureDeveloperCLICredential(nil) // or cred, err := azidentity.NewAzurePowerShellCredential(nil)
- Übergeben Sie die Anmeldeinformationsinstanz an den Azure SDK-Clientkonstruktor.
- Importieren Sie das
Ein Beispiel für diese Schritte ist im folgenden Codesegment dargestellt.
import (
"context"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)
const (
account = "https://<replace_with_your_storage_account_name>.blob.core.windows.net/"
containerName = "sample-container"
blobName = "sample-blob"
sampleFile = "path/to/sample/file"
)
func main() {
// create a credential
cred, err := azidentity.NewDefaultAzureCredential(nil)
// or cred, err := azidentity.NewAzureCLICredential(nil)
// or cred, err := azidentity.NewAzureDeveloperCLICredential(nil)
// or cred, err := azidentity.NewAzurePowerShellCredential(nil)
if err != nil {
// TODO: handle error
}
// create a client for the specified storage account
client, err := azblob.NewClient(account, cred, nil)
if err != nil {
// TODO: handle error
}
// TODO: perform some action with the azblob Client
// _, err = client.DownloadFile(context.TODO(), <containerName>, <blobName>, <target_file>, <DownloadFileOptions>)
}