Freigeben über


Authentifizieren von Java Apps für Azure Dienste während der lokalen Entwicklung mithilfe von Entwicklerkonten

Während der lokalen Entwicklung müssen sich Anwendungen bei Azure authentifizieren, um auf verschiedene Azure Dienste zuzugreifen. Sie können sich lokal authentifizieren, indem Sie einen der folgenden Ansätze verwenden:

In diesem Artikel wird erläutert, wie Sie sich mithilfe eines Entwicklerkontos mit Tools authentifizieren, die von der Azure Identity Library unterstützt werden. In diesem Artikel wird Folgendes behandelt:

  • 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

Während der lokalen Entwicklung kann sich eine App bei Azure mithilfe Ihrer Azure Anmeldeinformationen authentifizieren. Damit diese Authentifizierung funktioniert, müssen Sie von einem Entwicklertool wie einem der folgenden bei Azure angemeldet sein:

  • Azure CLI
  • Azure Developer-Befehlszeilenschnittstelle (CLI)
  • Azure PowerShell
  • Visual Studio Code
  • IntelliJ IDEA

Die Azure Identitätsbibliothek 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 angemeldeter Benutzer zu authentifizieren.

Dieser Ansatz nutzt die vorteile der vorhandenen Azure-Konten des Entwicklers, um den Authentifizierungsprozess zu optimieren. Das Konto eines Entwicklers verfügt jedoch wahrscheinlich über mehr Berechtigungen als die App erfordert, überschreitung daher die Berechtigungen, 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.
  1. Navigieren Sie zur Übersichtsseite Microsoft Entra ID im Azure-Portal.

  2. Wählen Sie im linken Menü "Alle Gruppen " aus.

  3. Wählen Sie auf der Seite "Gruppen " die Option "Neue Gruppe" aus.

  4. Füllen Sie auf der Seite "Neue Gruppe " die folgenden Formularfelder aus:

    • Gruppentyp: Wählen Sie Sicherheit 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.

    A screenshot zum Erstellen einer Gruppe im Azure portal.

  5. Wählen Sie unter Mitglieder den Link Keine Mitglieder ausgewählt aus, um der Gruppe Mitglieder hinzuzufügen.

  6. 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.

  7. 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 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.

  1. Navigieren Sie im Azure-Portal zur Seite Overview der Ressourcengruppe, die Ihre App enthält.

  2. Wählen Sie im linken Navigationsbereich die Option Zugriffssteuerung (IAM).

  3. 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.

  4. 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.

  5. 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.

    Ein Screenshot, der zeigt, wie man einer Microsoft Entra-Gruppe eine Rolle zuweist.

  6. Wählen Sie auf der Registerkarte " Überprüfen+ Zuweisen " die Option "Überprüfen" und "Zuweisen " am unteren Rand der Seite aus.

Melden Sie sich mithilfe von Entwicklertools bei Azure an

Melden Sie sich als Nächstes bei Azure an, indem Sie eines der Entwicklertools verwenden, mit denen 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, die Visual Studio Code verwenden, können sich direkt über den Editor über den Broker mit ihrem Entwicklerkonto authentifizieren. Apps, die DefaultAzureCredential oder VisualStudioCodeCredential verwenden, können dieses Konto nutzen, um App-Anforderungen über ein nahtloses Single Sign-On-Erlebnis zu authentifizieren.

  1. Wechseln Sie in Visual Studio Code zum Bereich Extensions, und installieren Sie die Erweiterung Azure Resources. Mit dieser Erweiterung können Sie Azure Ressourcen direkt von Visual Studio Code aus anzeigen und verwalten. Außerdem wird der integrierte Visual Studio Code Microsoft-Authentifizierungsanbieter verwendet, um sich bei Azure anzumelden.

    Screenshot der Erweiterung Azure Resources.

  2. Öffnen Sie die Befehlspalette in Visual Studio Code, suchen Sie dann nach Azure: Anmelden.

    Screenshot zeigt, wie Sie sich bei Azure in Visual Studio Code anmelden.

    Tipp

    Öffnen Sie die Befehlspalette mit Ctrl+Shift+P unter Windows/Linux oder Cmd+Shift+P unter macOS.

Authentifizieren bei Azure Diensten aus Ihrer App

Die Azure Identity library stellt Implementierungen von TokenCredential bereit, die verschiedene Szenarien und Microsoft Entra Authentifizierungsflüsse unterstützen. Die folgenden Schritte zeigen, wie Sie DefaultAzureCredential oder eine bestimmte Entwicklungstool-Anmeldeinformation bei der lokalen Arbeit mit Benutzerkonten verwenden.

Implementieren des Codes

  1. Fügen Sie die azure-identity Abhängigkeit zu Ihrer pom.xml Datei hinzu.

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-identity</artifactId>
    </dependency>
    
  2. Wählen Sie eine der Anmeldeinformationsimplementierungen basierend auf Ihrem Szenario aus.

Verwenden Sie spezifische Anmeldeinformationen für Ihr Entwicklungstool.

Übergeben Sie eine TokenCredential-Instanz, die einem bestimmten Entwicklungstool entspricht, an den Azure Dienstclientkonstruktor, z. B. AzureCliCredential.

import com.azure.identity.AzureCliCredential;
import com.azure.identity.AzureCliCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;

AzureCliCredential credential = new AzureCliCredentialBuilder().build();

SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your-key-vault-name>.vault.azure.net")
    .credential(credential)
    .buildClient();

Jede Toolanmeldeinformation folgt demselben Muster. Ersetzen Sie den Authentifizierungstyp und den entsprechenden Builder nach Bedarf.

  • AzureCliCredential / AzureCliCredentialBuilder
  • AzureDeveloperCliCredential / AzureDeveloperCliCredentialBuilder
  • AzurePowerShellCredential / AzurePowerShellCredentialBuilder
  • IntelliJCredential / IntelliJCredentialBuilder
  • VisualStudioCodeCredential / VisualStudioCodeCredentialBuilder

Verwenden Sie Anmeldeinformationen, die in jedem Entwicklungstool verfügbar sind

Verwenden Sie eine DefaultAzureCredential Instanz, die für alle lokalen Entwicklungstools optimiert ist. In diesem Beispiel muss die Umgebungsvariable AZURE_TOKEN_CREDENTIALS auf dev gesetzt werden. Weitere Informationen finden Sie unter Ausschließen eines Berechtigungstyps.

import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;

DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
    .requireEnvVars(AzureIdentityEnvVars.AZURE_TOKEN_CREDENTIALS)
    .build();

SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your-key-vault-name>.vault.azure.net")
    .credential(credential)
    .buildClient();

Nächste Schritte

In diesem Artikel wurde die Authentifizierung während der Entwicklung mithilfe der auf Ihrem Computer verfügbaren Anmeldeinformationen behandelt. Diese Form der Authentifizierung ist eine von mehreren Möglichkeiten, wie Sie sich im Azure SDK für Java authentifizieren können. In den folgenden Artikeln werden weitere Möglichkeiten beschrieben:

Wenn Probleme im Zusammenhang mit der Authentifizierung der Entwicklungsumgebung auftreten, lesen Sie die Problembehandlung bei der Authentifizierung der Entwicklungsumgebung.

Nachdem Sie die Authentifizierung gemeistert haben, sehen Sie sich Konfigurieren der Protokollierung im Azure SDK für Java an, um Informationen über die vom SDK bereitgestellten Protokollierungsfunktionen zu erhalten.