in azure-functions-java-sdktypes/src/main/java/com/microsoft/azure/functions/sdktype/blob/BlobClientHydrator.java [122:139]
private Object buildManagedIdentityCredential(ClassLoader classLoader, String clientId) throws Exception {
LOGGER.info("Attempting to build DefaultAzureCredential reflectively.");
Class<?> builderClass = classLoader.loadClass("com.azure.identity.DefaultAzureCredentialBuilder");
Object builder = builderClass.getDeclaredConstructor().newInstance();
if (clientId != null && !clientId.isEmpty()) {
LOGGER.info("Using user-assigned managed identity: " + clientId);
// reflectively call .managedIdentityClientId(clientId)
Method micidMethod = builderClass.getMethod("managedIdentityClientId", String.class);
micidMethod.invoke(builder, clientId);
} else {
LOGGER.info("Using system-assigned managed identity (no clientId).");
}
// call build() to get the credential
Method buildMethod = builderClass.getMethod("build");
return buildMethod.invoke(builder);
}