The Azure Identity library provides Microsoft Entra ID token authentication support across the Azure SDK with a comprehensive set of TokenCredential implementations.
—
Authenticates using Azure Developer CLI (azd) cached credentials from development environments, ideal for local development scenarios.
Authenticates using cached credentials from Azure Developer CLI.
/**
* Azure Developer CLI credential for development environments
*/
class AzureDeveloperCliCredential implements TokenCredential {
Mono<AccessToken> getToken(TokenRequestContext request);
AccessToken getTokenSync(TokenRequestContext request);
}
class AzureDeveloperCliCredentialBuilder extends CredentialBuilderBase<AzureDeveloperCliCredentialBuilder> {
AzureDeveloperCliCredentialBuilder tenantId(String tenantId);
AzureDeveloperCliCredentialBuilder processTimeout(Duration processTimeout);
AzureDeveloperCliCredentialBuilder additionallyAllowedTenants(String... additionallyAllowedTenants);
AzureDeveloperCliCredentialBuilder additionallyAllowedTenants(List<String> additionallyAllowedTenants);
AzureDeveloperCliCredential build();
}Usage Examples:
import com.azure.identity.AzureDeveloperCliCredential;
import com.azure.identity.AzureDeveloperCliCredentialBuilder;
import java.time.Duration;
// Basic usage - uses default settings
TokenCredential credential = new AzureDeveloperCliCredentialBuilder()
.build();
// With specific tenant
TokenCredential tenantCredential = new AzureDeveloperCliCredentialBuilder()
.tenantId("your-tenant-id")
.build();
// With custom process timeout
TokenCredential timeoutCredential = new AzureDeveloperCliCredentialBuilder()
.processTimeout(Duration.ofSeconds(30))
.build();
// Use with Azure SDK clients
ResourceManagementClient client = ResourceManagementClient.builder()
.credential(credential)
.subscriptionId("your-subscription-id")
.buildClient();Azure Developer CLI Installation:
azd auth loginazd auth login --check-statusSupported Authentication Methods:
// Multi-tenant support
TokenCredential credential = new AzureDeveloperCliCredentialBuilder()
.tenantId("primary-tenant-id")
.additionallyAllowedTenants("tenant1", "tenant2", "tenant3")
.processTimeout(Duration.ofSeconds(45))
.build();The processTimeout setting controls how long to wait for the azd command to complete:
// Short timeout for fast environments
TokenCredential fastCredential = new AzureDeveloperCliCredentialBuilder()
.processTimeout(Duration.ofSeconds(10))
.build();
// Longer timeout for slower environments
TokenCredential slowCredential = new AzureDeveloperCliCredentialBuilder()
.processTimeout(Duration.ofMinutes(2))
.build();Install and authenticate Azure Developer CLI:
# Install azd
# Sign in interactively
azd auth login
# Or sign in with device code
azd auth login --use-device-codeUse in your Java application:
TokenCredential credential = new AzureDeveloperCliCredentialBuilder().build();
// Use with any Azure SDK client
KeyVaultSecret secret = new SecretClientBuilder()
.vaultUrl("https://myvault.vault.azure.net/")
.credential(credential)
.buildClient()
.getSecret("mysecret");Throws CredentialUnavailableException when:
azd auth login not run)Common Issues:
azd auth login to authenticateprocessTimeout durationInstall with Tessl CLI
npx tessl i tessl/maven-com-azure--azure-identitydocs