Azure-Authentifizierung mit Benutzeranmeldeinformationen
In diesem Artikel wird erläutert, wie die Azure-Identitätsbibliothek 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 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:
- Wechseln Sie im Azure-Portal zu Microsoft Entra ID, und suchen Sie nach Ihrer 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.
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, wie z. B. Key Vault.
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 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 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 die zuvor genannten Schritte 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.
/**
* 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.