Azure-Authentifizierung mit Benutzeranmeldeinformationen

In diesem Artikel wird erläutert, wie die Azure Identity-Bibliothek die Microsoft Entra-Tokenauthentifizierung mit vom Benutzer bereitgestellten Anmeldeinformationen unterstützt. Diese Unterstützung wird durch eine Reihe von TokenCredential-Implementierungen ermöglicht, die in diesem Artikel erläutert werden.

In diesem Artikel werden die folgenden Themen behandelt:

Informationen zur Behandlung von Problemen mit der Benutzeranmeldeinformationsauthentifizierung finden Sie unter "Problembehandlung bei der Benutzeranmeldeinformationsauthentifizierung".

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 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 für Treat application as a public client die Option yes aus.

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 und die Ressourcen, auf die Sie zugreifen möchten, z. B. Key Vault.

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 Key Vault Secret-Clientbibliothek für Java mithilfe von DeviceCodeCredential auf einem IoT-Gerät authentifiziert wird.

/**
 * Authenticate with device code credential.
 */
DeviceCodeCredential deviceCodeCredential = new DeviceCodeCredentialBuilder()
    .challengeConsumer(challenge -> {
    // Lets the user know about 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.

/**
 * Authenticate interactively in the browser.
 */
InteractiveBrowserCredential interactiveBrowserCredential = new InteractiveBrowserCredentialBuilder()
    .clientId("<your app client ID>")
    .redirectUrl("YOUR_APP_REGISTERED_REDIRECT_URL")
    .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();

Anmeldeinformationen mit Benutzername/Kennwort

UsernamePasswordCredential unterstützt das Authentifizieren einer öffentlichen Clientanwendung mithilfe der Benutzeranmeldeinformationen, für die keine mehrstufige Authentifizierung erforderlich ist. Im folgenden Beispiel wird gezeigt, wie SecretClient von der azure-security-keyvault-secrets-Clientbibliothek mithilfe von UsernamePasswordCredential authentifiziert wird. Der Benutzer darf keine mehrstufige Authentifizierung aktiviert haben.

/**
 * Authenticate with username, password.
 */
UsernamePasswordCredential usernamePasswordCredential = new UsernamePasswordCredentialBuilder()
    .clientId("<your app client ID>")
    .username("<your username>")
    .password("<your password>")
    .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(usernamePasswordCredential)
    .buildClient();

Weitere Informationen finden Sie unter Microsoft Identity Platform und OAuth 2.0-Kennwortanmeldeinformationen des Ressourcenbesitzers.

Nächste Schritte

In diesem Artikel wurde Authentifizierung mit Benutzeranmeldeinformationen behandelt. 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 Benutzeranmeldeinformationsauthentifizierung auftreten, lesen Sie die Problembehandlung bei der Benutzeranmeldeinformationsauthentifizierung.

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.