Share via


Azure-Authentifizierung in Java-Entwicklungsumgebungen

Dieser Artikel enthält eine Übersicht über die Unterstützung der Azure Identity-Bibliothek für die Microsoft Entra-Tokenauthentifizierung. Diese Unterstützung ermöglicht durch eine Reihe von TokenCredential-Implementierungen Authentifizierung für Anwendungen, die lokal auf Entwicklercomputern ausgeführt werden.

In diesem Artikel werden die folgenden Themen behandelt:

Informationen zur Problembehandlung bei der Authentifizierung von Entwicklungsumgebungen finden Sie unter "Problembehandlung bei der Authentifizierung der Entwicklungsumgebung".

Gerätecodeanmeldeinformationen

Die Gerätecodeanmeldeinformationen authentifizieren einen Benutzer interaktiv auf Geräten mit eingeschränkter Benutzeroberfläche. Dies funktioniert, indem der Benutzer aufgefordert wird, eine Anmelde-URL auf einem browserfähigen Computer zu besuchen, wenn die Anwendung versucht, sich zu authentifizieren. Der Benutzer gibt dann den Gerätecode ein, der in den Anweisungen zusammen mit seinen Anmeldeinformationen Erwähnung. Bei erfolgreicher Authentifizierung wird die Anwendung, die Authentifizierung angefordert hat, auf dem Gerät, auf dem sie ausgeführt wird, erfolgreich authentifiziert.

Weitere Informationen finden Sie unter Microsoft Identity Platform und der OAuth 2.0-Flow für Geräteautorisierungsgenehmigung.

Aktivieren von Anwendungen für Gerätecodeflow

Führen Sie die folgenden Schritte aus, um einen Benutzer über Gerätecodeflow zu authentifizieren:

  1. Wechseln Sie in der Azure-Portal zur Microsoft Entra-ID, und suchen Sie Ihre App-Registrierung.
  2. Navigieren Sie zum Abschnitt Authentifizierung.
  3. Überprüfen Sie unter Vorgeschlagene umgeleitete URIs den URI, der mit /common/oauth2/nativeclient endet.
  4. Wählen Sie unter Standardclienttyp die Option Ja aus, um die Anwendung als öffentlichen Client zu behandeln.

Mit diesen Schritten kann sich die Anwendung authentifizieren, sie verfügt jedoch weiterhin nicht über die Berechtigung, Sie bei Der Microsoft Entra-ID anzumelden oder auf Ressourcen in Ihrem Auftrag zuzugreifen. Um dieses Problem zu beheben, navigieren Sie zu API-Berechtigungen, und aktivieren Sie Microsoft Graph sowie die Ressourcen, auf die Sie zugreifen möchten.

Sie müssen auch der Administrator Ihres Mandanten sein, um Ihrer Anwendung die Zustimmung zu erteilen, wenn Sie sich zum ersten Mal anmelden.

Wenn Sie die Gerätecodeflussoption auf Ihrer Microsoft Entra-ID nicht konfigurieren können, muss Ihre App möglicherweise mehrere Mandanten sein. Wenn Sie Ihre App mehrinstanzenfähig machen möchten, navigieren Sie zum Bereich Authentifizierung und wählen dann Konten in einem beliebigen Organisationsverzeichnis aus. Wählen Sie dann für Anwendung als öffentlichen Client behandeln die Option Ja aus.

Authentifizieren eines Benutzerkontos mit dem Gerätecodeflow

Im folgenden Beispiel wird gezeigt, wie SecretClient von der azure-security-keyvault-secrets-Clientbibliothek mithilfe von DeviceCodeCredential auf einem IoT-Gerät authentifiziert wird.

DeviceCodeCredential deviceCodeCredential = new DeviceCodeCredentialBuilder()
  .challengeConsumer(challenge -> {
    // lets user know of the challenge
    System.out.println(challenge.getMessage());
  }).build();

// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
  .vaultUrl("https://<your Key Vault name>.vault.azure.net")
  .credential(deviceCodeCredential)
  .buildClient();

Interaktive Browseranmeldeinformationen

Diese Anmeldeinformationen authentifizieren einen Benutzer interaktiv mit dem Standardsystembrowser und bieten eine reibungslose Authentifizierungserfahrung, da Sie Ihre eigenen Anmeldeinformationen zum Authentifizieren Ihrer Anwendung verwenden können.

Aktivieren von Anwendungen für interaktiven OAuth 2-Browserflow

