Freigeben über


Azure-Authentifizierung in Java-Entwicklungsumgebungen

Dieser Artikel bietet eine Übersicht über die Unterstützung der Azure Identity-Bibliothek für 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 für Browser aktivierten Computer zu besuchen, wenn die Anwendung versucht, sich zu authentifizieren. Der Benutzer gibt dann den in den Anweisungen genannten Gerätecode zusammen mit seinen Anmeldeinformationen ein. 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 im Azure-Portal zu Microsoft Entra ID, und suchen Sie nach Ihrer 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.

Diese Schritte ermöglichen es der Anwendung, sich zu authentifizieren, aber sie hat immer noch nicht die Berechtigung, Sie bei Microsoft Entra ID anzumelden oder in Ihrem Namen auf Ressourcen 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 Administrator Ihres Mandanten sein, um Ihrer Anwendung Einwilligung zu erteilen, wenn Sie sich zum ersten Mal anmelden.

Wenn Sie die Option für Gerätecodeflow für Ihr Microsoft Entra ID nicht konfigurieren können, muss Ihre App ggf. mehrinstanzenfähig 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 InteractiveBrowserCredential verwenden zu können, müssen Sie eine Anwendung in Microsoft Entra ID mit Berechtigungen zum Anmelden im Namen eines Benutzers registrieren. Führen Sie den zuvor genannten Schritten für den Gerätecodeflow aus, um Ihre Anwendung zu registrieren. Wie bereits erwähnt, muss ein Administrator Ihres Mandanten Ihrer Anwendung Einwilligung erteilen, 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 unter dem 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 führen die Authentifizierung in einer Entwicklungsumgebung mit aktiviertem Benutzer oder Dienstprinzipal in der Azure CLI aus. Sie verwendet die Azure CLI für einen Benutzer, der bereits angemeldet ist, und verwendet die CLI, um die Anwendung anhand der Microsoft Entra ID zu authentifizieren.

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. Sie werden von AzureCliCredential aufgefordert, 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 führen die Authentifizierung in einer Entwicklungsumgebung mit dem Konto in Azure-Toolkit für IntelliJ aus. Es werden die Anmeldeinformationen des angemeldeten Benutzers in der IntelliJ-IDE verwendet, um die Anwendung anhand von Microsoft Entra ID zu authentifizieren.

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

Melden Sie sich mithilfe der folgenden Schritte an:

  1. Öffnen Sie im IntelliJ-Fenster Datei> Einstellungen >Plug-Ins.
  2. Suchen Sie im Marketplace nach „Azure-Toolkit für IntelliJ“. Installieren Sie es, und starten Sie die IDE neu.
  3. Suchen Sie nach dem neuen Menüelement Extras> Azure >Azure-Anmeldung.
  4. Mithilfe der Geräteanmeldung können Sie sich als Benutzerkonto anmelden. Befolgen Sie die 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 >Darstellung & Verhalten >Systemeinstellungen >Kennwörter. 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 werden die Anmeldeinformationen des angemeldeten Benutzers in der VS Code-IDE verwendet, um die Anwendung anhand von Microsoft Entra ID zu authentifizieren.

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

„Nn”- Integration mit der Azure-Kontoerweiterung verarbeitet die Visual Studio Code-Authentifizierung. Um diese Form der Authentifizierung zu verwenden, installieren Sie die Azure-Kontoerweiterung, und verwenden Sie dann die Befehlspalette Ansicht>, um den Befehl Azure: Sign In 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 angegeben schließen. Wenn Sie Ihre Anwendung ausführen (entweder im Debugger oder an einem beliebigen anderen Ort auf dem Entwicklungscomputer), 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.