Azure Identity-Clientbibliothek für Java – Version 1.10.4
Die Azure Identity-Bibliothek bietet Unterstützung der Azure Active Directory -Tokenauthentifizierung (Azure AD) im gesamten Azure SDK. Es stellt eine Reihe von TokenCredential-Implementierungen bereit, die zum Erstellen von Azure SDK-Clients verwendet werden können, die die Azure AD-Tokenauthentifizierung unterstützen.
Quellcode | API-Referenzdokumentation | Azure AD-Dokumentation
Erste Schritte
Einschließen des Pakets
BOM-Datei einfügen
Fügen Sie in azure-sdk-bom
Ihr Projekt ein, um eine Abhängigkeit von der stabilen Version der Bibliothek zu übernehmen. Ersetzen Sie im folgenden Codeausschnitt den Platzhalter {bom_version_to_target}
durch die Versionsnummer. Weitere Informationen zur BOM finden Sie in der Azure SDK-BOM-Infodatei.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-sdk-bom</artifactId>
<version>{bom_version_to_target}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Fügen Sie dann die direkte Abhängigkeit ohne das Versionstag in den dependencies
Abschnitt ein:
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
</dependency>
</dependencies>
Direkte Abhängigkeiten einfügen
Um abhängigkeiten von einer bestimmten Version der Bibliothek zu übernehmen, die in der Stückliste nicht vorhanden ist, fügen Sie die direkte Abhängigkeit wie folgt zu Ihrem Projekt hinzu:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.10.1</version>
</dependency>
Voraussetzungen
- Java Development Kit (JDK), Version 8 oder höher.
- Ein Azure-Abonnement.
- Die Azure CLI kann auch für die Authentifizierung in einer Entwicklungsumgebung, das Erstellen von Konten und die Verwaltung von Kontorollen nützlich sein.
Authentifizieren des Clients
Beim lokalen Debuggen und Ausführen von Code ist es typisch, dass entwickler ihr eigenes Konto für die Authentifizierung von Aufrufen von Azure-Diensten verwenden. Es gibt mehrere Entwicklertools, die zum Ausführen dieser Authentifizierung in Ihrer Entwicklungsumgebung verwendet werden können:
- Azure-Toolkit für IntelliJ
- Azure-Kontoerweiterung für Visual Studio Code
- Es handelt sich um ein bekanntes Problem, das bei Azure-Kontoerweiterungsversionen, die
VisualStudioCodeCredential
neuer als 0.9.11 sind, nicht funktioniert. Es wird eine langfristige Lösung für dieses Problem ausgeführt. Erwägen Sie in der Zwischenzeit die Authentifizierung über die Azure CLI (unten).
- Es handelt sich um ein bekanntes Problem, das bei Azure-Kontoerweiterungsversionen, die
- Azure-Befehlszeilenschnittstelle
Wählen Sie die einzelnen Elemente oben aus, um zu erfahren, wie Sie sie für die Azure Identity-Authentifizierung konfigurieren.
Wichtige Begriffe
Anmeldeinformationen
Bei den Anmeldeinformationen handelt es sich um eine Klasse, die die Daten enthält oder abrufen kann, die für einen Dienstclient zum Authentifizieren von Anforderungen erforderlich sind. Dienstclients im azure SDK akzeptieren Anmeldeinformationen, wenn sie erstellt werden. Die Dienstclients verwenden diese Anmeldeinformationen, um Anforderungen beim Dienst zu authentifizieren.
Die Azure Identity-Bibliothek konzentriert sich auf die OAuth-Authentifizierung mit Azure AD und bietet verschiedene Anmeldeinformationsklassen, die ein Azure AD-Token zum Authentifizieren von Dienstanforderungen abrufen können. Alle Anmeldeinformationsklassen in dieser Bibliothek sind Implementierungen der TokenCredential
abstrakten Klasse in azure-core, und jede von ihnen kann verwendet werden, um Dienstclients zu erstellen, die sich mit authentifizieren TokenCredential
können.
Eine vollständige Liste der verfügbaren Anmeldeinformationsklassen finden Sie unter Anmeldeinformationsklassen .
DefaultAzureCredential
Eignet DefaultAzureCredential
sich für die meisten Szenarien, in denen die Anwendung letztendlich in Azure ausgeführt werden soll. Der Grund ist, dass DefaultAzureCredential
Anmeldeinformationen, die bei der Bereitstellung zur Authentifizierung genutzt werden, mit Anmeldeinformationen kombiniert, die zur Authentifizierung in einer Entwicklungsumgebung dienen.
Hinweis:
DefaultAzureCredential
Soll den Einstieg in das SDK vereinfachen, indem gängige Szenarien mit vernünftigem Standardverhalten behandelt werden. Entwickler, die mehr Kontrolle wünschen oder deren Szenario von den Standardeinstellungen nicht abgedeckt wird, sollten andere Anmeldeinformationstypen verwenden.
DefaultAzureCredential
versucht, die Authentifizierung über die folgenden Mechanismen in der angegebenen Reihenfolge auszuführen.
- Umgebung : Die
DefaultAzureCredential
liest Kontoinformationen, die über Umgebungsvariablen angegeben wurden, und verwendet sie zur Authentifizierung. - Workloadidentität : Wenn die App in Kubernetes mit Umgebungsvariablen bereitgestellt wird, die vom Workloadidentitäts-Webhook festgelegt sind,
DefaultAzureCredential
authentifiziert die konfigurierte Identität. - Verwaltete Identität : Wenn die Anwendung auf einem Azure-Host mit aktivierter verwalteter Identität bereitgestellt wird, authentifiziert sich die
DefaultAzureCredential
Anwendung mit diesem Konto. - Azure Developer CLI: Wenn der Entwickler ein Konto über den Befehl Azure Developer CLI
azd auth login
authentifiziert hat, authentifiziert sich derDefaultAzureCredential
bei diesem Konto. - IntelliJ : Wenn sich der Entwickler über das Azure-Toolkit für IntelliJ authentifiziert hat, authentifiziert sich der
DefaultAzureCredential
bei diesem Konto. - Azure CLI : Wenn der Entwickler ein Konto über den Azure CLI-Befehl
az login
authentifiziert hat, authentifiziert sich derDefaultAzureCredential
mit diesem Konto. - Azure PowerShell: Wenn der Entwickler ein Konto über den Befehl Azure PowerShell
Connect-AzAccount
authentifiziert hat, authentifiziert sich derDefaultAzureCredential
mit diesem Konto.
Fortsetzungsrichtlinie
Ab Version 1.10.0 wird versucht, sich mit allen Entwickleranmeldeinformationen zu authentifizieren, DefaultAzureCredential
bis dies erfolgreich ist, unabhängig von fehlern, die früheren Entwickleranmeldeinformationen aufgetreten sind. Beispielsweise versuchen Entwickleranmeldeinformationen möglicherweise, ein Token abzurufen, und schlagen fehl, sodass DefaultAzureCredential
sie mit den nächsten Anmeldeinformationen im Flow fortfahren. Bereitgestellte Dienstanmeldeinformationen beenden den Flow mit einer ausgelösten Ausnahme, wenn sie versuchen können, Token abzurufen, aber keine empfangen.
Dies ermöglicht es, alle Entwickleranmeldeinformationen auf Ihrem Computer zu testen und gleichzeitig ein vorhersagbares Bereitstellungsverhalten zu haben.
Hinweis zu VisualStudioCodeCredential
Aufgrund eines bekannten ProblemsVisualStudioCodeCredential
wurde aus der DefaultAzureCredential
Tokenkette entfernt. Wenn das Problem in einem zukünftigen Release behoben wird, wird diese Änderung wiederhergestellt.
Beispiele
Weitere Beispiele für die Verwendung verschiedener Anmeldeinformationen finden Sie auf der Seite "Azure Identity Examples Wiki".
Authentifizieren mit DefaultAzureCredential
Dieses Beispiel zeigt, wie SecretClient
von der azure-security-keyvault-secrets-Clientbibliothek mithilfe von DefaultAzureCredential
authentifiziert wird.
/**
* The default credential first checks environment variables for configuration.
* If environment configuration is incomplete, it will try managed identity.
*/
public void createDefaultAzureCredential() {
DefaultAzureCredential defaultCredential = new DefaultAzureCredentialBuilder().build();
// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://{YOUR_VAULT_NAME}.vault.azure.net")
.credential(defaultCredential)
.buildClient();
}
Weitere Informationen zum Konfigurieren des DefaultAzureCredential
auf Ihrer Arbeitsstation oder in Azure finden Sie unter Konfigurieren von DefaultAzureCredential.
Authentifizieren einer benutzerseitig zugewiesenen verwalteten Identität mit DefaultAzureCredential
Um sich mit benutzerseitig zugewiesener verwalteter Identität zu authentifizieren, stellen Sie sicher, dass die Konfigurationsanweisungen für Ihre unterstützte Azure-Ressource hier erfolgreich abgeschlossen wurden.
Das folgende Beispiel veranschaulicht die SecretClient
Authentifizierung aus der azure-security-keyvault-secrets-Clientbibliothek mithilfe von , die DefaultAzureCredential
für eine Azure-Ressource mit einer benutzerseitig zugewiesenen verwalteten Identität bereitgestellt wird.
Weitere Informationen zum Konfigurieren einer benutzerseitig zugewiesenen verwalteten Identität für eine Azure-Ressource finden Sie unter Aktivieren der verwalteten Identität für Azure-Ressourcen.
/**
* The default credential will use the user assigned managed identity with the specified client ID.
*/
public void createDefaultAzureCredentialForUserAssignedManagedIdentity() {
DefaultAzureCredential defaultCredential = new DefaultAzureCredentialBuilder()
.managedIdentityClientId("<MANAGED_IDENTITY_CLIENT_ID>")
.build();
// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://{YOUR_VAULT_NAME}.vault.azure.net")
.credential(defaultCredential)
.buildClient();
}
Neben dem Konfigurieren des managedIdentityClientId
Via-Codes kann er auch mithilfe der Umgebungsvariablen AZURE_CLIENT_ID
festgelegt werden. Diese beiden Ansätze sind bei Verwendung von DefaultAzureCredential
gleichwertig.
Authentifizieren eines Benutzers im Azure Toolkit für IntelliJ mit DefaultAzureCredential
Um sich mit IntelliJ zu authentifizieren, stellen Sie sicher, dass die Konfigurationsanweisungen hier erfolgreich abgeschlossen wurden.
Das folgende Beispiel veranschaulicht die SecretClient
Authentifizierung aus der Azure-security-keyvault-secrets-Clientbibliothek mithilfe von DefaultAzureCredential
, auf einer Arbeitsstation, auf der IntelliJ IDEA installiert ist, und der Benutzer hat sich mit einem Azure-Konto beim Azure Toolkit for IntelliJ angemeldet.
Weitere Informationen zum Konfigurieren Ihrer IntelliJ IDEA finden Sie unter Anmelden des Azure Toolkit for IntelliJ für IntelliJCredential.
/**
* The default credential will use the KeePass database path to find the user account in IntelliJ on Windows.
*/
public void createDefaultAzureCredentialForIntelliJ() {
DefaultAzureCredential defaultCredential = new DefaultAzureCredentialBuilder()
// KeePass configuration required only for Windows. No configuration needed for Linux / Mac
.intelliJKeePassDatabasePath("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_VAULT_NAME}.vault.azure.net")
.credential(defaultCredential)
.buildClient();
}
Unterstützung für verwaltete Identitäten
Die Authentifizierung verwalteter Identitäten wird entweder über oder DefaultAzureCredential
ManagedIdentityCredential
direkt für die folgenden Azure-Dienste unterstützt:
- Azure App Service und Azure Functions
- Azure Arc
- Azure Cloud Shell
- Azure Kubernetes Service
- Azure Service Fabric
- Dokumentation zu virtuellen Computern
- Azure-VM-Skalierungsgruppen
Hinweis: Verwenden Sie azure-identity
version 1.7.0
oder höher, um die Unterstützung der Tokenzwischenspeicherung für die Authentifizierung verwalteter Identitäten zu nutzen.
Beispiele
Authentifizieren in Azure mit verwalteter Identität
In diesem Beispiel wird die Authentifizierung von aus SecretClient
der azure-security-keyvault-secrets-Clientbibliothek mithilfe von ManagedIdentityCredential
in einem virtuellen Computer, App Service, Funktions-App, Cloud Shell oder AKS-Umgebung in Azure mit aktivierter systemseitig zugewiesener oder benutzerseitig zugewiesener verwalteter Identität veranschaulicht.
Weitere Informationen zum Konfigurieren Ihrer Azure-Ressource für verwaltete Identität finden Sie unter Aktivieren der verwalteten Identität für Azure-Ressourcen.
/**
* Authenticate with a User Assigned Managed identity.
*/
public void createManagedIdentityCredential() {
ManagedIdentityCredential managedIdentityCredential = new ManagedIdentityCredentialBuilder()
.clientId("<USER ASSIGNED MANAGED IDENTITY CLIENT ID>") // only required for user assigned
.build();
// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://{YOUR_VAULT_NAME}.vault.azure.net")
.credential(managedIdentityCredential)
.buildClient();
}
/**
* Authenticate with a System Assigned Managed identity.
*/
public void createManagedIdentityCredential() {
ManagedIdentityCredential managedIdentityCredential = new ManagedIdentityCredentialBuilder()
.build();
// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://{YOUR_VAULT_NAME}.vault.azure.net")
.credential(managedIdentityCredential)
.buildClient();
}
Definieren eines benutzerdefinierten Authentifizierungsflusses mit ChainedTokenCredential
DefaultAzureCredential
ist zwar im Allgemeinen die schnellste Möglichkeit, mit der Entwicklung von Anwendungen für Azure zu beginnen, erfahrenere Benutzer möchten aber möglicherweise die Anmeldeinformationen anpassen, die bei der Authentifizierung berücksichtigt werden. Mit ChainedTokenCredential
können Benutzer mehrere Anmeldeinformationeninstanzen kombinieren, um eine angepasste Kette von Anmeldeinformationen zu definieren. In diesem Beispiel wird das Erstellen eines ChainedTokenCredential
veranschaulicht, das Folgendes bewirkt:
- Versuchen Sie, sich mithilfe der verwalteten Identität zu authentifizieren.
- Greifen Sie auf die Authentifizierung über die Azure CLI zurück, wenn die verwaltete Identität in der aktuellen Umgebung nicht verfügbar ist.
// Authenticate using managed identity if it is available; otherwise use the Azure CLI to authenticate.
ManagedIdentityCredential managedIdentityCredential = new ManagedIdentityCredentialBuilder().build();
AzureCliCredential cliCredential = new AzureCliCredentialBuilder().build();
ChainedTokenCredential credential = new ChainedTokenCredentialBuilder().addLast(managedIdentityCredential).addLast(cliCredential).build();
// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://{YOUR_VAULT_NAME}.vault.azure.net")
.credential(credential)
.buildClient();
Cloudkonfiguration
Anmeldeinformationen werden standardmäßig beim Azure AD-Endpunkt für Azure Public Cloud authentifiziert. Konfigurieren Sie Anmeldeinformationen mit dem auhtorityHost
Argument, um auf Ressourcen in anderen Clouds zuzugreifen, z. B. Azure Government oder eine private Cloud. AzureAuthorityHosts definiert Autoritäten für bekannte Clouds:
DefaultAzureCredential defaultAzureCredential = new DefaultAzureCredentialBuilder()
.authorityHost(AzureAuthorityHosts.AZURE_GOVERNMENT)
.build();
Nicht für alle Anmeldeinformationen ist diese Konfiguration erforderlich. Anmeldeinformationen, die sich über ein Entwicklungstool authentifizieren, z. B AzureCliCredential
. , verwenden die Konfiguration dieses Tools. Ebenso akzeptiert ein authority
Argument, aber standardmäßig die Autorität, VisualStudioCodeCredential
die der Einstellung "Azure: Cloud" von VS Code entspricht.
Anmeldeinformationsklassen
Authentifizieren von azure gehosteten Anwendungen
Credential-Klasse | Verwendung | Beispiel |
---|---|---|
DefaultAzureCredential |
bietet eine vereinfachte Authentifizierungsoberfläche, um schnell mit der Entwicklung von Anwendungen zu beginnen, die in Azure ausgeführt werden. | Beispiel |
ChainedTokenCredential |
ermöglicht Es Benutzern, benutzerdefinierte Authentifizierungsflows zu definieren, die mehrere Anmeldeinformationen erstellen. | Beispiel |
EnvironmentCredential |
authentifiziert einen Dienstprinzipal oder Benutzer über Anmeldeinformationen, die in Umgebungsvariablen angegeben sind. | |
ManagedIdentityCredential |
authentifiziert die verwaltete Identität einer Azure-Ressource. | Beispiel |
WorkloadIdentityCredential |
unterstützt die Azure AD-Workloadidentität in Kubernetes. | Beispiel |
Authentifizieren von Dienstprinzipalen
Credential-Klasse | Verwendung | Beispiel | Referenz |
---|---|---|---|
ClientAssertionCredential |
authentifiziert einen Dienstprinzipal mithilfe einer signierten Clientassertion. | ||
ClientCertificateCredential |
authentifiziert einen Dienstprinzipal mithilfe eines Zertifikats. | Beispiel | Dienstprinzipalauthentifizierung |
ClientSecretCredential |
authentifiziert einen Dienstprinzipal mithilfe eines Geheimnisses | Beispiel | Dienstprinzipalauthentifizierung |
Authentifizieren von Benutzern
Credential-Klasse | Verwendung | Beispiel | Referenz |
---|---|---|---|
AuthorizationCodeCredential |
Authentifizieren eines Benutzers mit einem zuvor abgerufenen Autorisierungscode als Teil eines Oauth 2-Flows | OAuth2-Authentifizierungscode | |
DeviceCodeCredential |
Interaktive Authentifizierung eines Benutzers auf Geräten mit eingeschränkter Benutzeroberfläche | Beispiel | Gerätecodeauthentifizierung |
InteractiveBrowserCredential |
Authentifiziert einen Benutzer interaktiv mit dem Standardsystembrowser. | Beispiel | OAuth2-Authentifizierungscode |
OnBehalfOfCredential |
Gibt die delegierte Benutzeridentität und die Berechtigungen über die Anforderungskette weiter. | Authentifizierung im Auftrag von | |
UsernamePasswordCredential |
authentifiziert einen Benutzer mit einem Benutzernamen und Kennwort ohne mehrstufige Authentifizierung. | Beispiel | Authentifizierung mit Benutzername + Kennwort |
Authentifizieren über Entwicklungstools
Credential-Klasse | Verwendung | Beispiel | Referenz |
---|---|---|---|
AzureCliCredential |
Authentifizieren in einer Entwicklungsumgebung mit aktiviertem Benutzer oder Dienstprinzipal in der Azure CLI | Beispiel | Azure CLI-Authentifizierung |
AzureDeveloperCliCredential |
Authentifizieren in einer Entwicklungsumgebung mit dem aktivierten Benutzer oder Dienstprinzipal in Azure Developer CLI | Azure Developer CLI-Referenz | |
AzurePowerShellCredential |
Authentifizieren in einer Entwicklungsumgebung mit dem aktivierten Benutzer oder Dienstprinzipal in Azure PowerShell | Beispiel | Azure PowerShell-Dokumentation |
IntelliJCredential |
Authentifizieren in einer Entwicklungsumgebung mit dem Konto im Azure-Toolkit für IntelliJ | Beispiel | IntelliJ-Authentifizierung |
VisualStudioCodeCredential |
Authentifizieren Sie sich in einer Entwicklungsumgebung mit dem Konto in der Azure-Kontoerweiterung von Visual Studio Code. | Beispiel | Azure-Kontoerweiterung für VS Code |
Hinweis: Alle Implementierungen von Anmeldeinformationen in der Azure Identity-Bibliothek sind threadsicher, und ein einzelner instance für Anmeldeinformationen kann verwendet werden, um mehrere Dienstclients zu erstellen.
Anmeldeinformationen können so verkettet werden, dass sie nacheinander ausprobiert werden, bis eine erfolgreiche Verwendung von erfolgreich ist. Weitere Informationen finden Sie unter Verketten von ChainedTokenCredential
Anmeldeinformationen.
Umgebungsvariablen
DefaultAzureCredential
und EnvironmentCredential
können mit Umgebungsvariablen konfiguriert werden. Jeder Authentifizierungstyp erfordert Werte für bestimmte Variablen:
Dienstprinzipal mit Geheimnis
Variablenname | Wert |
---|---|
AZURE_CLIENT_ID |
ID einer Azure AD-Anwendung |
AZURE_TENANT_ID |
ID des Azure AD-Mandanten der Anwendung |
AZURE_CLIENT_SECRET |
Eines der Clientgeheimnisse der Anwendung |
Dienstprinzipal mit Zertifikat
Variablenname | Wert |
---|---|
AZURE_CLIENT_ID |
ID einer Azure AD-Anwendung |
AZURE_TENANT_ID |
ID des Azure AD-Mandanten der Anwendung |
AZURE_CLIENT_CERTIFICATE_PATH |
Pfad zu einer PFX- oder PEM-codierten Zertifikatdatei einschließlich privatem Schlüssel |
AZURE_CLIENT_CERTIFICATE_PASSWORD |
(optional) Kennwort für das Zertifikat. Das Zertifikat kann nur dann kennwortgeschützt werden, wenn dieser Wert angegeben ist. |
Benutzername und Kennwort
Variablenname | Wert |
---|---|
AZURE_CLIENT_ID |
ID einer Azure AD-Anwendung |
AZURE_TENANT_ID |
(optional) ID des Azure AD-Mandanten der Anwendung |
AZURE_USERNAME |
Ein Benutzername (normalerweise eine E-Mail-Adresse) |
AZURE_PASSWORD |
Das Kennwort des Benutzers |
Die Konfiguration wird in der oben genannten Reihenfolge versucht. Wenn zum Beispiel sowohl Werte für ein Clientgeheimnis als auch für ein Zertifikat vorhanden sind, wird das Clientgeheimnis verwendet.
Fortlaufende Zugriffsevaluierung
Ab Version 1.10.0 ist der Zugriff auf Ressourcen, die durch continuous Access Evaluation (CAE) geschützt sind, auf Anforderungsbasis möglich. Dies kann mithilfe der TokenRequestContext.setCaeEnabled(boolean)
API aktiviert werden. CAE wird für Entwickleranmeldeinformationen nicht unterstützt.
Zwischenspeichern von Tokens
Tokenzwischenspeicherung ist ein Feature, das von der Azure Identity-Bibliothek bereitgestellt wird und Apps Folgendes ermöglicht:
- Cachetoken im Arbeitsspeicher (Standard) oder auf dem Datenträger (opt-in).
- Verbessern sie Resilienz und Leistung.
- Verringern Sie die Anzahl von Anforderungen, die an Azure AD zum Abrufen von Zugriffstoken gesendet werden.
Die Azure Identity-Bibliothek bietet sowohl In-Memory- als auch persistente Datenträgerzwischenspeicherung. Weitere Informationen finden Sie in der Dokumentation zur Tokenzwischenspeicherung.
Problembehandlung
Anmeldeinformationen lösen Ausnahmen aus, wenn sie sich nicht authentifizieren oder die Authentifizierung nicht ausführen können. Wenn anmeldeinformationen nicht authentifiziert werden können, wird ausgelöstClientAuthenticationException
. Die Ausnahme verfügt über ein message
Attribut, das beschreibt, warum die Authentifizierung fehlgeschlagen ist. Wenn diese Ausnahme von ChainedTokenCredential
ausgelöst wird, wird die verkettete Ausführung der zugrunde liegenden Liste von Anmeldeinformationen beendet.
Wenn Anmeldeinformationen die Authentifizierung nicht ausführen können, weil eine der zugrunde liegenden Ressourcen erforderlich ist, die für die Anmeldeinformationen auf dem Computer nicht verfügbar sind, wird ausgelöstCredentialUnavailableException
. Die Ausnahme verfügt über ein message
Attribut, das beschreibt, warum die Anmeldeinformationen für die Authentifizierungsausführung nicht verfügbar sind. Wenn diese Ausnahme von ChainedTokenCredential
ausgelöst wird, sammelt die Meldung Fehlermeldungen von allen Anmeldeinformationen in der Kette.
Ausführliche Informationen zur Diagnose verschiedener Fehlerszenarien finden Sie im Leitfaden zur Problembehandlung .
Nächste Schritte
Die hier aufgeführten Java-Clientbibliotheken unterstützen die Authentifizierung mit TokenCredential
und der Azure Identity-Bibliothek. Weitere Informationen zur Verwendung dieser Clientbibliotheken und weitere Dokumentationen zur Verwendung dieser Clientbibliotheken sowie Beispiele finden Sie unter den hier genannten Links.
Das microsoft-graph-sdk unterstützt auch die Authentifizierung mit TokenCredential
und der Azure Identity-Bibliothek.
Mitwirken
Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Ausführliche Informationen finden Sie unter https://cla.microsoft.com.
Wenn Sie einen Pull Request (PR) übermitteln, überprüft ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen (z.B. mit einer Bezeichnung oder einem Kommentar). Führen Sie einfach die Anweisungen des Bots aus. Sie müssen dies nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.
Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.