Um sie zu verwenden InteractiveBrowserCredential, müssen Sie eine Anwendung in der Microsoft Entra-ID mit Berechtigungen registrieren, um sich im Namen eines Benutzers anzumelden. Führen Sie die vorherigen Schritte für den Gerätecodefluss aus, um Ihre Anwendung zu registrieren. Wie zuvor Erwähnung, muss ein Administrator Ihres Mandanten Ihrer Anwendung zustimmen, bevor sich ein Benutzerkonto anmelden kann.

Sie werden feststellen, dass in InteractiveBrowserCredentialBuilder eine Umleitungs-URL erforderlich ist. Fügen Sie die Umleitungs-URL dem Unterabschnitt "Umleitungs-URIs " im Abschnitt "Authentifizierung" Ihrer registrierten Microsoft Entra-Anwendung hinzu.

Interaktives Authentifizieren eines Benutzerkontos im Browser

Im folgenden Beispiel wird gezeigt, wie SecretClient von der azure-security-keyvault-secrets-Clientbibliothek mithilfe von InteractiveBrowserCredential authentifiziert wird.

InteractiveBrowserCredential interactiveBrowserCredential = new InteractiveBrowserCredentialBuilder()
  .clientId("<your client ID>")
  .redirectUrl("http://localhost:8765")
  .build();

// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
  .vaultUrl("https://<your Key Vault name>.vault.azure.net")
  .credential(interactiveBrowserCredential)
  .buildClient();

Azure CLI-Anmeldeinformationen

Die Azure CLI-Anmeldeinformationen authentifiziert sich in einer Entwicklungsumgebung mit dem aktivierten Benutzer- oder Dienstprinzipal in Azure CLI. Es verwendet die Azure CLI, wenn ein Benutzer, der bereits angemeldet ist, und die CLI zum Authentifizieren der Anwendung gegen Die Microsoft Entra-ID verwendet.

Anmelde bei der Azure CLI für AzureCliCredential

Melden Sie sich mit dem folgenden Azure CLI-Befehl als Benutzer an:

az login

Verwenden Sie den folgenden Befehl, um sich als Dienstprinzipal anzumelden:

az login \
    --service-principal \
    --username <client-ID> \
    --password <client-secret> \
    --tenant <tenant-ID>

Wenn das Konto oder der Dienstprinzipal Zugriff auf mehrere Mandanten hat, stellen Sie in der Ausgabe des folgenden Befehls sicher, dass sich der gewünschte Mandant bzw. das gewünschte Abonnement im Zustand „Aktiviert“ befindet:

az account list

Bevor Sie AzureCliCredential im Code verwenden, führen Sie den folgenden Befehl aus, um zu überprüfen, ob das Konto erfolgreich konfiguriert wurde.

az account get-access-token

Abhängig von der Gültigkeit des Aktualisierungstokens in Ihrer Organisation müssen Sie diesen Vorgang möglicherweise nach einem bestimmten Zeitraum wiederholen. Im Allgemeinen beträgt die Gültigkeitsdauer des Aktualisierungstokens einige Wochen bis hin zu einigen Monaten. AzureCliCredential fordert Sie auf, sich erneut anzumelden.

Authentifizieren eines Benutzerkontos mit der Azure CLI

Im folgenden Beispiel wird gezeigt, wie SecretClient von der azure-security-keyvault-secrets-Clientbibliothek mithilfe von AzureCliCredential auf einer Arbeitsstation authentifiziert wird, auf der die Azure CLI installiert und die Anmeldung bei ihr erfolgt ist.

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

// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
  .vaultUrl("https://<your Key Vault name>.vault.azure.net")
  .credential(cliCredential)
  .buildClient();

IntelliJ-Anmeldeinformationen

Die IntelliJ-Anmeldeinformationen authentifiziert sich in einer Entwicklungsumgebung mit dem Konto im Azure Toolkit für IntelliJ. Sie verwendet die angemeldeten Benutzerinformationen auf der IntelliJ-IDE und verwendet sie zum Authentifizieren der Anwendung gegen die Microsoft Entra-ID.

Anmelden beim Azure-Toolkit für IntelliJ für IntelliJCredential

