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:
- Gerätecodeanmeldeinformationen
- Interaktive Browseranmeldeinformationen
- Anmeldeinformationen mit Benutzername/Kennwort
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:
- Wechseln Sie in Azure-Portal zur Microsoft Entra-ID, und suchen Sie Ihre App-Registrierung.
- Navigieren Sie zum Abschnitt Authentifizierung.
- Überprüfen Sie unter Vorgeschlagene umgeleitete URIs den URI, der mit
/common/oauth2/nativeclient
endet. - Wählen Sie unter Standardclienttyp für
Treat application as a public client
die Optionyes
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:
- Azure-Authentifizierung in Entwicklungsumgebungen
- Authentifizieren von in Azure gehosteten Anwendungen
- Authentifizierung mit Dienstprinzipalen
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.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für