Führen Sie die folgenden Schritte aus, um sich anzumelden:

  1. Öffnen Sie im IntelliJ-Fenster "Datei > " Einstellungen > Plugins.
  2. Suchen Sie im Marketplace nach "Azure Toolkit for IntelliJ". Installieren Sie es, und starten Sie die IDE neu.
  3. Suchen des neuen Menüelements "Tools > azure > Azure Sign In"
  4. Die Geräteanmeldung hilft Ihnen bei der Anmeldung als Benutzerkonto. Folgen Sie den Anweisungen zum Anmelden auf der login.microsoftonline.com Website mit dem Gerätecode. IntelliJ fordert Sie auf, Ihre Abonnements auszuwählen. Wählen Sie das Abonnement mit den Ressourcen aus, auf die Sie zugreifen möchten.

Unter Windows benötigen Sie auch den KeePass-Datenbankpfad zum Lesen von IntelliJ-Anmeldeinformationen. Sie finden den Pfad in den IntelliJ-Einstellungen unter "Datei > Einstellungen > Aussehen und Verhaltenssystem > Einstellungen > Kennwörtern". Notieren Sie sich den Speicherort des KeePassDatabase-Pfads.

Authentifizieren eines Benutzerkontos mit IntelliJ IDEA

Im folgenden Beispiel wird gezeigt, wie SecretClient von der azure-security-keyvault-secrets-Clientbibliothek mithilfe von IntelliJCredential auf einer Arbeitsstation authentifiziert wird, auf der IntelliJ IDEA installiert und die Anmeldung des Benutzers mit einem Azure-Konto erfolgt ist.

IntelliJCredential intelliJCredential = new IntelliJCredentialBuilder()
  // KeePass configuration isrequired only for Windows. No configuration needed for Linux / Mac.
  .keePassDatabasePath("C:\\Users\\user\\AppData\\Roaming\\JetBrains\\IdeaIC2020.1\\c.kdbx")
  .build();

// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
  .vaultUrl("https://<your Key Vault name>.vault.azure.net")
  .credential(intelliJCredential)
  .buildClient();

Visual Studio Code-Anmeldeinformationen

Die Visual Studio Code-Anmeldeinformationen aktivieren Authentifizierung in Entwicklungsumgebungen, in denen VS Code mit der Azure-Kontoerweiterung für VS Code installiert ist. Es verwendet die angemeldeten Benutzerinformationen in der VS-Code-IDE und verwendet sie zum Authentifizieren der Anwendung gegen die Microsoft Entra-ID.

Anmelden bei der Azure-Kontoerweiterung für Visual Studio Code für VisualStudioCodeCredential

Die Nn-Integration in die Azure-Kontoerweiterung behandelt die Visual Studio Code-Authentifizierung. Um diese Form der Authentifizierung zu verwenden, installieren Sie die Azure-Kontoerweiterung, und verwenden Sie dann die Befehlspalette anzeigen>, um den Befehl "Azure: Anmelden" auszuführen. Mit diesem Befehl wird ein Browserfenster geöffnet und eine Seite angezeigt, auf der Sie sich bei Azure anmelden können. Nachdem Sie den Anmeldevorgang abgeschlossen haben, können Sie den Browser wie weitergeleitet schließen. Wenn Sie Ihre Anwendung (entweder im Debugger oder an einer beliebigen Stelle auf dem Entwicklungscomputer) ausführen, werden die Anmeldeinformationen aus Ihrer Anmeldung verwendet.

Authentifizieren eines Benutzerkontos mit Visual Studio Code

Im folgenden Beispiel wird gezeigt, wie SecretClient von der azure-security-keyvault-secrets-Clientbibliothek mithilfe von VisualStudioCodeCredential auf einer Arbeitsstation authentifiziert wird, auf der Visual Studio Code installiert und die Anmeldung des Benutzers mit einem Azure-Konto erfolgt ist.

VisualStudioCodeCredential visualStudioCodeCredential = new VisualStudioCodeCredentialBuilder().build();

// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
  .vaultUrl("https://<your Key Vault name>.vault.azure.net")
  .credential(visualStudioCodeCredential)
  .buildClient();

Nächste Schritte

In diesem Artikel wurde Authentifizierung während der Entwicklung mithilfe von Anmeldeinformationen behandelt, die auf Ihrem Computer verfügbar sind. Diese Form von Authentifizierung ist eine von mehreren Methoden, die Sie im Azure SDK für Java für die Authentifizierung verwenden 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.

Wenn Sie die Authentifizierung gemeistert haben, finden Sie unter Konfigurieren der Protokollierung im Azure SDK für Java weitere Informationen zur Protokollierungsfunktionalität, die vom SDK bereitgestellt wird.